Re: Plugin Wrapper written in python
Joram Agten <[email protected]>
| Newsgroups | gmane.network.nagios.plugins.devel |
|---|---|
| Message-ID | <CAAybBsCdQ3ZKkShUqEnzvTdBWzfqGTx2YYk4pThBZoChTaUz0A@mail.gmail.com> |
the last lines of your python program should contain something like status_code, message = checkNodes() # print message to stdout print(message) # end process with correct exit status sys.exit(status_code) On Fri, Nov 9, 2012 at 3:44 PM, Jamin Becker <[email protected]> wrote: > The other day I wrote a sort of wrapper that uses Nagios' check_icmp > plugin to monitor several nodes on our network. If any one of the nodes > down it returns a value of 1 (WARNING), if two or more nodes go down it > returns a value of 2 (CRITICAL). > > Unfortunately, even if it is critical it still shows up as Ok...even > though I know it is returning a value of 2. The plugin is written in > python. > > #!/usr/bin/env python > import os > import subprocess > home="/usr/lib/nagios/plugins" > > def checkNodes(): > up = 0 > aProblemsDetected=0 > bProblemsDetected=0 > cProblemsDetected=0 > status=0 > message=" - " > TEST_OK=0 > TEST_WARNING=1 > TEST_CRITICAL=2 > TEST_UKNOWN=3 > try: > > cloud_alpha_status=subprocess.check_output(home+"/check_icmp -H cloud-alpha > ",shell=True) > if "OK" in cloud_alpha_status: > ++up > > else: > message=message+ "Cloud Bravo does not seem to be > reachable. " > aProblemsDetected=1 > > except: > message=message+"Node (Cloud-Alpha) is either down or > unreachable. " > aProblemsDetected=1 > try: > > cloud_bravo_status=subprocess.check_output(home+"/check_icmp -H > cloud-bravo",shell=True) > if "OK" in cloud_bravo_status: > ++up > else: > print cloud_bravo_status > message=message+"Cloud Bravo does not seem to be > reachable. " > bProblemsDetected=1 > except: > message=message+"Node (Cloud-Bravo) is either down or > unreachable. " > bProblemsDetected=1 > try: > > cloud_charlie_status=subprocess.check_output(home+"/check_icmp -H > cloud-charlie",shell=True) > if "OK" in cloud_charlie_status: > ++up > else: > print cloud_charlie_status > message=message+"Cloud Charlie does not seem to be > reachable. " > cProblemsDetected=1 > except: > print "Node (Cloud-Charlie) is either down or unreachable. > " > cProblemsDetected=1 > > if aProblemsDetected+bProblemsDetected+cProblemsDetected==0: > status=TEST_OK > message=message+"CLUSTER IS UP! -- Cloud-Alpha up -- > Cloud-Bravo up -- Cloud-Charlie up" > code='OK' > if aProblemsDetected+bProblemsDetected+cProblemsDetected==1: > status=TEST_WARNING > code='WARNING' > message="Errors Detected:"+message > elif aProblemsDetected+bProblemsDetected+cProblemsDetected>1: > status=TEST_CRITICAL > message="Many Errors Detected"+message > code='CRITICAL' > return status,(code+' '+message) > > print checkNodes() > > > > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_nov > _______________________________________________________ > Nagios Plugin Development Mailing List > Nagiosplug-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org > Unsubscribe at > https://lists.sourceforge.net/lists/listinfo/nagiosplug-devel > ::: Please include plugins version (-v) and OS when reporting any issue. > ::: Messages without supporting info will risk being sent to /dev/null > ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_nov _______________________________________________________ Nagios Plugin Development Mailing List Nagiosplug-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Unsubscribe at https://lists.sourceforge.net/lists/listinfo/nagiosplug-devel ::: Please include plugins version (-v) and OS when reporting any issue. ::: Messages without supporting info will risk being sent to /dev/null