Skip to content

Настройка snmptrap

Настройка узла, принимающего трапы

Приемка трапов реализована через воркер-серверы. Работает на сервере или прокси. Настройка осуществляется путем создания айтема с типом "Server Worker"

Необходимые значения полей:

Вкладка "Элемент данных"

Alt text

Специфичные поля для воркер-сервера:

  • тип информации любой текстовый, воркер всегда возвращает текстовые JSON объекты

  • Worker path путь до воркера-адаптера протокола, при установке из пакета  glaber-workers воркер - адаптеры типично находятся в каталоге /usr/sbin. Воркер должен иметь права на выполнение от пользователя zabbix и быть исполняемым.

  • Интервал обновления - в случае воркеров используется как таймаут рестарта при отсутствии данных. Стоит поставить раз в несколько минут.

Вкладка Предобработка

На этапе предобработки данные перенаправляются на узлы, для которых трапы были предназначены

Данные от воркера приходя в формат JSON, все oid из трапов приходят как отдельные значения в парах oid и value, в поле addr хранится IP адрес источника трапа:

{"addr":"10.224.64.7", "oid":".1.3.6.1.2.1.1.3.0", "value":"3162066838"}

{"addr":"10.224.64.7", "oid":".1.3.6.1.6.3.1.1.4.1.0", "value":".1.3.6.1.4.1.25506.2.38.1.6.3.0.1"}

Для перенаправления используется поле addr. По этому полю ищется целевой узел, на который будет отправлен trap. Поиск делается по IP адресам, которые назначены на интерфейсы узла. Есть также возможность искать по имени узла, в случае если используются IP адреса в именах. В случае трапов опция с интерфейсами логичнее.

В процессе предобработки в JSON ищется значение поля, указанного в перовом параметре. По этому значению ищется узел по интерфейсу и трап будет перенаправлен в метрику узла, имя которой указана во втором параметре в правиле предобработки:

Alt text

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

Если не удалось найти целевой узел или метрику, то выполнение препроцессинга продолжается и в отсутствии других правил метрика будет сохранена в историю.

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

Настройка узлов, принимающих трапы

Метрика для приема трапов

На узлах, принимающих метрики, должна быть метрика с именем, указанным в правиле перенаправления метрик (в примере выше - trap)

Для нахождения узла нужно убедиться, что на нем настроен интерфейс любого типа с IP адресом, совпадающим с тем, с которого приходят трапы. Адресов можно настроить несколько. Если интерфейсов нет, то нужно настроить новые.

Локальное перенаправление метрик

Для удобства пользователей трапы можно локально перераспределить по специфичным метрикам, так, чтобы иметь различные айтемы для разных ситуаций. Например, разные айтемы для административного и операционного состояния порта.

Настройка локального перенаправления зависит от задач пользователя и логика организации метрик и способов перенаправления выбирается пользователем самостоятельно, более того, эта логика может быть разной в зависимости от узла, его роли/модели.

Для локального перенаправления в правиле препроцессинга указывается имя аттрибута из JSON значения, значение которого будет использоваться для поиска метрики. В случае траппинга это будет oid.

Существуют два правила для поиска - по полному соответствию и по регулярному выражению.

Поиск по полному соответсвию

В этом случае берется значение из указанного ключа и ищется айтем, с именем, в точности совпадающий со значением oid.

Поиск по шаблону

В узле можно создать специальный тип метрик - Regexp trap При выполнении поиска по шаблону все метрики узла, имеющие такой тип проверяются на соответствие  oid. В случае соответствия (match) значение сохраняется целиком в метрику. Этот тип обработки обратно совместим с типом  snmp trapper в Zabbix но имеет более широкое применение, не ограничивается только snmp протоколом.