В этой статье я приведу пример настройки telegram уведомлений из Zabbix.
В первую очередь необходимо создать telegram бота через которого и будут из Zabbix приходить сообщения. Для этого пользователю @BotFather необходимо написать:
/start
/newbot
Потом указать имя бота и логин который будет указан в ссылке на бота, после этого вам будет показан секретный token. Если что, API можно посмотреть по ссылке core.telegram.org/bots/api.
Пример отправки личного сообщения из Linux:
curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"123456789","text":"Тестовое сообщение"}' "https://api.telegram.org/bot111122222:AABBCCXXFFGGSSRRTTEE/sendMessage"
Где:
111122222:AABBCCXXFFGGSSRRTTEE — секретный token вашего бота, а 123456789 — ваш ID в telegram. Чтобы узнать ваш ID, необходимо боту @my_id_bot написать:
/start
В директории со скриптами для уведомлений создадим файл скрипта (по умолчанию AlertScriptsPath=/usr/lib/zabbix/alertscripts):
nano /usr/lib/zabbix/alertscripts/telegram_bot.sh
chmod +x /usr/lib/zabbix/alertscripts/telegram_bot.sh
Содержимое скрипта:
#!/bin/bash
token='111122222:AABBCCXXFFGGSSRRTTEE'
chat="$1"
subj="$2"
message="$3"
/usr/bin/curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${chat}\",\"text\":\"${subj}\n${message}\"}" "https://api.telegram.org/bot${token}/sendMessage"
Проверим работу скрипта (где 123456789 — ваш ID в telegram):
/usr/lib/zabbix/alertscripts/telegram_bot.sh 123456789 Тест 'Тестовое сообщение'
Создадим способ оповещения в настройках Zabbix, а именно в меню «Администрирование» — «Способы оповещений» — «Создать способ оповещения» и укажем:
Имя: Telegram
Тип: Скрипт
Имя скрипта: telegram_bot.sh
Параметры скрипта:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
Далее в меню «Администрирование» — «Пользователи» выберем нужно пользователя, перейдем во вкладку «Оповещения» и добавим:
Тип: Telegram
Отправлять на: Ваш ID в telegram
Отметим какой важности сообщения отправлять, нажмем «Добавим» и «Обновить».
В меню «Настройка» — «Действия» — «Report problems to Zabbix administrators» можно изменить шаблон уведомлений или добавить новый.
Если вы хотите отправлять сообщения в teleram группу, то создайте группу, добавьте в нее пользователя @my_id_bot и напишите /start чтобы узнать ID группы, потом добавьте в группу вашего бота, далее аналогичным выше методом в меню «Администрирование» — «Пользователи» выберем нужно пользователя, перейдем во вкладку «Оповещения» и добавим:
Тип: Telegram
Отправлять на: ID группы в telegram
Отметим какой важности сообщения отправлять, нажмем «Добавим» и «Обновить».
Если возникает ошибка «Bad Request: group chat was upgraded to a supergroup chat», то снова добавьте @my_id_bot и сверьте правильный ли ID группы вы указали.
Смотрите другие мои статьи на тему Zabbix.
Спасибо!