я использую крикет для простого мониторинга (включая сетевые устройства) моих серверов на базе Debian.
Интерфейсы идентифицируются по имени (например, eth0
, eth1
, ...), и крикет сопоставляет эти имена с правильными OID, просматривая их в IF-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%