SNMP Walk против списка MIB OID

SNMP Walk против списка MIB OID

(В конце этой истории есть вопрос, оставайтесь со мной!)

После долгих исследований я, кажется, начал понимать основы SNMP. Я всегда знал, что система управления SNMP будет потреблять данные с устройства (и потенциально отправлять данные на устройства), но у меня были проблемы с пониманием того, как настроить эту установку.

Теперь я использую систему управления SNMP, поэтому пришло время разобраться. Поэтому я углубился в понимание MIB и OID. Как я понимаю, поставщик выпустит MIB для своего продукта, который должен содержать OID, специфичные для продукта. MIB — это как каталог вещей, которые можно запросить с устройства, а OID — это конкретные элементы, которые можно запросить. (Пожалуйста, поправьте меня, если я неправильно понимаю.)

Например, SonicWall может предоставить MIB для определенной прошивки для одного из своих Firwewall. Поэтому, если я хочу отслеживать максимальное количество подключений, доступных для этого брандмауэра, я должен загрузить MIB с mysonicwall.com, импортировать MIB в MIB Browser и найти подходящий OID, соответствующий максимальному количеству подключений. Затем я могу ввести этот OID в свою систему управления SNMP для отслеживания этой метрики.

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

Но когда это понимание рушится для меня, это когда я выполняю и SNMP-прогулку по моему SonicWall. Прогулка производит более 500 OID, которые возвращаются. Но когда я изучаю MIB, предоставленный SonicWall, там указана только часть этих OID. Это потому, что большинство OID, обнаруженных во время прогулки, не являются специфичными для SonicWall, а скорее общими OID отраслевого стандарта?

Кроме того, есть ли приличный способ получить отчет ВСЕХ данных (будь то специфичные для sonicwall или отраслевые стандарты), которые мой SonicWall может предоставить через SNMP? Как какой-то инструмент, в который я мог бы вбить данные из SNMP, и он мог бы вернуть то, что они все означают?

Также, если у меня есть пробелы в понимании SNMP, MIB и OID, я буду рад обратной связи. Спасибо!!!!

решение1

Хорошо, вот что показало мое исследование SNMP. Я не могу подтвердить, что все это на 100% точно, но я чувствую, что теперь я гораздо лучше понимаю SNMP в целом, и надеюсь, что эта информация поможет тому, кто только начинает.

Во-первых, SNMP мне кажется беспорядочной системой. Она была разработана в конце 80-х, и хорошей альтернативы просто нет, так что, полагаю, мы работаем с тем, что есть.

SNMP состоит из 3 частей: системы управления SNMP, как минимум одного сетевого устройства и программного агента на этих сетевых устройствах. Например, вы можете использовать Naigos или MaxFocus в качестве системы управления SNMP для запроса устройств в вашей сети, таких как принтеры, коммутаторы, маршрутизаторы и т. д. Все эти устройства работают на небольших программных компонентах, которые были созданы их производителями. Эти программные компоненты в основном производят кучу данных SNMP на основе того, как функционирует устройство. Например, принтер может производить данные об уровнях тонера, или маршрутизатор может производить данные о том, сколько одновременных подключений он в данный момент поддерживает. Затем система управления SNMP может запрашивать у этих устройств эту информацию.

Но как это на самом деле делается? Ну, некоторые организации по стандартизации создали MIB еще в 80-х годах, чтобы помочь с этим. MIB — это, по сути, большое дерево данных атрибутов SNMP, которые можно запросить. Эти стандартные MIB охватывают большое количество запрашиваемых атрибутов — от тонера до сетевых настроек — но, как вы можете себе представить, с появлением новых устройств и технологий они не охватывают все. Поэтому производители создали MIB для конкретных продуктов, которые помогают заполнить эти пробелы.

