2014-08-15

Отправка триггеров Zabbix на удаленный Syslog-сервер

Захотелось хранить историю триггеров не только на самом заббиксе, но и копировать их, ради пущей надежности, на удаленный сислог. Сделать это оказалось не так сложно.

(все настройки справедливы для ubuntu 12.04)


Первым делом в каталоге /usr/local/share/zabbix/alertscripts/ создаем скрипт zabbix_logger.sh:

#!/bin/bash
/usr/bin/logger -t ZABBIX $2

Меняем ему владельца и делаем исполняемым:

cd /usr/local/share/zabbix/alertscripts/
chown zabbix:zabbix ./zabbix_logger.sh
chmod +x zabbix_logger.sh

Теперь этот скрипт готов получать сообщения от заббикса и писать их заголовки ($2 в скрипте) в локальный сислог под тегом ZABBIX.


Настроим сам заббикс. 
Первым делом добавим новую медию:


Чтобы все триггеры вызывали наш скрипт, добавим эту медию к учетке администратора:




Теперь все триггеры пишутся в локальный сислог. Однако у нас используется отдельный сислог-сервер, поэтому пришлось создать файл /etc/rsyslog.d/20-zabbix.conf, содержащий одну строчку:

:syslogtag,contains,"ZABBIX"   @192.168.1.9


После перезапуска rsyslog'а все сообщения тегированные строкой "ZABBIX" отправятся на нужный сервер, где при помощи LogAnalyzer'а обретут вот такой вот вид: