diff --git a/nsclient/trunk/scripts/check_eva.zip b/nsclient/trunk/scripts/check_eva.zip index 8c824a7..052b884 100644 Binary files a/nsclient/trunk/scripts/check_eva.zip and b/nsclient/trunk/scripts/check_eva.zip differ diff --git a/nsclient/trunk/scripts/check_eva/check_eva.exe b/nsclient/trunk/scripts/check_eva/check_eva.exe index 29afb05..25840ee 100644 Binary files a/nsclient/trunk/scripts/check_eva/check_eva.exe and b/nsclient/trunk/scripts/check_eva/check_eva.exe differ diff --git a/nsclient/trunk/scripts/check_eva/check_eva.py b/nsclient/trunk/scripts/check_eva/check_eva.py index e6fa04d..7fbc7fa 100644 --- a/nsclient/trunk/scripts/check_eva/check_eva.py +++ b/nsclient/trunk/scripts/check_eva/check_eva.py @@ -40,6 +40,10 @@ username="eva" password="eva1234" mode="check_systems" path='' +nagios_server = "" +nagios_port = 8002 +nagios_myhostname = "localhost" +escape_newlines = False # No real need to change anything below here version="1.0" @@ -67,9 +71,13 @@ from sys import exit from sys import argv from os import getenv,putenv import subprocess +import xmlrpclib +import socket +socket.setdefaulttimeout(5) def print_help(): + print broken print "check_eva version %s" % version print "This plugin checks HP EVA Array with the sssu command" print "" @@ -131,6 +139,14 @@ while len(arguments) > 0: show_perfdata = True elif arg == '--no-perfdata': show_perfdata = False + elif arg == '--nagios_myhostname': + nagios_myhostname = arguments.pop(0) + elif arg == '--nagios_server': + nagios_server = arguments.pop(0) + elif arg == '--nagiosport': + nagios_port = arguments.pop(0) + elif arg == '--escape-newlines': + escape_newlines = True elif arg == '-h' or '--help': print_help() exit(ok) @@ -271,12 +287,36 @@ def run_sssu(system=None, command="ls system full"): def end(summary,perfdata,longserviceoutput,nagios_state): global show_longserviceoutput global show_perfdata - if not show_perfdata: perfdata = "" - print "%s - %s | %s" % (state[nagios_state], summary,perfdata) + global nagios_server + global nagios_port + global nagios_myhostname + global hostname + global mode + global escape_newlines + + message = "%s - %s" % ( state[nagios_state], summary) + if show_perfdata: + message = "%s | %s" % ( message, perfdata) if show_longserviceoutput: - print longserviceoutput + message = "%s\n%s" % ( message, longserviceoutput.strip()) + if escape_newlines == True: + lines = message.split('\n') + message = '\\n'.join(lines) + if nagios_server is not None: + try: + phone_home(nagios_server,nagios_port, status=nagios_state, message=message, hostname=nagios_myhostname, servicename=mode) + except: + pass + print message exit(nagios_state) +''' phone_home: Sends results to remote nagios server via python xml-rpc ''' +def phone_home(nagios_server,nagios_port, status, message, hostname=None, servicename=None): + uri = "http://%s:%s" % (nagios_server,nagios_port) + s = xmlrpclib.ServerProxy( uri ) + s.nagiosupdate(hostname, servicename, status, message) + return 0 + def check_systems(): summary="" perfdata="" diff --git a/nsclient/trunk/scripts/check_eva/library.zip b/nsclient/trunk/scripts/check_eva/library.zip index a2d7c19..72d69f6 100644 Binary files a/nsclient/trunk/scripts/check_eva/library.zip and b/nsclient/trunk/scripts/check_eva/library.zip differ diff --git a/nsclient/trunk/scripts/check_hpacucli/library.zip b/nsclient/trunk/scripts/check_hpacucli/library.zip index 41bf1cd..11bfd0f 100644 Binary files a/nsclient/trunk/scripts/check_hpacucli/library.zip and b/nsclient/trunk/scripts/check_hpacucli/library.zip differ