MIB звучат довольно хорошо, но реальность такова, что их часто трудно понять и они плохо написаны. Иногда они не написаны в соответствии с надлежащей спецификацией, поэтому их становится трудно использовать. Тем не менее, общий процесс использования MIB для выяснения того, какие элементы вы можете запросить на вашем устройстве по выбору (маршрутизатор, принтер и т. д.) выглядит следующим образом:

  1. Купите себе бесплатное ПО MIB Browser. Они все плохие, но я считаю, что NetTools Pro от Axence или MIB Browser от ManageEngine — наименее плохие.
  2. Большинство браузеров MIB поставляются с предварительно загруженными файлами MIB "по умолчанию". Но если вы хотите узнать, какие элементы конкретного поставщика вы можете запросить на своих устройствах, вам придется загрузить пользовательский файл MIB от вашего поставщика. (Sonicwall, HP и т. д.) Если ваш поставщик не предлагает файлы MIB, есть несколько онлайн-ресурсов, на которых размещено множество файлов MIB. Я думаю, один из них называется MIB Depot или что-то в этом роде...
  3. После загрузки MIB-файла вашего поставщика импортируйте его в свой MIB-браузер.
  4. Теперь мы выполняем то, что называется «прогулкой» по вашему SNMP-устройству. Для этого вам нужно будет ввести IP-адрес устройства и его строку сообщества. (Строка сообщества на самом деле является просто паролем или общим секретом, используемым для аутентификации. Почему создатели SNMP решили, что им нужно отличаться и называть это строкой сообщества, мне непонятно...) Я также должен упомянуть, что устройство, к которому вы обращаетесь, должно быть настроено на разрешение запросов SNMP. Обычно это делается через веб-интерфейс устройства, который также обычно является местом, где вы устанавливаете строку сообщества.
  5. Как только вы подключите свой MIB-браузер к устройству, выполните функцию «прогулки». Каждый MIB-браузер работает немного по-разному, поэтому вам нужно будет немного поиграться, чтобы увидеть, как работает его функция прогулки. Но в целом он должен возвращать список OID с вашего устройства. Эти ID соответствуют записи в файлах MIB. Обычно вы можете дважды щелкнуть или выделить один из этих OID, и он найдет соответствующий элемент MIB, который скажет вам, для чего используется этот OID, например, уровни тонера, версия ОС, сетевые подключения и т. д. Затем вы можете ввести номер OID в свою систему управления SNMP и начать отслеживать этот атрибут!

Итак, после всех моих исследований я пришел к выводу, что SNMP, по крайней мере, кажется мне очень несовершенной и громоздкой системой. Но из того, что я прочитал, кажется, что, по крайней мере, как только вы ее настроите, она будет надежной и быстрой. Надеюсь, эта информация поможет кому-то еще, кто только погружается в мир SNMP! Вот еще одна ссылка, которую я нашел полезной:

http://www.allthingsmax.com/2014/02/take-snmp-walk-creating-new-snmp-checks.html

ОБНОВЛЕНИЕ: Я добавлю еще один совет. При обходе значений OID устройств есть два разных типа значений, которые вы можете получить: скалярные и табличные.

Табличный тип используется для устройств, которым необходимо предоставить один и тот же тип значения для нескольких компонентов. Например, маршрутизатор может иметь 9 портов. Каждый порт имеет свой физический адрес или MAC-адрес. Это представлено таблицей в MIB.

Скаляр используется для значений, не требующих табличной структуры.

ВАЖНАЯ ЧАСТЬ: Скалярные значения всегда добавляются с .0, а табличные значения добавляются с числом, представляющим конкретное значение устройства. Например, на маршрутизаторе порт 1, скорее всего, будет добавлен с .1, порт 2 с .2 и т. д. Затем, когда вы вводите OID в вашу систему управления SNMP, вам нужно убедиться, что вы включили этот последний числовой символ. Например, если PhysAddress = .1.3.6.1.2.1.2.2.1.6, но без добавления табличного значения это не принесет вам пользы. Это похоже на скалярные значения, к которым всегда нужно добавлять .0. Хороший браузер MIB должен показывать вам эти добавленные значения при обходе устройства. Браузер MIB ManageEngine хорошо справляется с этой задачей. Он форматирует его следующим образом:

--Скалярные значения:

sysUpTime.0

sysContact.0

sysName.0

--Табличные значения:

еслиPhysAddress.1

еслиPhysAddress.2

еслиPhysAddress.3

...

Связанный контент