willixix / naglio-plugins

Monitoring Plugins by William Leibzon
http://william.leibzon.org/nagios/
77 stars 54 forks source link

Changing of ifDescr of SNMP of Debian Jessie and "-n" parameter #53

Open dbareiro opened 9 years ago

dbareiro commented 9 years ago

Hi!

A few days ago I decided to migrate my own servers to Debian GNU/Linux Jessie. Having migrated my firewall, I started getting an error in the Nagios Manubulon plugin check_snmp_netint.pl since it does not find the interface eth1.

# ./check_snmp_netint.pl -H 10.1.0.10 -l Us3r -x passw0rd0 -X passwOrd1 -L md5,des \
> -w 1500,295 -c 2500,400 -k -B --label -n eth1
ERROR : Unknown interface eth1

This was running smoothly prior to migration, although it now seems to have changed the description:

# ./check_snmp_netint.pl -H 10.1.0.10 -l Us3r -x passw0rd0 -X passwOrd1 -L md5,des -n -v
Alarm at 10 + 5
SNMPv3 AuthPriv login : Us3r, md5, des
Filter :
OID : 1.3.6.1.2.1.2.2.1.2.2, Desc : Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter
OID : 1.3.6.1.2.1.2.2.1.2.1, Desc : lo
OID : 1.3.6.1.2.1.2.2.1.2.3, Desc : VIA Technologies, Inc. VT6102 [Rhine-II]
OID : 1.3.6.1.2.1.2.2.1.2.4, Desc : tun0
Name : Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter, Index : 2
Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter:UP:(1 UP): OK |

So I checked the equivalence between ifDescr and ifName:

# snmpwalk -v 3 -u Us3r -l authPriv -a MD5 -A passw0rd0 -x DES -X passwOrd1 10.1.0.10 ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: Realtek Semiconductor Co., Ltd.
RTL-8100/8101L/8139 PCI Fast Ethernet Adapter
IF-MIB::ifDescr.3 = STRING: VIA Technologies, Inc. VT6102 [Rhine-II]
IF-MIB::ifDescr.4 = STRING: tun0
# snmpwalk -v 3 -u Us3r -l authPriv -a MD5 -A passw0rd0 -x DES -X passwOrd1 10.1.0.10 ifName
IF-MIB::ifName.1 = STRING: lo
IF-MIB::ifName.2 = STRING: eth1
IF-MIB::ifName.3 = STRING: eth0
IF-MIB::ifName.4 = STRING: tun0

I could use something like this, but the output is extremely long:

# ./check_snmp_netint.pl -H 10.1.0.10 -l Us3r -x passw0rd0 -X passwOrd1 -L md5,des \
> -w 1500,295 -c 2500,400 -k -B --label -n "Realtek.*"
Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter:UP (in=93.0Kbps/out=13.1Kbps):(1 UP): OK |

It's a pity If it can not solve because quite a while I was using the check_snmp_netint.pl plugin and was very happy with their results. But now in Debian Jessie I'm having this problem. It seems that something has changed in the SNMP service included in the new version of Debian since before (on Debian Wheezy) the description matched the ifName:

# ./check_snmp_netint.pl -H srv01.freesoftware -C public -w 1500,295 -c 2500,400 -n -v
Alarm at 10 + 5
SNMP v1 login
Filter :
OID : 1.3.6.1.2.1.2.2.1.2.2, Desc : eth0
OID : 1.3.6.1.2.1.2.2.1.2.1, Desc : lo
Name : eth0, Index : 2
eth0:UP:(1 UP): OK |

I think it is easier to identify interfaces such as eth0, eth1, etc, rather than by its manufacturer/model.

Is it possible to change the behavior of the plugin so that "-n" allows to specify ifName instead of ifDescr and the plugin output is based on ifName because of this change in Debian?

Thanks in advance.

Best regards, Daniel