Как получить OID из файла MIB?

Я хочу прочитать все объекты из файла MIB, который есть у менеджера.

Я разработал один инструмент для получения некоторых данных от агента с поддержкой SNMP. Я хочу усовершенствовать этот инструмент, показав все OID из MIB-файла менеджера.

Я использую библиотеку NET-SNMP.

Я увидел следующее:

/usr/local/share/snmp/mibs/ 

папка и она содержит много файлов MIB, но как я могу сформировать список имеющихся в ней OID?

Я просмотрел MIB и увидел структуры, но как мне получить OID каждого объекта, упомянутого в файлах MIB?

Я хочу перечислить все OID следующим образом:

  1. SNMPv2-MIB::sysDescr.0 = .1.3.6.1.2.1.1.1.0
  2. SNMPv2-MIB::sysObjectID.0 = .1.3.6.1.2.1.1.2.0 ... и т.д.

Я хочу просканировать все файлы MIB и найти все OID в файлах.

Как мне это сделать?


person pradipta    schedule 20.09.2012    source источник


Ответы (4)


Используйте snmptranslate-команду из net-snmp библиотеки. Попробуйте со следующими параметрами:

-M "directory containing your MIB file"
-m ALL
-Pu
-Tso
person Massy    schedule 22.02.2013

После некоторых проблем мне удалось сгенерировать OID с помощью следующей команды.

snmptranslate -Pu -Tz -M ~/.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:`pwd` -m module_name_NOT_file_name > module_name.oid
person artBCode    schedule 14.07.2016

Чтобы получить OID с работающего SNMP сервера, вы можете использовать инструмент snmpwalk с параметром -Ci. Инструмент поставляется с Net-SNMP.

person alk    schedule 20.09.2012

Два других SO QA показывают, как это можно сделать без обхода работающей системы:

Это только отправная точка. Там впереди много кодирования.

Обновление: еще один хороший инструмент — компилятор perl SNMP, упакованный в SNMP::MIB::Compiler. С помощью скрипта на Perl вы получаете все элементы/компоненты MIB во внутренние структуры данных, и вы можете выбрать оттуда любую информацию, либо просмотрев дерево структуры, либо выгрузив дерево и выполнив пост-парсинг на дампе.

person minghua    schedule 15.10.2012