62
from charmhelpers.contrib.charmsupport import nrpe
66
NAGIOS_PLUGINS = '/usr/local/lib/nagios/plugins'
67
SCRIPTS_DIR = '/usr/local/bin'
68
STATUS_FILE = '/var/lib/nagios/cat-ceph-status.txt'
69
STATUS_CRONFILE = '/etc/cron.d/cat-ceph-health'
62
72
def install_upstart_scripts():
63
73
# Only install upstart configurations for older versions
334
347
ceph.start_osds(get_devices())
350
@hooks.hook('nrpe-external-master-relation-joined')
351
@hooks.hook('nrpe-external-master-relation-changed')
352
def update_nrpe_config():
353
# python-dbus is used by check_upstart_job
354
apt_install('python-dbus')
355
log('Refreshing nagios checks')
356
if os.path.isdir(NAGIOS_PLUGINS):
357
rsync(os.path.join(os.getenv('CHARM_DIR'), 'files', 'nagios',
358
'check_ceph_status.py'),
359
os.path.join(NAGIOS_PLUGINS, 'check_ceph_status.py'))
361
script = os.path.join(SCRIPTS_DIR, 'collect_ceph_status.sh')
362
rsync(os.path.join(os.getenv('CHARM_DIR'), 'files',
363
'nagios', 'collect_ceph_status.sh'),
365
cronjob = "{} root {}\n".format('*/5 * * * *', script)
366
write_file(STATUS_CRONFILE, cronjob)
368
# Find out if nrpe set nagios_hostname
369
hostname = nrpe.get_nagios_hostname()
370
current_unit = nrpe.get_nagios_unit_name()
371
nrpe_setup = nrpe.NRPE(hostname=hostname)
372
nrpe_setup.add_check(
374
description='Check Ceph health {%s}' % current_unit,
375
check_cmd='check_ceph_status.py -f {}'.format(STATUS_FILE)
337
380
if __name__ == '__main__':
339
382
hooks.execute(sys.argv)