Как стать автором
Обновить

Комментарии 15

Для таких опросов очень удобно пользоваться mibbrowser. К сожалению, в бесплатной версии ограничение только на 10 MIB файлов, а в остальном просто великолепно работает.

Очень жаль, что вы не собираетесь делать какую-то автоматизацию на основе этих данных. Я ее как раз делаю и было бы интересно посмотреть тут на чужой опыт.
Гораздо надежнее в коде ПО написать числовой OID. Автоматизацию мы как раз и делаем уже с использованием полученных данных преобразований Object ID -> Object Name и Object Name -> Object ID. Один раз преобразовали, добавили в код ПО и забыли о них.

И еще одна причина, почему MIB Browser не подходит: мы везде используем Linux. Как на серверах, так и на рабочих машинах.
Особенно надёжно, если в какой-либо версии у вас «смещается» этот oid… Удобнее, как раз, использовать имя и поддерживать актуальный MIB, насколько я понимаю. Тогда софт знает, что ему нужно предоставить, а в какое место в дереве — значится в MIB'е.
из многолетнего опыта интеграции различного оборудования в системы мониторинга IBM (Tivoli Netcool OMNIbus, если вдруг интересно, про какой именно софт речь) скажу, что смещаться может как цифровое, так и буквенное обозначение.
так что актуализировать приходится и то, и то. но вендора обычно все-таки обновляют мибы.

намного хуже, когда, например, разные версии софта для одной и той же железки имеют формат сислога отличающийся одним словом где-нибудь в середине.
Я бы почитал описание, как читать mib-файлы самому. Если читаемые параметры не представляют особых трудностей, т.к. их можно прочитать и увидеть, то параметры конфигурируемые я с помощью snmwalk не увижу… а mib-файлы есть и хочется находить их там вместе со всем описанием.
Я пользуюсь iReasoning MIB browser — довольно удобная утилита для просмотра структуры MIB и тестирования. А в рабочие скрипты вбиваю уже численные OID.
Чего-то она у меня не пошла с mib-ами от Cisco. Да и неудобно как-то оказалось. А какие конкретно операции Вы этой утилитой делаете?
У Cisco MIB файлы иерархически связаны. Например, чтобы коректно загрузился CISCO-ENVMON-MIB-V1SMI.my пришлось загрузить еще и CISCO-SMI-V1SMI.my (причем вроде достаточно чтобы он просто присутствовал в том же каталоге) (MIB файлы брал с ftp.cisco.com)
Mibbrowser использую для удобного просмотра дерева OID (это действительно удобнее чем snmpwalk да еще и без описаний), выборки и тестирования OID которые мне показались интересными. После чего пишу плагин и темплейты к системе мониторинга (у меня это Nagios) для данного типа параметров и типа железок и добавляю мониторинг этого параметра или группы параметров по всем устройствам этого типа (например получение температуры с маршрутизаторов CISCO).

Как это выглядит в mibbrowser:
habrastorage.org/storage3/cce/276/8ae/cce2768ae0857f0c88db6d2e5e5d3df1.png

Как это выгляит в Nagios:
habrastorage.org/storage3/3d8/f89/47e/3d8f8947eedcd0f8d53d873e71d48ab7.png

Как это выглядит в pnp4nagios:
habrastorage.org/storage3/26a/695/bff/26a695bff8e8c7adb2a7a8d1b6ff8206.png
Да. Это я понимаю. Я попытался использовать IReasoning — и чего то она то ли на мибы ругалась то ли еше чего. В итоге использовал MIB Browser от ManageEngine но как то я от него не в восторге. Online MIB браузер от Cisco удобнее.
По сути любой более или менее адекватный миб-броузер вас спасет, ибо сможет показать все параметры, попутно сообщив, какие из них read only, а какие read write.

Кстати зависит от устройства и реализации SNMP на нем. В большинстве случаев конфигурируемые параметры можно увидеть через snmpwalk. Это вполне логично — если есть возможность задать значение параметра, должна быть возможность проверить, что же мы задали.
Объекты Read Write можно увидеть так:
snmptranslate -M ./ -m DGS3120-24SC-L2MGMT-MIB -Tp 1|grep RW                                                                                        
   |     |  |  +-- -RW- EnumVal   swL2DevCtrlSnmpTrapState(5)                                                                               
   |     |  |  +-- -RW- EnumVal   swL2DevCtrlCleanAllStatisticCounter(6)
   |     |  |  +-- -RW- INTEGER   swL2DevCtrlVlanIdOfFDBTbl(7)
   |     |  |  +-- -RW- EnumVal   swL2MACNotifyState(8)
   |     |  |  +-- -RW- INTEGER   swL2MACNotifyHistorySize(9)
   |     |  |  +-- -RW- INTEGER   swL2MACNotifyInterval(10)
   |     |  |  +-- -RW- EnumVal   swL2DevCtrlAsymVlanState(13)
   |     |  |  |  +-- -RW- EnumVal   swL2DevCtrlTelnetState(1)
   |     |  |  |  +-- -RW- INTEGER   swL2DevCtrlTelnetTcpPort(2)
   |     |  |  +-- -RW- INTEGER   swL2DevCtrlManagementVlanId(16)
