Получение SNMP трапов является противоположностью к запросам к SNMP устройствам.
В этом случае информация отправляется с SNMP устройства и собирается или "ловится" Zabbix'ом.
Обычно трапы отправляются на некоторые условия и агент подключения на 162 порт сервера (в отличии от 161 порта на стороне агента, который используется для запросов). Использование трапов может обнаружить некоторые кратковременные проблемы, которые происходят между интервалами опроса и могут быть пропущены при запросах данных.
Получение SNMP трапов в Zabbix рассчитано на работу с snmptrapd и одним из встроенных механизмов для передачи трапов в Zabbix - либо perl скрипт, либо SNMPTT.
Последовательность действий при получении трапа:
Настройка соответствующих полей в веб-интерфейсе является специфичной для этого типа элементов данных:
В Настройка → Узлы сети, в поле Интерфейсы узла сети задайте SNMP интерфейс с корректными IP и DNS адресами. Адрес из каждого полученного трапа сравнивается с IP и DNS адресами всех SNMP интерфейсов для поиска соответствующих узлов сети.
В поле Ключ используйте один из ключей SNMP трапов:
Ключ | ||
---|---|---|
Описание | Возвращаемое значение | Комментарии |
snmptrap[регулярное выражение] | ||
Ловит все SNMP трапы с соответствующего адреса, которые совпадают с регулярным выражением | SNMP трап | Этот элемент данных можно задать только на SNMP устройства. Этот элемент данных поддерживается начиная с версии 2.0.0. Обратите внимание: Начиная с Zabbix 2.0.5, в параметре этого ключа элемента данных поддерживаются пользовательские макросы и глобальные регулярные выражения. |
snmptrap.fallback | ||
Ловит все SNMP трапы с соответствующего адреса, которые не совпадают ни с одним из элементов данных snmptrap[] для этого интерфейса | SNMP трап | Этот элемент данных можно задать только на SNMP устройства. Этот элемент данных поддерживается начиная с версии 2.0.0. |
Установите Тип информации равным 'Журнал (лог)' для обработки штампов времени. Обратите внимание, что другие форматы, такие как 'Числовой' также приемлемы, но для этого может потребоваться пользовательский обработчик трапов.
Для работы мониторинга SNMP трапов, они должны быть сначала корректно заданы.
Для чтения трапов, Zabbix сервер или прокси должны быть настроены для запуска процесса SNMP траппера, с указанием файла с трапами, который пишется с помощью SNMPTT или с помощью получателя трапов Perl. Чтобы это сделать, измените файл конфигурации (zabbix_server.conf или zabbix_proxy.conf):
Для начала, snmptrapd должен быть настроен для использования SNMPTT.
Для лучшей производительности, SNMPTT должен быть настроен демоном с использованием snmptthandler-embedded для передачи ему трапов. Смотрите инструкции по настройке SNMPTT на его сайте:
http://snmptt.sourceforge.net/docs/snmptt.shtml
При настройке SNMPTT на получение трапов, настройке SNMPTT на журналирование этих трапов:
Теперь отформатируйте трапы, чтобы они распознавались Zabbix'ом (измените snmptt.conf):
Не используйте неизвестные трапы - Zabbix может их не распознать. Неизвестные трапы могут быть обработаны, задав общее событие в snmptt.conf:
EVENT general .* "General event" Normal
Требования: Perl, Net-SNMP скомпилированный с --enable-embedded-perl (компилируется по умолчанию начиная с Net-SNMP 5.4)
Получатель трапов Perl (ищите в misc/snmptrap/zabbix_trap_receiver.pl) может быть использован для передачи трапов в Zabbix сервер напрямую с snmptrapd. Для его настройки:
Если имя скрипта не заключено в кавычки, snmptrapd откажет в обработке с сообщением в начале, подобных следующих:
Все пользовательские получатели трапов 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 серверу. Установка:
В результате:
В этом примере используется SNMPTT как traphandle. Для лучшей производительности на продуктивных системах используйте встроенный Perl для передачи трапов с snmptrapd в SNMPTT или напрямую Zabbix'у.