57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
defaults = {
|
|
'monitoring': {
|
|
'services': {
|
|
# 'test': {
|
|
# 'vars.command': '/bin/ls /',
|
|
# 'vars.sudo': True,
|
|
# },
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'monitoring/services',
|
|
)
|
|
def default_check_command(metadata):
|
|
services = {}
|
|
|
|
for name, conf in metadata.get('monitoring/services').items():
|
|
services[name] = {}
|
|
|
|
if 'host_name' not in conf:
|
|
services[name]['host_name'] = node.name
|
|
|
|
if 'check_command' not in conf:
|
|
services[name]['check_command'] = 'sshmon'
|
|
|
|
return {
|
|
'monitoring': {
|
|
'services': services,
|
|
},
|
|
}
|
|
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'users/sshmon/authorized_users',
|
|
'sudoers/sshmon',
|
|
)
|
|
def user(metadata):
|
|
return {
|
|
'users': {
|
|
'sshmon': {
|
|
'authorized_users': {
|
|
'nagios@' + metadata.get('monitoring/icinga2_node'),
|
|
}
|
|
},
|
|
},
|
|
'sudoers': {
|
|
'sshmon': {
|
|
conf['vars.command']
|
|
for conf in metadata.get('monitoring/services').values()
|
|
if conf['check_command'] == 'sshmon'
|
|
and conf.get('vars.sudo', None)
|
|
},
|
|
},
|
|
}
|