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" password="eva1234"
mode="check_systems" mode="check_systems"
path='' path=''
nagios_server = ""
nagios_port = 8002
nagios_myhostname = "localhost"
escape_newlines = False
# No real need to change anything below here # No real need to change anything below here
version="1.0" version="1.0"
@ -67,9 +71,13 @@ from sys import exit
from sys import argv from sys import argv
from os import getenv,putenv from os import getenv,putenv
import subprocess import subprocess
import xmlrpclib
import socket
socket.setdefaulttimeout(5)
def print_help(): def print_help():
print broken
print "check_eva version %s" % version print "check_eva version %s" % version
print "This plugin checks HP EVA Array with the sssu command" print "This plugin checks HP EVA Array with the sssu command"
print "" print ""
@ -131,6 +139,14 @@ while len(arguments) > 0:
show_perfdata = True show_perfdata = True
elif arg == '--no-perfdata': elif arg == '--no-perfdata':
show_perfdata = False 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': elif arg == '-h' or '--help':
print_help() print_help()
exit(ok) exit(ok)
@ -271,12 +287,36 @@ def run_sssu(system=None, command="ls system full"):
def end(summary,perfdata,longserviceoutput,nagios_state): def end(summary,perfdata,longserviceoutput,nagios_state):
global show_longserviceoutput global show_longserviceoutput
global show_perfdata global show_perfdata
if not show_perfdata: perfdata = "" global nagios_server
print "%s - %s | %s" % (state[nagios_state], summary,perfdata) 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: 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) 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(): def check_systems():
summary="" summary=""
perfdata="" perfdata=""