среда, 29 марта 2017 г.

Уведомления из Zabbix в Telegram

1. Создаем бота.
Идем к @BotFather
/start
/newbot
Получаем токен вида:
311825528:AAE3r8V7iaIiXzJY_s0-9brG6JMWbT126qB
Добавляем бота в список контактов в телеграме.

2. Узнаем свой TelegramID.
Идем к @MyTelegramID_bot
/start
Получаем ID вида:
281724313

3. Проверяем, работают ли оповещения от бота:
$ curl --header 'Content-Type: application/json' -X POST \
--data '{"chat_id":"281724313","text":"your_message"}' "https://api.telegram.org/bot311825528:AAE3r8V7iaIiXzJY_s0-9brG6JMWbT126qB/sendMessage"

В Telegram должно прийти сообщение "your message".

4. Идем в Zabbix-сервер и создаем скрипт в каталоге со скриптами.
# grep ^AlertScriptsPath /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

# vim /usr/lib/zabbix/alertscripts/zabbix-to-telegram-notify.sh
#!/bin/bash
TOKEN='311825528:AAE3r8V7iaIiXzJY_s0-9brG6JMWbT126qB'
which curl &>/dev/null
if [ $? -ne 0 ] ; then echo 'FAIL: curl not found.' && exit 1 ; fi
if [ $# -ne 3 ] ; then echo 'FAIL: Params not defined.' && echo 'Usage: zabbix-to-telegram-notify.sh TelegramID Subject Message' && exit 1 ; fi
CHAT_ID="$1"
SUBJECT="$2"
MESSAGE="$3"
curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" | grep -q '"ok":false,'
if [ $? -eq 0 ] ; then exit 1 ; fi

# chmod +x /usr/lib/zabbix/alertscripts/zabbix-to-telegram-notify.sh

5. Идем в панель Zabbix и настраиваем оповещения.
Администрирование - Способы оповещений - Создать способ оповещения

Администрирование - Пользователи - Username - Оповещения - Добавить

Настройка - Действия, Источник событий: Триггеры - Создать действие



После этого все должно приходить в Telegram.
via.

Комментариев нет: