diff --git a/check_nginx.py b/check_nginx.py index 205fb87..5c12848 100755 --- a/check_nginx.py +++ b/check_nginx.py @@ -44,7 +44,7 @@ def parse_nginx_status(status): def main(): parser = argparse.ArgumentParser(description="Check Nginx status using stub_status.") - parser.add_argument("--url", default="http://localhost/nginx_status", help="URL to Nginx stub_status.") + parser.add_argument("--url", required=True, help="URL to Nginx stub_status.") parser.add_argument("--critical-active", type=int, default=0, help="Critical threshold for active connections. Default: disabled") parser.add_argument("--warning-active", type=int, default=0, help="Warning threshold for active connections. Default: disabled") parser.add_argument("--critical-waiting", type=int, default=0, help="Critical threshold for waiting connections. Default: disabled") @@ -54,16 +54,16 @@ def main(): status = check_nginx_status(args.url) data = parse_nginx_status(status) - perfdata = "| active_connections={active_connections};{warning};{critical} waiting={waiting};{warning_waiting};{critical_waiting} accepted={accepted} handled={handled} requests={requests} reading={reading} writing={writing}".format( - warning=args.warning_active, - critical=args.critical_active, - warning_waiting=args.warning_waiting, - critical_waiting=args.critical_waiting, - **data - ) status_str = "Active connections: {active_connections}, Waiting: {waiting}, Accepted: {accepted}, Handled: {handled}, Requests: {requests}, Reading: {reading}, Writing: {writing}".format(**data) if args.warning_active > 0 and args.critical_active > 0 and args.warning_waiting > 0 and args.critical_waiting > 0: + perfdata = "| active_connections={active_connections};{warning};{critical} waiting={waiting};{warning_waiting};{critical_waiting} accepted={accepted} handled={handled} requests={requests} reading={reading} writing={writing}".format( + warning=args.warning_active, + critical=args.critical_active, + warning_waiting=args.warning_waiting, + critical_waiting=args.critical_waiting, + **data + ) if data["active_connections"] >= args.critical_active or data["waiting"] >= args.critical_waiting: print("CRITICAL:", status_str, perfdata) sys.exit(nagios.CRITICAL) @@ -74,6 +74,9 @@ def main(): print("OK:", status_str) sys.exit(nagios.OK) else: + perfdata = "| active_connections={active_connections} waiting={waiting} accepted={accepted} handled={handled} requests={requests} reading={reading} writing={writing}".format( + **data + ) print("OK:", status_str) print('Critical and warning levels disabled.', perfdata) sys.exit(nagios.OK)