Пример #1
0
def main():
    argp = argparse.ArgumentParser(description=__doc__)
    argp.add_argument('-H', '--host', required=True, metavar='hostname', help='server hostname')
    argp.add_argument('-p', '--port', required=False, metavar='port', default=1489, type=int,
                      help='server port, default 1489')
    argp.add_argument('-s', '--secure', action='store_true', help='use ssl')
    argp.add_argument('-f', '--fullmap', action='store_true',
                      help='check for malicious servers registered on docbroker, '
                           '-d/--docbase argument must specify all servers supposed to be registered')
    argp.add_argument('-d', '--docbase', required=False, metavar='docbase', help='docbase name')
    argp.add_argument('-n', '--name', metavar='name', default='', help='name of check that appears in output')
    argp.add_argument('-t', '--timeout', metavar='timeout', default=60, type=int,
                      help='check timeout, default is 60 seconds')
    argp.add_argument('-w', '--warning', metavar='RANGE', help='warning threshold')
    argp.add_argument('-c', '--critical', metavar='RANGE', help='critical threshold')
    args = argp.parse_args()

    if ':' in args.host:
        chunks = args.host.split(':')
        setattr(args, 'host', chunks[0])
        setattr(args, 'port', int(chunks[1]))

    check = Check(CheckSummary())
    if getattr(args, 'name', None):
        check.name = args.name
    check.add(CheckDocbroker(args, check.results))
    check.add(
        ScalarContext(
            TIME_THRESHOLDS,
            getattr(args, "warning"),
            getattr(args, "critical"),
            fmt_metric=fmt_metric
        )
    )
    check.main(timeout=args.timeout)
Пример #2
0
def main():
    args = parse_args()
    check = Check(
        CloudFileStats(
            args.username, args.api_key, args.container,
            float(args.timeout)))
    check.add(ScalarContext('time', args.warn, args.critical))
    check.add(ScalarContext('count', '', ''))
    check.main(timeout=args.timeout)
Пример #3
0
def main():
    argp = argparse.ArgumentParser(description=__doc__)
    argp.add_argument('-H', '--host', required=True, metavar='hostname', help='server hostname')
    argp.add_argument('-p', '--port', required=False, metavar='port', type=int, help='server port')
    argp.add_argument('-i', '--docbaseid', required=False, metavar='docbaseid', type=int, help='docbase identifier')
    argp.add_argument('-l', '--login', metavar='username', help='username')
    argp.add_argument('-a', '--authentication', metavar='password', help='password')
    argp.add_argument('-s', '--secure', action='store_true', help='use ssl')
    argp.add_argument(
        '-t', '--timeout', metavar='timeout', default=60, type=int,
        help='check timeout, default is 60 seconds')
    argp.add_argument(
        '-m', '--mode', required=True, metavar='mode',
        help="mode to use, one of: " + ", ".join("%s (%s)" % (x, modes[x][3]) for x in modes.keys()))
    argp.add_argument('-j', '--jobs', metavar='jobs', default='', help='jobs to check, comma-separated list')
    argp.add_argument('-n', '--name', metavar='name', default='', help='name of check that appears in output')
    argp.add_argument('-q', '--query', metavar='query', default='', help='query to run')
    argp.add_argument('--stores', metavar='stores', default='', help='stores to check')
    argp.add_argument('-f', '--format', metavar='format', default='', help='query output format')
    argp.add_argument(
        '-w', '--warning', metavar='RANGE',
        help='warning threshold for query results, supported in following modes: '
             + ", ".join(x for x in modes.keys() if modes[x][1]))
    argp.add_argument(
        '-c', '--critical', metavar='RANGE',
        help='critical threshold for query results, supported in following modes: '
             + ", ".join(x for x in modes.keys() if modes[x][1]))
    argp.add_argument(
        '--warningtime', metavar='RANGE',
        help='warning threshold for execution time, supported in following modes: '
             + ", ".join(x for x in modes.keys() if modes[x][2]))
    argp.add_argument(
        '--criticaltime', metavar='RANGE',
        help='critical threshold for execution time, supported in following modes: '
             + ", ".join(x for x in modes.keys() if modes[x][2]))
    args = argp.parse_args()

    m = re.match('^(dctm(s)?://((.*?)(:(.*))?@)?)?([^/:]+?)(:(\d+))?(/(\d+))?$', args.host)
    if m:
        if m.group(2):
            setattr(args, 'secure', True)
            pass
        if m.group(4):
            setattr(args, 'login', m.group(4))
        if m.group(6):
            setattr(args, 'authentication', m.group(6))
        if m.group(7):
            setattr(args, 'host', m.group(7))
        if m.group(9) is not None:
            setattr(args, 'port', int(m.group(9)))
        if m.group(11) is not None:
            setattr(args, 'docbaseid', int(m.group(11)))

    if args.login and not args.authentication:
        m = re.match('^(.*?):(.*)$', args.login)
        if m:
            setattr(args, 'login', m.group(1))
            setattr(args, 'authentication', m.group(2))

    check = Check(CheckSummary())
    if args.name:
        check.name = args.name
    else:
        check.name = args.mode
    check.add(CheckDocbase(args, check.results))
    check.add(
        ScalarContext(
            THRESHOLDS,
            getattr(args, "warning"),
            getattr(args, "critical"),
            fmt_metric=fmt_metric
        )
    )
    check.add(
        ScalarContext(
            TIME_THRESHOLDS,
            getattr(args, "warningtime"),
            getattr(args, "criticaltime"),
            fmt_metric=fmt_nometric,
        )
    )
    check.main(timeout=args.timeout)