Оповещения Zabbix через Telegram
Вы хотите получать уведомления с Zabbix через Telegram? Нет ничего проще!
Есть для этого готовый бот и Telegram API
Бот присылает все, что было в специальном HTTP GET запросе вида:
http://crierbot.appspot.com/@token@/send?message=@message@
TOKEN — токен выданный ботом при его добавлении в список контактов Telegram
MESSAGE — собственно сообщение, которые хотите передать.
Итак, давайте разбираться, что нам для этого надо и что мы получим в итоге.
Добавление бота
Для начала добавляем себе в Telegram бота @crierbot и нажимаем START
После нажатия на START бот пришлет нам уникальный ключ "Token"
Ну вот и все. На этом наше общение с ботом окончено. Теперь только он нам будет писать то, что нам необходимо.
Настройка Zabbix Telegram
Zabbix умеет отправлять оповещения, используя скрипт. Zabbix отправляет 3 параметра: получатель, тема сообщения, текст сообщения.
Создание скрипта
Давайте напишем скрипт, который и будет передавать нам информацию из Zabbix нашему боту, который в свою очередь будет передавать ее нам:
#!/bin/bash PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin wget -O /dev/null "http://crierbot.appspot.com/$1/send?message=Subj: $2 || Message:$3" Где $1, $2, $3 переданные Zabbix’ом параметры: получатель, тема сообщения, сообщение.
Данный скрипт сохраняем с произвольным именем, например. telegram.sh в директорию Zabbix’а, где хранятся скрипты уведомлений (в Freebsd по умолчанию это директория:
/usr/local/zabbix32/zabbix/alertscripts/
- (Для версии 3.2)
Делаем наш скрипт исполняемым:
chmod +x /usr/local/zabbix32/zabbix/alertscripts/telegram.sh Выдаем zabbix права на этот скрипт:
chown zabbix:zabbix /usr/local/zabbix32/zabbix/alertscripts/telegram.sh
Настройка способа оповещения через telegram
Теперь переходим в веб-интерфейс Zabbix’а и переходим по Меню: «Администрирование» -> «Способы оповещения» и нажимаем «Создать способ оповещения»
Тут заполняем:
Имя - Произвольное
Тип - Скрипт
Имя скрипта - так, как вы назвали скрипт при его создании
Параметры срипта:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
(Это как раз и есть наши $1, $2 и $3)
И ставим галочку "Активировано"
И нажимаем Добавить (у меня обновить, так как он уже создан у меня)
Добавление способа оповещения пользователю
Далее заходим в "Администрирование" -> "Пользователи". Выбираем нашего пользователя и переходим на вкладку "Оповещения" и нажимаем "Добавить"
В появившемся окне выбираем тип - под каким именем мы создали действие, вставляем наш токен, который выдал нам бот и нажимаем "Добавить"
После этого у пользователя в Оповещениях появится новый способ оповещения. Нажимаем "Обновить".
Теперь нам осталось только создать действий, по которому нам будет приходить какое-либо сообщение.
Настройка действий
Итак, приступим к созданию действия. Для этого переходим в "Настройка" -> "Действия". Справа вверху где "Источник событий" выбираем" Триггеры. Нажимаем "Создать действие".
Действие:
Имя - Пишем любое понятное для нас имя
Условие - Настраиваем условие, при котором будет происходит наше действие (ниже я приведу пример 1 из своих действий)
Операции:
Выбираем что будет присылаться нам во время срабатывание нашего условия
В операциях нажимаем Новый и добавляем наш способ оповещения:
Должно получиться что то типа вот этого.
На вкдадке Операции восстановления Выбираем в операциях "оповещение о восстановлении", чтобы знать, что проблема ушла.
И нажимаем "Добавить". В принцип на этом этапе мы уже все настроили!
Заключение
Вот пример одного из моих действий. У меня есть триггер на температуру CPU моего NAS. Его я и использовал:
Вот что мы в принципе видим в окне самого Telegram:
Собственно ничего сложного нет. Это настроить гораздо быстрее чем все это прочитать или тем более все это написать. Если возникнут трудности - пишите в комментарии. Постараюсь помочь.