Nagios check_snmp ifoperstatus not OK

check-snmpnagiosnet-snmpsnmp

I'm reading Monitoring Routers and Switches page, in particular "Monitoring SNMP Status Information" section.

quote:

In the example above, the "-o ifOperStatus.1" refers to the OID for
the operational status of port 1 on the switch. The "-r 1" option
tells the check_snmp plugin to return an OK state if "1" is found in
the SNMP result (1 indicates an "up" state on the port) and CRITICAL
if it isn't found. The "-m RFC1213-MIB" is optional and tells the
check_snmp plugin to only load the "RFC1213-MIB" instead of every
single MIB that's installed on your system, which can help speed
things up.

So, I'm trying out their example:

# /usr/lib/nagios/plugins/check_snmp --hostname=X.X.X.X --community=X --protocol=X --oid=ifOperStatus.5 -r1 -m RFC1213-MIB
SNMP OK - 1 | RFC1213-MIB::ifOperStatus.5=1 
#

interface returns SNMP OK - 1 – interface is "up". I took another of interface down and ran same command for that interface.

# /usr/lib/nagios/plugins/check_snmp --hostname=X.X.X.X --community=X --protocol=X --oid=ifOperStatus.6 -r1 -m RFC1213-MIB
SNMP OK - 2 | RFC1213-MIB::ifOperStatus.6=2 
# 
# snmpwalk -Os -cX -vX X ifOperStatus.6
ifOperStatus.6 = INTEGER: down(2)
# 

returns SNMP OK - 2 – interface is down

I can't figure out how to get -r1 to work properly, because even though it sees that interface is down, it passes to Nagios as its OK. Any ideas what am I doing wrong?

Best Answer

as "work around" (even though it really not), one can use -c or -w instead of -r, as -r seems to have some sort of bug.

# ./check_snmp --help | grep -E 'critical|warning'
 -w, --warning=THRESHOLD(s)
 -c, --critical=THRESHOLD(s)
# 

example:

# /usr/lib/nagios/plugins/check_snmp --hostname=X.X.X.X --community=X --protocol=X --oid=ifOperStatus.6 -c1
SNMP CRITICAL - *2* | IF-MIB::ifOperStatus.5=2 
#