Я получаю сообщение об ошибке в заголовке, когда выполняю следующую команду.
$ snmpget -v3 -u edgeos-snmpd-user -l authPriv -a SHA -x AES -A authPhrase -X privPhrase 192.168.x.x hrSystemUptime.0
hrSystemUptime.0: Unknown Object Identifier (Sub-id not found: (top) -> hrSystemUptime)
Если я введу ту же команду в целевой системе (192.168.x.x), я получу правильный результат.
# snmpget -v3 -u edgeos-snmpd-user -l authPriv -a SHA -x AES -A authPhrase -X privPhrase localhost hrSystemUptime.0
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1362660) 3:47:06.60
Клиент представляет собой контейнер Docker на основе Ubuntu 18.04.1, а цель - устройство Linux на базе Alpine.
Я установил snmp-mibs-downloader
в контейнере и hrSystemUptime
запись существует в "/var/lib/snmp/mibs/ietf/HOST-RESOURCES-MIB
.
-- The Host Resources System Group
hrSystemUptime OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The amount of time since this host was last
initialized. Note that this is different from
sysUpTime in the SNMPv2-MIB [RFC1907] because
sysUpTime is the uptime of the network management
portion of the system."
::= { hrSystem 1 }
Однако поиск в этом каталоге не ведется.
$ net-snmp-config --default-mibdirs
/home/edge/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Я скопировал HOST-RESOURCES-MIB
к /home/edge/.snmp/mibs
но это не имело значения.
Что мне нужно сделать в контейнере, чтобы это заработало?
В snmp
пакет устанавливает /etc/snmp/snmp.conf
:
# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loading them by commenting out the following line.
mibs :
Комментирование последней строки решает проблему, как описано в комментарии к файлу. Удаление snmp.conf
полностью имеет тот же эффект.
У меня была аналогичная ошибка при попытке заставить телеграф работать через докер для опроса маршрутизатора для получения различной статистики.
Файл, который, как ему казалось, был нужен, HOST-RESOURCES-MIB, находился в жестко связанной папке (не знаю правильной терминологии, но с ls -l это был другой цвет с указанным связанным назначением), но даже с правильным тома в конфигурации докера и права / usr / * разрешения, не пойдем.
Полночи возился с ним, но в итоге это сработало, когда я указал две жестко привязанные папки как тома в докере:
- /var/lib/snmp/mibs/ietf:/usr/share/snmp/mibs/ietf:ro
- /var/lib/snmp/mibs/iana:/usr/share/snmp/mibs/iana:ro
Уверен, что это просто я идиот и, возможно, не устанавливаю вещи в правильном порядке, но чем больше я думаю, тем больше кажется, что это проблема с докером / убунту - должно работать из коробки, верно?
Я полный Linux noob, так что, наверное, простое объяснение того, что я напутал, кто знает. Надеюсь, это кому-то поможет