August 27, 2021

Подключение Telegram к системе мониторинга Zabbix 5.X

Требуется: отправлять оповещения из системы мониторинга Zabbix в чат Telegram

Один из самых простых способов подключения канала Telegram для отправки в него оповещений от системы мониторинга Zabbix - использование встроенного функционала самого сервиса. Однако перед непосредственной настройкой канала в Zabbix требуется сделать дополнительные шаги.

Создание бота в Telegram

Бот для отправки сообщений создается, как и для многих других функций, с помощью контакта @BotFather. Он легко находится в поиске контактов. Для начала работы требуется открыть с ним чат, и отправить ему сообщение /start. После этого дальнейшие шаги будут подсказаны самим ботом, а именно:

  • Нужно указать его имя
  • Нужно указать username - т.е. имя аккаунта бота

После этого - создание бота будет завершено, и в чат будет сообщен его токен - с его помощью в дальнейшем будет настроен канал отправки сообщений.

Созданного бота требуется добавить в канал, куда планируются отправляться сообщения из Zabbix.

Создание чата и определение его ID

ID чата необходим для указания того, Куда боту по апи с имеющимся ключом отправлять сообщения. Для того, чтобы узнать ID - подойдет другой бот - @m4n_idbot, которого нужно добавить в канал, и отправить ему команды для определения ID. Инструкции по работе с ним исчерпывающие:

Привет, Thomas!
Я помогу тебе узнать твой id или id группового чата.
Для получения личного id введи /getmyid .
Для получения id группового чата - добавь меня в группу, отправь в групповой чат /start@m4n_idbot и введи /getchatid@m4n_idbot .
Hi, Thomas!
I will help you to get your id or required group chat id.
Push /getmyid command to get your own id.
Or add me to group you want to get id from, push /start@m4n_idbot command to a group chat and then /getchatid@m4n_idbot .

Тестовая отправка сообщения в чат

Итак, у нас есть :

  • Токен созданного через @BotFather
  • ID чата, полученного через @m4n_idbot

Давайте проверим саму отправку сообщения. Делается через утилиту CURL с помощью данного запроса, где <TOKEN> - полностью токен созданного бота, и <ID> - ID чата

curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"<ID>","text":"Кровь Кровавому Богу"}' "https://api.telegram.org/bot<TOKEN>/sendMessage"

Сообщение должно появиться в чате сразу после отправки. Если сообщение успешно получено, можно приступать к настройке системы мониторинга Zabbix.

Настройка канала отправки сообщений в Zabbix

Идем в меню:

Administration > Media types > Telegram

Здесь указываем токен созданного бота, после этого - приступаем к тестированию

При проведении теста достаточно будет указать ID канала отправки тестового сообщения:

Сообщение опять же должно появиться в Telegram

Настраиваем оповещение пользователя:

Administration > Users > Media

Далее - остается только включить основное правило оповещений для администраторов, или настроить кастомное правило по пути в меню:

Configuration > Alerts

После этого - настройка закончена, и сообщения будут приходить в чат.