Я устанавливаю Zabbix для мониторинга через snmp некоторых устройств с компьютера, на котором работает сервер Ubuntu 12.04.
Существует проблема с определениями MIB, так как команды snmp неправильно переводят некоторые из MIB. Я уже установил пакет « snmp-mibs-downloader », поэтому файлы, содержащие описания MIB, установлены правильно.
MIB переводятся только для получения числового ключа (файлы MIB доступны для команд snmp), но результаты, возвращаемые командой snmpget , неправильно переводят ключ. Шаблоны zabbix, которые я использую, ожидают перевода ключа ( SNMPv2-MIB :: sysUpTime.0 ), поэтому текущие результаты не распознаются и игнорируются.
Тестовый пример:
$ snmptranslate -On SNMPv2-MIB::sysUpTime.0
.1.3.6.1.2.1.1.3.0
$ snmpget -v 2c -c public 192.168.1.1 1.3.6.1.2.1.1.3.0
iso.3.6.1.2.1.1.3.0 = Timeticks: (2911822510) 337 days, 0:23:45.10
На другом компьютере (на котором работает очень старый дистрибутив Red Hat) команды snmp выполняют как прямой, так и обратный перенос, как и ожидалось:
# snmptranslate -On SNMPv2-MIB::sysUpTime.0
.1.3.6.1.2.1.1.3.0
# snmpget -v 2c -c public 192.168.1.1 1.3.6.1.2.1.1.3.0
SNMPv2-MIB::sysUpTime.0 = Timeticks: (2911819485) 337 days, 0:23:14.85
В чем проблема с моей коробкой Ubuntu? Я что-то упускаю?
Я считаю, что для меня работает следующее с установленными snmp и snmpd в моей системе:
$ snmpget -m SNMPv2-MIB -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.3.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (1422579) 3:57:05.79
Кажется, существуют различные перекрывающиеся MIBS, поэтому я думаю, что может быть необходимо указать, какой модуль вы хотите с опцией -m
.
Следующее также работает:
$ snmpget -v 2c -c public 127.0.0.1 SNMPv2-MIB::sysUpTime.0
SNMPv2-MIB::sysUpTime.0 = Timeticks: (129146) 0:21:31.46
Таким образом, кажется, что если вы укажете числовой OID без указания модуля MIB, snmpget
вернет числовой дисплей, но если вы соответствуете требованиям запрос с символической ссылкой на конкретный MIB о том, что определение MIB используется для интерпретации ответа.
См. Также man snmp.conf