Debian
snmp:獲取短介面名稱而不是長 ifDescr(再次)
我正在使用cricket對基於 Debian 的伺服器進行一些簡單的監控(包括網路設備)。
介面由名稱標識(例如
eth0
,eth1
…),並且 cricket 通過在以下位置查找它們將這些名稱映射到正確的 OIDIF-MIB::ifDescr
:$ snmpwalk -Os -c public -v 1 wheezy 1.3.6.1.2.1.2.2.1.2 iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo" iso.3.6.1.2.1.2.2.1.2.2 = STRING: "eth0" iso.3.6.1.2.1.2.2.1.2.3 = STRING: "eth1"
在我今天將我的機器升級到 Debian/jessie 之前,一切都很順利。現在報告的介面名稱是對品牌的長描述:
$ snmpwalk -Os -c public -v 1 jessie 1.3.6.1.2.1.2.2.1.2 iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo" iso.3.6.1.2.1.2.2.1.2.2 = STRING: "Intel Corporation 82576 Gigabit Network Connection" iso.3.6.1.2.1.2.2.1.2.3 = STRING: "Intel Corporation 82576 Gigabit Network Connection"
雖然我覺得長名字很煩人,但它變得毫無用處,因為它不再是唯一的:因為有問題的機器內置了兩個相同的網卡,我只得到了兩次相同的名字。
有沒有辦法
snmpd
報告短介面名稱?
似乎使用
IF-MIB::ifDescr
介面名稱是完全錯誤的。正如 OID 的名稱所暗示的那樣,這意味著是介面的(詳細)描述,而不是(唯一的)名稱。要使用的正確 OID 是
IF-MIB::ifName
$ snmpwalk -Os -c public -v 1 wheezy 1.3.6.1.2.1.31.1.1.1.1 iso.3.6.1.2.1.31.1.1.1.1.1 = STRING: "lo" iso.3.6.1.2.1.31.1.1.1.1.2 = STRING: "eth0" iso.3.6.1.2.1.31.1.1.1.1.3 = STRING: "eth1" $ snmpwalk -Os -c public -v 1 jessie 1.3.6.1.2.1.31.1.1.1.1 iso.3.6.1.2.1.31.1.1.1.1.1 = STRING: "lo" iso.3.6.1.2.1.31.1.1.1.1.2 = STRING: "eth0" iso.3.6.1.2.1.31.1.1.1.1.3 = STRING: "eth1"
在這種情況下
cricket
,我將介面映射的板球配置更改為:OID ifName 1.3.6.1.2.1.31.1.1.1.1 map interface-name base-oid = ifName match = %interface-name%