check_shelly: mqtt, memory and filesystem implemented
This commit is contained in:
parent
a0a7fd0c7e
commit
13ac794416
39
check_shelly
39
check_shelly
@ -6,10 +6,16 @@ import nagios
|
|||||||
import os
|
import os
|
||||||
import urllib.request
|
import urllib.request
|
||||||
|
|
||||||
CHECKS = ['wifi']
|
CHECKS = ['wifi', 'mqtt', 'memory', 'filesystem']
|
||||||
#
|
#
|
||||||
WIFI_QUALITY_ERROR = -30
|
WIFI_QUALITY_ERROR = -30
|
||||||
WIFI_QUALITY_WARNING = -50
|
WIFI_QUALITY_WARNING = -50
|
||||||
|
#
|
||||||
|
RAM_ERROR = .15
|
||||||
|
RAM_WARNING = .30
|
||||||
|
#
|
||||||
|
FS_ERROR = .15
|
||||||
|
FS_WARNING = .30
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
@ -37,4 +43,33 @@ if __name__ == "__main__":
|
|||||||
status = n.WARNING
|
status = n.WARNING
|
||||||
else:
|
else:
|
||||||
status = n.OK
|
status = n.OK
|
||||||
n.exit(status, f"connected: {connected} - quality: {quality}")
|
n.exit(status, f"connected: {connected} - quality: {quality} < {WIFI_QUALITY_WARNING} < {WIFI_QUALITY_ERROR}")
|
||||||
|
elif args.check == 'mqtt':
|
||||||
|
connected = data['mqtt']['connected']
|
||||||
|
if not connected:
|
||||||
|
status = n.ERROR
|
||||||
|
else:
|
||||||
|
status = n.OK
|
||||||
|
n.exit(status, f"connected: {connected}")
|
||||||
|
elif args.check == 'memory':
|
||||||
|
ram_total = data['ram_total']
|
||||||
|
ram_free = data['ram_free']
|
||||||
|
ram_left = ram_free / ram_total
|
||||||
|
if ram_left < RAM_ERROR:
|
||||||
|
status = n.ERROR
|
||||||
|
elif ram_left < RAM_WARNING:
|
||||||
|
status = n.WARNING
|
||||||
|
else:
|
||||||
|
status = n.OK
|
||||||
|
n.exit(status, f"ram_left: {ram_left} ({ram_total}) > {RAM_WARNING} > {RAM_ERROR}")
|
||||||
|
elif args.check == 'filesystem':
|
||||||
|
fs_size = data['fs_size']
|
||||||
|
fs_free = data['fs_free']
|
||||||
|
fs_left = fs_free / fs_size
|
||||||
|
if fs_left < FS_ERROR:
|
||||||
|
status = n.ERROR
|
||||||
|
elif fs_left < FS_WARNING:
|
||||||
|
status = n.WARNING
|
||||||
|
else:
|
||||||
|
status = n.OK
|
||||||
|
n.exit(status, f"fs_left: {fs_left} ({fs_size}) > {FS_WARNING} > {FS_ERROR}")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user