Назад | Перейти на главную страницу

snmp: получение короткого имени интерфейса вместо длинного ifDescr (снова)

я использую крикет для простого мониторинга (включая сетевые устройства) моих серверов на базе 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%