Nagios plugin template in python
| April 29th, 2009A template for nagios plugins I use:
import sys, getopt
nagios_codes = {‘OK’: 0,
‘WARNING’: 1,
‘CRITICAL’: 2,
‘UNKNOWN’: 3,
‘DEPENDENT’: 4}
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):
""" a dummy check
doesn’t really check anything
"""
return {"code": "OK", "message": host + " ok"}
def main():
""" example options processing
here we’re expecting 1 option "-h"
with a parameter
"""
if len(sys.argv) < 2:
usage()
try:
opts, args = getopt.getopt(sys.argv[1:], "h:")
except getopt.GetoptError, err:
usage()
for o, value in opts:
if o == "-h":
host = value
else:
usage()
result = check_condition(host)
nagios_return(result[‘code’], result[‘message’])
if __name__ == "__main__":
main()