Зачем агентам SNMP нужны файлы MIB?

Зачем агентам SNMP нужны файлы MIB?

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

Когда вы выполняете SQL-запрос, SQL-движок выполняет всю работу и возвращает результат — вам не нужно знать, как и где осуществляется хранение.

Но MIB не являются фактическим хранилищем, так какова роль моего агента?
Если агент только регистрирует MIB, как я понимаю в этомруководство, поэтому он вообще не используется как обработчик, а это значит, что есть физическое хранилище, которое вы можете установить и получить к нему доступ, не обходя обработчик. В уроке все, что вы делаете, это так:

netsnmp_register_int_instance("my example int variable",
                                  my_registration_oid,
                                  OID_LENGTH(my_registration_oid),
                                  &example1, NULL);

нет необходимости в обработчике для обработки вызовов.

Допустим, я хочу отслеживать очередь ожидающих запросов моего приложения, поэтому мне нужен агент, который будет запускать все запросы SNMP для application_pending_request для него и возвращать глубину очереди. Зачем мне нужен реальный MIB, когда мне нужно всего лишь опросить очередь моего приложения, чтобы получить результат?

решение1

У вас фундаментальное непонимание того, как работает SNMP. Быстрое и грубое сравнение:SNMP MIB — это имена хостов. MIB сопоставляют OID с понятным именем — например
.1.3.6.1.2.1.1.1.0=> SNMPv2-MIB::sysDescr.0=> Host Description(вывод uname).

Для того чтобы получить информацию с сервера SNMP (агента), эта информациядолженбыть опубликованы в определенном OID.
Для того, чтобы демон SNMP мог опубликовать информацию, ему (обычно) нужны две вещи:

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

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

«Браузеры» SNMP обычно требуют файл MIB, поскольку без него они могут предоставить вам лишь бессмысленный список чисел.

Так что ответ на ваш вопрос: «Вы неНУЖДАТЬСЯФайлы MIB просто полезны для людей, которым необходимо взаимодействовать с SNMP».


Если взять ваш пример (отчет о длине очереди), то он взят из учебника, который вам понравился и который вы используете net-snmp(UCD-SNMP).
net-snmpВключает встроенные средства для такого рода вещей — прочитайте страницу руководства и пример файла конфигурации (обратите особое внимание на execдирективу для запуска внешних скриптов: обычно вы запускаете скрипт, который выводит длину очереди, и запрашиваете этот OID в вашем программном обеспечении для мониторинга/SNMP-клиенте).

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