Серверы и ИИ: практическое применение
OID SNMP: последнее число не всегда является номером порта
Для точного Get-запроса нужен идентификатор экземпляра, а не только имя типа объекта. Ошибка часто возникает при переносе OID из описания MIB в шаблон мониторинга. Обход поддерева при этом может работать, а запрос конкретного значения возвращать отсутствие экземпляра.
У скалярных объектов экземпляр обычно задаётся суффиксом .0. Табличные объекты используют INDEX или AUGMENTS согласно MIB. Индекс может состоять из нескольких частей, а строка способна кодироваться длиной и последовательностью октетов. Поэтому универсальное правило «заменить последнее число на порт» не соответствует модели SMIv2.
Для каждой нужной колонки читают определение строки и способ формирования идентификатора. Если таблица содержит несколько сущностей на интерфейс, одного ifIndex может быть недостаточно. Числовой OID и символическое имя должны указывать на один и тот же экземпляр при одинаковой версии MIB.
В приёмке сверяют несколько известных строк, включая составной или строковый индекс. Проверяют точное чтение после успешного обхода и изменение состава таблицы. В сохранённой схеме мониторинга фиксируют правило индексации, а не только один удачный пример OID. Это позволяет добавлять новые экземпляры без случайной привязки к соседнему объекту.
Основание — Numbered IETF RFC definitions of SNMP, SMIv2, IF-MIB, USM and VACM; references scoped per task, разделы RFC2578 7.7 Mapping of the INDEX clause; scalar instances; RFC3416 GetRequest exact name match. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — указанные номерные RFC о SNMP и SMIv2. Они описывают соответствующую модель протокола, а не подтверждённые возможности конкретного агента. Реальные MIB, firmware, права и криптографические реализации устройства не проверялись; сетевые запросы и SET не выполнялись.