This commit is contained in:
Páll Guðjón Sigurðsson 2010-09-09 10:47:07 +00:00
parent 0f99d2b5e6
commit 0cd2359f2f
5 changed files with 43 additions and 3 deletions

Binary file not shown.

View File

@ -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=""