Перейти к основному содержанию
 

Zabbix 5 — настраиваем уведомления в Telegram

Zabbix

Настраиваем уведомления из Zabbix 5 в Telegram. В разделе Administration → Media types (Администрация → Типы оповещений) уже есть куча предустановленных вебхуков, в том числе и Telegram, осталось его только настроить.

На самом деле есть несколько способов отправлять сообщения из Zabbix в Telegram, но здесь я рассмотрю только отправку с помощью вебхуков.

Нам понадобится создать бота для отправки сообщений. Бот может отправлять сообщения пользователям или в группу.

telegram

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

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

/start

telegram

Выводится справка по командам. Для создания бота пишем:

/newbot

Нам предлагают указать для бота name (имя), я пишу:

Zabbix internet-lab.ru

Нам предлагают указать для бота username (логин), он должен оканчиваться на "bot" или "Bot" я пишу:

zabbix_internet_lab_ru_bot

telegram

Бот создан, получаем токен "Use this token to access the HTTP API". Копируем его и вставляем в Zabbix в разделе Administration → Media types → Telegram → Parameters → Token.

zabbix

Сохраняем изменения. Кстати, в описании также приводится краткая инструкция по настройке Telegram:

https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegram

1. Register bot: send "/newbot" to @BotFather and follow instructions
2. Copy and paste the obtained token into the "Token" field above
3. If you want to send personal notifications, you need to get chat id of the user you want to send messages to:
    3.1. Send "/getid" to "@myidbot" in Telegram messenger
    3.2. Copy returned chat id and save it in the "Telegram Webhook" media for the user
    3.3. Ask the user to send "/start" to your bot (Telegram bot won't send anything to the user without it)
4. If you want to send group notifications, you need to get group id of the group you want to send messages to:
    4.1. Add "@myidbot" to your group
    4.2. Send "/getgroupid@myidbot" in your group
    4.3. Copy returned group id save it in the "Telegram Webhook" media for the user you created for  group notifications
    4.4. Send "/start@your_bot_name_here" in your group (Telegram bot won't send anything to the group without it)

Отправка уведомления в Telegram пользователю

Если вы хотите отправить личное сообщение пользователю, то в его профиле в разделе Media нужно указать chat id пользователя из Telegram.

telegram

Для получения chat id пользователю нужно в Telegram добавить бота @myidbot и отправить команду:

/getid

telegram

На самом деле таких ботов, которые возвращают идентификаторы довольно много.

telegram

Можно протестировать отправку сообщения в Telegram ссылкой "test".

telegram

Проверяю.

telegram

Ошибка.

Sending failed: Bad Request: chat not found.

Это нормально, ботам нельзя отправлять сообщения пользователям без их согласия. Нахожу созданного бота Zabbix internet-lab.ru и отправляю ему команду:

/start

telegram

Проверяю ещё раз.

telegram

Media type test successful.

Сообщение пришло.

telegram

Отправка уведомления в Telegram группе

Для отправки уведомления в группу нужно эту группу создать, добавить в неё созданного бота и отправить уведомление на id группы.

ПРИМЕЧАНИЕ: если вы сделаете группу "супергруппой", то у неё сменится идентификатор.

Создаю группу, добавляю в неё бота.

telegram

Для получения group id в Telegram добавляю бота @myidbot в группу и отправляю команду:

/getgroupid@myidbot

telegram

Получаем идентификатор группы, заметьте, что он отрицательный, не теряем минус.

Можно протестировать отправку сообщения в Telegram.

telegram

Сообщение отправлено.

telegram

Сообщения отправляются в Telegram. Теперь можно заниматься настройкой, шлифовкой, дизайном и прочими неинтересными вещами.

Теги