Given an snmptrap mib that looks like:
Code: Select all
EVENT room-alert-4e-snmp-trap .1.3.6.1.4.1.20916.1.6.0.2 "Status Events" Normal
FORMAT A room-alert-4e-snmp-trap indicates that an alarm $*
EXEC /usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$s" "$@" "$-*" "A room-alert-4e-snmp-trap indicates that an alarm $*"
SDESC
A room-alert-4e-snmp-trap indicates that an alarm
condition has occurred on the sensor indicated
by the alarmmessage variable.
Variables:
1: alarmmessage
EDESC
I noticed that your alarm cleared messages have a value of 0 and alarm on have a value of 1. With that, we can alter snmptraphandling.py, which is passed the result from snmptt expanding the EXEC line variables and finally passes it to nagios.cmd as a passive result. If we were to alter the EXEC line to have $1 instead of $s such as:
Code: Select all
EXEC /usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$1" "$@" "$-*" "A room-alert-4e-snmp-trap indicates that an alarm $*"
Code: Select all
def get_return_code(severity):
severity = severity.upper()
if severity == "INFORMATIONAL":
return_code = "0"
elif severity == "NORMAL":
return_code = "0"
elif severity == "SEVERE":
return_code = "2"
elif severity == "MAJOR":
return_code = "2"
elif severity == "CRITICAL":
return_code = "2"
elif severity == "WARNING":
return_code = "1"
elif severity == "MINOR":
return_code = "1"
else:
printusage()
return return_code
Code: Select all
def get_return_code(severity):
severity = severity.upper()
if severity == "INFORMATIONAL":
return_code = "0"
elif severity == "NORMAL":
return_code = "0"
elif severity == "SEVERE":
return_code = "2"
elif severity == "MAJOR":
return_code = "2"
elif severity == "CRITICAL":
return_code = "2"
elif severity == "WARNING":
return_code = "1"
elif severity == "MINOR":
return_code = "1"
elif severity == "0":
return_code = "0"
elif severity == "1":
return_code = "1":
else:
printusage()
return return_code