...
|  +-- -RW- EnumVal   swPortSecTrapLogState(1)
|  +-- -RW- INTEGER   swPortSecSysMaxLernAddr(2)
|  +-- -RW- EnumVal   swPortSecTrapState(3)
|  +-- -RW- EnumVal   swPortSecLogState(4)
   |        +-- -RW- INTEGER   swPortSecPortMaxLernAddr(2)
   |        +-- -RW- EnumVal   swPortSecPortLockAddrMode(3)
   |        +-- -RW- EnumVal   swPortSecPortAdmState(4)
   |        +-- -RW- EnumVal   swPortSecPortClearCtrl(5)
   |        +-- -RW- INTEGER   swPortSecVLANMaxLernAddr(2)
   |        +-- -RW- EnumVal   swPortSecVLANClearCtrl(3)
   |  |     +-- -RW- INTEGER   swPortSecVLANOnPortMaxLernAddr(1)
   |     +-- -RW- INTEGER   swPortSecMgmtByVLANOnPortClearPort(1)
   |     +-- -RW- INTEGER   swPortSecMgmtByVLANOnPortClearVID(2)
   |     +-- -RW- EnumVal   swPortSecMgmtByVLANOnPortClearAction(3)
         +-- -RW- EnumVal   swPortSecDelCtrl(4)


После этого подробности отображаются ключами -TBd
% snmptranslate -M ./ -m DGS3120-24SC-L2MGMT-MIB -On -TBd swPortSecPortLockAddrMode
.1.3.6.1.4.1.171.12.63.3.1.1.1.3
swPortSecPortLockAddrMode OBJECT-TYPE
  -- FROM       PORT-SECURITY-MIB
  SYNTAX        INTEGER {permanent(1), deleteOnTimeout(2), deleteOnReset(3)} 
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION   "Indicates the mode of locking address.
     In deleteOnTimeout(2) mode, the locked addresses can be aged out after
     the aging timer expires. In this mode, when the locked address is aged
     out, the number of addresses that can be learned has to be increased by one.
     In deleteOnReset (3) mode, locked addresses never age out unless the system
     restarts which will prevent port movement or intrusion."
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) dlink(171) dlink-common-mgmt(12) swPortSecMIB(63) swPortSecMgmt(3) swPortSecMgmtByPort(1) swPortSecPortTable(1) swPortSecPortEntry(1) 3 }
В данный момент, я перевожу OID SNMP Traps с коммутаторов в понятный для оператора формат. Это послужит основой для системы регистрации событий на оборудовании.

Вы с нуля пишите fault management систему или на основе чего-то существующего допиливаете?
Да. Есть самописная система, которая знает все о 5000 коммутаторах, включая как они соединены. Сейчас «fault management» — это наколеночный perl скрипт, который грепает syslog сообщения (питание, loppdetect) и отправляет уведомления, подкрепив их данными о коммтуторе. Разрабатывается решение, которое сможет работать с syslog и snmp traps. Предполагается вместо сбора по расписанию всей таблицы fdb обрабатывать mac_notification, на коммутаторах Extreme по каналу syslog обрабатывать изменения iparp записей, используя базу определять является ли порт транковым, когда на него приходит linkTrap.
Попробуйте logstash, не пожалеете. Умеет принимать syslog, snmp traps и многое другое, хранит все в elastic search, по любым критериям можно настроить мониторинг, nagios алерты и вообще тонну всего остального. И все это при правильной настройки — real time!

Мы успешно его используем для мониторинга приложений, а также для анализа бизнес-метрик. Вот так выглядит front-end.
Одним словом — OpenSource Splunk :)
Проблему с подчеркиванием можно решить ключем
       -P [cdeRuwW]
              Specifies MIB parsing options.  See MIB PARSING OPTIONS below.
       -Pu    Toggles whether to allow the underline character in MIB object names and other symbols.  Strictly speaking, this  is  not
              valid SMI syntax, but some vendor MIB files define such names.  The default behaviour can also be set with the configura‐
              tion token mibAllowUnderline.

Еще иногда встречается проблема с комментариями
       -Pc    Toggles whether ASN.1 comments should extend to the end of the MIB source line.  Strictly speaking, a  second  appearance
              of  "--" should terminate the comment, but this breaks some MIB files.  The default behaviour (to interpret comments cor‐
              rectly) can also be set with the configuration token commentToEOL.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации