Как определить правильный OID для использования для мониторинга

Есть ли правильный / лучший способ определения правильного OID для использования для мониторинга SNMP?

Мне удалось загрузить MIB прямо с устройства, но я не смог найти правильный OID из списка сотен OID. Все форумы, с которыми мне приходилось сталкиваться, имеют OID другой модели или просто говорят «используйте OID, и все будет хорошо» без подробностей ...

Предпринятые шаги

  • загрузили MIB с устройства
  • Подтверждено, что я могу проверить связь с устройством
  • Подтверждено, что я могу запустить snmpwalk на устройстве (ПРИМЕЧАНИЕ. Я не знаком со всеми функциями и использованием snmpwalk)
1
задан 5 July 2019 в 22:09
2 ответа

По моему опыту, к сожалению, нет, мне пришлось получить MIB и попытаться найти в них то, что мне нужно запросить. (Я использовал простой браузер mib)

Для найденного вами OID температура слишком высока. Убедитесь, что это не логическое значение, которое устанавливает его на / 1 при срабатывании. Это может объяснить, почему вы ничего не читаете, если устройство работают при нормальной температуре.

К сожалению, использование OID и документация в Интернете недооценены и непопулярны. Я использовал для создания шаблонов мониторинга внутри инструмента мониторинга неизвестных устройств из инструмента, и меня считали пользователем черной магии, чтобы сделать это ..

Единственный совет, который я могу сказать, - это следить за возвращаемым значением, некоторые из них являются строками даже если они записаны как числа, а другие просто целые.

1
ответ дан 3 December 2019 в 23:03

Хотя браузер MIB действительно может помочь, вы можете выполнить большой анализ с помощью команды NET-SNMP snmptranslate. Вариантов довольно много, поэтому обратитесь к его справочной странице, но вот несколько примеров.

Допустим, я загрузил MIB для устройства Synology и хочу отслеживать его. Я могу использовать snmptranslate, чтобы заглянуть в MIB более удобным для пользователя способом, чем просто чтение необработанного файла MIB.

Для начала я проверю файл SYNOLOGY-SYSTEM-MIB.txt, который я скачал.

  • Давайте узнаем настоящее название MIB. Иногда оно совпадает с именем файла MIB, но не всегда. Оператор DEFINITIONS используется для определения имени MIB.

     $ grep ОПРЕДЕЛЕНИЯ SYNOLOGY-SYSTEM-MIB.txt
    ОПРЕДЕЛЕНИЯ SYNOLOGY-SYSTEM-MIB ::= НАЧАЛО
    

    Итак, теперь я знаю, что MIB называется SYNOLOGY-SYSTEM-MIB.

  • Далее я загляну внутрь, чтобы найти верхний OID, определенный в нем:

    $ grep MODULE-IDENTITY SYNOLOGY-SYSTEM-MIB.txt
    предприятия, ИДЕНТИФИКАЦИОННЫЙ МОДУЛЬ, ТИП ОБЪЕКТА, Integer32
    synoSystem MODULE-IDENTITY
    

    Последняя строка самая интересная, особенно synoSystem. Это верхний OID, который я теперь могу использовать для получения структуры MIB.

  • При опросе OID в текстовом виде следует использовать нотацию MIB::OID.Это делается для того, чтобы команда snmp знала, какой MIB использовать для преобразования OID в числовую форму, понятную агентам (очень похоже на принцип преобразования DNS):

    $ snmptranslate -Tp SYNOLOGY-SYSTEM-MIB::synoSystem
    

    Вывод:

    +--synoSystem(1)
     +-- -R-- Integer32 systemStatus(1)
     | Диапазон: 1..2
     +-- -R-- Integer32 температура(2)
     +-- -R-- Integer32 powerStatus(3)
     | Диапазон: 1..2
     |
     +--вентилятор(4)
     | |
     | +-- -R-- Integer32 systemFanStatus(1)
     | | Диапазон: 1..2
     | +-- -R-- Integer32 cpuFanStatus(2)
     | Диапазон: 1..2
     |
     +--dsmInfo(5)
     | |
     | +-- -R-- Строка modelName(1)
     | +-- -R-- Строка серийный номер(2)
     | +-- -R-- Строковая версия(3)
     | +-- -R-- Integer32 upgradeAvailable(4)
     | Диапазон: 1..5
     |
     +--соответствие системы(6)
     |
     +--соответствие системы(1)
     | |
     | +--соответствие системы(1)
     |
     +--системные группы(2)
     |
     +--системная группа(1)
    
  • Теперь предположим, что меня интересует OID upgradeAvailable, чтобы я мог сказать, когда смогу обновить DSM на этом устройстве. Я могу найти более подробную информацию об этом, запустив:

     $ snmptranslate -Td SYNOLOGY-SYSTEM-MIB::upgradeAvailable
    

    Вывод:

     SYNOLOGY-SYSTEM-MIB::upgradeAvailable
    updateAvailable OBJECT-TYPE
     -- ОТ SYNOLOGY-SYSTEM-MIB
    СИНТАКСИС Integer32 (1..5)
    МАКСИМАЛЬНЫЙ ДОСТУП только для чтения
    СТАТУС текущий
    ОПИСАНИЕ «Этот oid предназначен для проверки наличия последней версии DSM, которую можно обновить.
    Доступно(1): есть версия, готовая для скачивания.
    Недоступно(2): это последняя версия DSM.
    Connecting(3): Проверка последней версии DSM.
    Disconnected(4): Не удалось подключиться к серверу.Другое(5): если DSM обновляет или загружает, в статусе будут отображаться другие."
     ::= { iso(1) org(3) dod(6) Internet(1) частные(4) предприятия(1) synology(6574) synoSystem(1) dsmInfo(5) 4 }
    

    Теперь, когда я фактически опрашиваю устройство, я знаю, что использую последнюю версию DSM:

     $ snmpwalk <параметры snmp> <устройство> SYNOLOGY-SYSTEM-MIB::upgradeAvailable
    SYNOLOGY-SYSTEM-MIB::upgradeAvailable.0 = ЦЕЛОЕ ЧИСЛО: 2
    

Надеюсь, это кому-нибудь поможет.

1
ответ дан 27 July 2020 в 20:34

Теги

Похожие вопросы