Получение SNMP трапов является полной противоположностью запросам к SNMP устройствам.
В этом случае информация отправляется с SNMP устройства и собирается или “ловится” Zabbix'ом.
Обычно трапы отправляются при наступлении некоторых условий и агент подключается на 162 порт сервера (в отличии от 161 порта на стороне агента, который используется для запросов). Использование трапов может помочь обнаружить некоторые кратковременные проблемы, которые происходят между интервалами опроса и могут быть пропущены при запросах данных.
Получение SNMP трапов в Zabbix рассчитано на работу с snmptrapd и с одним из встроенных механизмов передачи трапов в Zabbix - либо perl скрипт, либо SNMPTT.
Последовательность действий при получении трапа:
Настройка следующих полей в веб-интерфейсе является специфичной для этого типа элементов данных:
В Настройка → Узлы сети, в поле Интерфейсы узла сети добавьте SNMP интерфейс с корректными IP или DNS адресами. Адрес из каждого полученного трапа сравнивается с IP и DNS адресами всех SNMP интерфейсов для поиска соответствующих узлов сети.
В поле Ключ используйте один из ключей SNMP трапов:
Ключ | ||
---|---|---|
Описание | Возвращаемое значение | Комментарии |
snmptrap[регулярное выражение] | ||
Отлов всех SNMP трапов с соответствующего адреса, который совпадают с регулярным выражением, указанном в поле регулярное выражение | SNMP трап | Этот элемент данных можно привязать только к SNMP интерфейсам. Элемент данных поддерживается начиная с Zabbix 2.0.0. Обратите внимание: Начиная с Zabbix 2.0.5, в параметре этого ключа элемента данных поддерживаются пользовательские макросы и глобальные регулярные выражения. |
snmptrap.fallback | ||
Отлов всех SNMP трапы с соответствующего адреса, которые не совпадают ни с одним из элементов данных snmptrap[] для этого интерфейса | SNMP трап | Этот элемент данных можно привязать только к SNMP интерфейсам. Элемент данных поддерживается начиная с Zabbix 2.0.0. |
Укажите Тип информации равным 'Журнал (лог)' для обработки штампов времени. Обратите внимание, что другие форматы, такие как 'Числовой' также приемлемы, но для этого может потребоваться пользовательский обработчик трапов.
Для чтения трапов, Zabbix сервер или прокси должны быть настроены на запуск процесса SNMP траппера и должны знать абсолютный путь к файлу с трапами, который заполняется при помощи SNMPTT или получателя трапов Perl. Чтобы это сделать, измените файл конфигурации (zabbix_server.conf или zabbix_proxy.conf):
Для начала, snmptrapd необходимо настроить использование SNMPTT.
При конфигурировании SNMPTT на получение трапов, настройте SNMPTT на журналирование этих трапов:
Теперь отформатируйте трапы, чтобы они распознавались Zabbix'ом (измените snmptt.conf):
Требования: Perl, Net-SNMP скомпилированный с --enable-embedded-perl (компилируется по умолчанию начиная с Net-SNMP 5.4)
Получатель трапов Perl (ищите в misc/snmptrap/zabbix_trap_receiver.pl) можно использовать для передачи трапов в Zabbix сервер напрямую с snmptrapd. Для его настройки:
Regexp modifiers "/l" and "/a" are mutually exclusive at (eval 2) line 1, at end of line Regexp modifier "/l" may not appear twice at (eval 2) line 1, at end of line
Все пользовательские получатели трапов perl и конфигурация SNMPTT трапов должны форматировать трап следующим образом:
[штамп времени] [трап, часть 1] ZBXTRAP [адрес] [трап, часть 2], где
Обратите внимание, что “ZBXTRAP” и “[адрес]” при обработке отрезаются из сообщения. Если трап форматируется как-то иначе, Zabbix может разобрать такие трапы неожиданным образом.
Пример трапа:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - ZBXTRAP 192.168.1.1 Link down on interface 2. Admin state: 1. Operational state: 2
Такое сообщение будет результатом следующего трапа для SNMP интерфейса с IP=192.168.1.1:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - Link down on interface 2. Admin state: 1. Operational state: 2
Zabbix не предоставляет какую-либо систему ротации журналов - должно быть обработано пользователем. Ротация журналов должна начинаться с переименовывания старого файла и только после этого удалять его, чтобы никакие трапы не пропали:
Из-за реализации файла с трапами, Zabbix'у требуется файловая система с поддержкой inode для того чтобы различать файлы (эта информация берется из вызова stat()).
Этот пример использует snmptrapd + SNMPTT для передачи трапов Zabbix серверу. Установка:
В результате: