bundles/vmhost: add QEMU VM STATUS check
bundlewrap/pipeline/head There was a failure building this commit Details

This commit is contained in:
Franzi 2020-11-21 20:58:55 +01:00
parent 325f483a26
commit 5639da4954
Signed by: kunsi
GPG Key ID: 12E3D2136B818350
3 changed files with 61 additions and 0 deletions

View File

@ -0,0 +1,47 @@
#!/usr/bin/env python3
from subprocess import check_output
from sys import exit
try:
result = check_output(['virsh', '--readonly', 'list', '--all']).decode('utf-8').split('\n')
except Exception as e:
# If something fails, this means libvirt is not responding. This is
# an error.
print(repr(e))
exit(2)
running = set()
stopped = set()
crashed = set()
for vm in result[2:]:
if vm.strip() == '':
continue
info = vm.split()
if info[2] in {'crashed', 'dying'}:
crashed.add('{}: {}'.format(info[1], info[2]))
elif info[2] in {'running'}:
running.add('{}: {}'.format(info[1], info[2]))
else:
stopped.add('{}: {}'.format(info[1], info[2]))
for vm in sorted(crashed):
print(vm)
for vm in sorted(stopped):
print(vm)
for vm in sorted(running):
print(vm)
if len(crashed) > 0:
exit(2)
elif len(stopped) > 0:
exit(1)
else:
exit(0)

5
bundles/vmhost/items.py Normal file
View File

@ -0,0 +1,5 @@
files = {
'/usr/local/share/icinga/plugins/check_vm_status': {
'mode': '0755',
},
}

View File

@ -7,4 +7,13 @@ defaults = {
'qemu-system-x86': {},
},
},
'icinga2_api': {
'vmhost': {
'services': {
'QEMU VM STATUS': {
'command_on_monitored_host': 'sudo /usr/local/share/icinga/plugins/check_vm_status',
},
},
},
},
}