A boilerplate nagios check script.
#!/usr/bin/env python
"""
Boilerplate Nagios check script.
"""
import os, os.path, sys, getopt, datetime
import yaml
nagios_codes = {'OK': 0,
'WARNING': 1,
'CRITICAL': 2,
'UNKNOWN': 3,
'DEPENDENT': 4}
def main():
""" example options processing
here we're expecting 1 option "-h"
with a parameter
"""
try:
opts, args = getopt.getopt(sys.argv[1:], "h:")
except getopt.GetoptError, err:
usage()
host = None
for o, value in opts:
if o == "-h":
host = value
else:
usage()
result = check_condition(host)
nagios_return(result['code'], result['message'])
def usage():
""" returns nagios status UNKNOWN with
a one line usage description
usage() calls nagios_return()
"""
nagios_return('UNKNOWN',
"usage: {0} -h host".format(sys.argv[0]))
def nagios_return(code, response):
""" prints the response message
and exits the script with one
of the defined exit codes
DOES NOT RETURN
"""
print code + ": " + response
sys.exit(nagios_codes[code])
def check_condition(host=None):
return dict(
code = "OK" # or "CRITICAL" or "WARNING"
message = "This host or service is okay."
)
if(__name__ == '__main__'):
main()
check_anything.py hosted by GitHub