На хабре уже довольно много писали про эту замечательную систему — раз, два, три, четыре, но хотелось бы вернуться к этой теме еще разок, и думаю не последний.
На моем текущем месте работы Zabbix замечательно общается с отделом СА в Jabber’е, но для дома было решено использовать другой тип уведомлений – ICQ.
Причин тому несколько – привычка к этой системе IM, нежелание дополнительного сервиса на следящей машине, да и любопытство – уведомления в Jabber’е работают из коробки, а ICQ нет.
Ставим ICQ
В качестве консольного IM клиента был выбран CenterIM, во первых по тому что только он оказался в используемых мной репозиториях CentOS, во вторых по тому что умеет UTF-8 и вообще отзывы о нем положительные.
Дальнейшие действия описываются на примере CentOS 6.3 x86_64 и Zabbix 1.8.15
Ставим CenterIM из репозитория Epel, однократно запускаем его в терминале для указания нужных настроек:
Remote charset: cp1251
Local charset: utf-8
ICQ UIN
ICQ Password
Больше мы этот интерфейс не увидим.
После окончания настройки CenterIM создает папку $HOME/.centerim/ для хранения настроек и истории бесед.
По умолчанию zabbix имеет хом-директорию в /var/lib/zabbix (которая же является его директорией для скриптов уведомлений).
Как следует из документации и FAQ для использования CenterIM из скриптов следует запускать рабочий процесс в screen, что мы и сделаем:
# стартуем CenterIM в screen от пользователя zabbix
su -m zabbix --shell=/bin/bash -c '/usr/bin/screen -d -m /usr/bin/centerim -b /var/lib/zabbix/.centerim/'
# передаем команду сменить статус ICQ на Online
/usr/bin/centerim -b /var/lib/zabbix/.centerim/ -S o -p icq
Обратите внимание – чтобы не напороться на мои грабли и не воевать с ошибкой «event sending error error creating directory for the contact» всегда явно указывайте директорию с конфигурацией:
-b /var/lib/zabbix/.centerim/
Теперь пишем маленький скрипт который будет принимать сообщение от Zabbix’а и передавать его в CenterIM:
#!/bin/sh
export receiver="$1"
export subject="$2"
export body="$3"
/bin/echo -e "[$subject] nn $body" | /usr/bin/centerim -b /var/lib/zabbix/.centerim/ -s msg -p icq -t $receiver
Все просто и понятно.
Скрипт лежит в /var/lib/zabbix/icq
Настраиваем Zabbix
Открываем веб-интерфейс Zabbix’а, идем в Администрирование --> Способы оповещений и создаем оповещение типа «скрипт» с каким-нибудь понятным именем.
Переходим в Администрирование --> Пользователи и указываем номер ICQ пользователю который будет принимать уведомления
И напоследок создадим действие для реакции на триггеры и отсылки уведомлений
Настройка --> Действия
Собственно все, можно пользоваться