X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=modules%2Fprivate%2Fmonitoring%2Fplugins%2Fcheck_eriomem;fp=modules%2Fprivate%2Fmonitoring%2Fplugins%2Fcheck_eriomem;h=0000000000000000000000000000000000000000;hp=880b88a0bd85fcbcfa131bc502559c7fd1f63701;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hpb=fa25ffd4583cc362075cd5e1b4130f33306103f0 diff --git a/modules/private/monitoring/plugins/check_eriomem b/modules/private/monitoring/plugins/check_eriomem deleted file mode 100755 index 880b88a..0000000 --- a/modules/private/monitoring/plugins/check_eriomem +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env python -import os -import sys -import getopt -import signal -from subprocess import Popen, PIPE - -STATE_OK = 0 -STATE_WARNING = 1 -STATE_CRITICAL = 2 -STATE_UNKNOWN = 3 - -keys = sys.argv[1].split(",") - -def to_args(k): - access, secret = k.split(":", 1) - return [ - "s3cmd", - '-c=/dev/null', - '--no-check-certificate', - '--access_key={}'.format(access), - '--secret_key={}'.format(secret), - '--host=e.eriomem.net', - '--host-bucket=%(bucket)s.e.eriomem.net', - 'du' - ] - -max_size = 1024*1024*1024*1024 -warning_percent = 99.75 -critical_percent = 99.95 - -def output(code, msg): - print(msg) - sys.exit(code) - -def main(): - def handler(signum, frame): - raise IOError - signal.signal(signal.SIGALRM, handler) - signal.alarm(60) - - try: - ps = [Popen(to_args(a), stdout=PIPE, stderr=PIPE) for a in keys] - outs = [p.communicate() for p in ps] - rets = [p.wait() for p in ps] - except IOError: - for p in ps: - os.kill(p.pid, signal.SIGTERM) - output(STATE_UNKNOWN, - "Eriomem UNKNOWN - Command timeout after 60 seconds!") - - signal.alarm(0) - - if sum(rets) == 0: - usages = [int(out[0].decode().split("\n")[-2].split()[0]) for out in outs] - usage = sum(usages) - use_percent = 100 * usage / max_size - if use_percent > critical_percent: - output(STATE_CRITICAL, - "Eriomem CRITICAL - bucket usage: %s (%s%%);| size=%s;;;;" % - (sizeof_fmt(usage), use_percent, sizeof_fmt(usage))) - elif use_percent > warning_percent: - output(STATE_WARNING, - "Eriomem WARNING - bucket usage: %s (%s%%);| size=%s;;;;" % - (sizeof_fmt(usage), use_percent, sizeof_fmt(usage))) - else: - output(STATE_OK, - "Eriomem OK - bucket usage: %s (%d%%);| size=%s;;;;" % - (sizeof_fmt(usage), use_percent, sizeof_fmt(usage))) - else: - messages = "\n".join([out[0].decode() + out[1].decode() for out in outs]) - output(STATE_UNKNOWN, - "Eriomem UNKNOWN - Error in command") - -def sizeof_fmt(num): - for unit in ['','ko','Mo','Go','To','Po','Eo','Zo']: - if abs(num) < 1024.0: - return "%3.1f%s" % (num, unit) - num /= 1024.0 - return "%.1f%s%s" % (num, 'Yo') - -if __name__ == '__main__': - main()