Подключение 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
После этого - настройка закончена, и сообщения будут приходить в чат.