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 - Оповещения - Добавить
Настройка - Действия, Источник событий: Триггеры - Создать действие
Идем к @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 и настраиваем оповещения.
Администрирование - Способы оповещений - Создать способ оповещения
После этого все должно приходить в Telegram.
via.
Почему может не приходить уведомление в Telegram.
ОтветитьУдалить# vim /usr/local/etc/zabbix32/zabbix/alertscripts/zabbix_notify.sh
#! /usr/local/bin/bash
TOKEN='мой токен'
which curl &>/tmp/telegram.log
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 -$
if [ $? -eq 0 ] ; then exit 1 ; fi
Заббикз пишет, что все отправлено
А если руками запустить, работает?
ОтветитьУдалить/usr/local/etc/zabbix32/zabbix/alertscripts/zabbix_notify.sh ваш_chat_id subj message
в логах Zabbix пишет что файл скрипт_отправки.sh not found
ОтветитьУдалитьп.с. решение пока сам не нашел.
Проверьте AlertScriptPath:
ОтветитьУдалить# grep ^AlertScriptsPath /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
уточнение.. ОС - BSD, он в другой папке лежит
ОтветитьУдалитьа в файлике прописано AlertScriptsPath=/home/zabbix/alertscripts
Вот значит в каталоге /home/zabbix/alertscripts и создавайте скрипт отправки.
ОтветитьУдалитьфайл лежит в /home/zabbix/alertscripts и в /usr/home/zabbix/alertscripts
ОтветитьУдалитьzabbix говорит отправлено.
при выполнении команд на права
$ cd /home/zabbix/alertscripts/
$ ls -lo
-rwsr-xr-x 1 root zabbix - 588 Feb 14 18:06 zabbix-to-telegram.sh