Настраиваем уведомления из Zabbix 5 в Telegram. В разделе Administration → Media types (Администрация → Типы оповещений) уже есть куча предустановленных вебхуков, в том числе и Telegram, осталось его только настроить.
На самом деле есть несколько способов отправлять сообщения из Zabbix в Telegram, но здесь я рассмотрю только отправку с помощью вебхуков.
Нам понадобится создать бота для отправки сообщений. Бот может отправлять сообщения пользователям или в группу.
Создание бота в Telegram
Создадим бота, через которого Zabbix будет отправлять сообщения. Для управления ботами есть специальный бот @BotFather, добавляем его себе в контакты и пишем ему:
/start
Выводится справка по командам. Для создания бота пишем:
/newbot
Нам предлагают указать для бота name (имя), я пишу:
Zabbix internet-lab.ru
Нам предлагают указать для бота username (логин), он должен оканчиваться на "bot" или "Bot" я пишу:
zabbix_internet_lab_ru_bot
Бот создан, получаем токен "Use this token to access the HTTP API". Копируем его и вставляем в Zabbix в разделе Administration → Media types → Telegram → Parameters → Token.
Сохраняем изменения. Кстати, в описании также приводится краткая инструкция по настройке 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.
Для получения chat id пользователю нужно в Telegram добавить бота @myidbot и отправить команду:
/getid
На самом деле таких ботов, которые возвращают идентификаторы довольно много.
Можно протестировать отправку сообщения в Telegram ссылкой "test".
Проверяю.
Ошибка.
Sending failed: Bad Request: chat not found.
Это нормально, ботам нельзя отправлять сообщения пользователям без их согласия. Нахожу созданного бота Zabbix internet-lab.ru и отправляю ему команду:
/start
Проверяю ещё раз.
Media type test successful.
Сообщение пришло.
Отправка уведомления в Telegram группе
Для отправки уведомления в группу нужно эту группу создать, добавить в неё созданного бота и отправить уведомление на id группы.
ПРИМЕЧАНИЕ: если вы сделаете группу "супергруппой", то у неё сменится идентификатор.
Создаю группу, добавляю в неё бота.
Для получения group id в Telegram добавляю бота @myidbot в группу и отправляю команду:
/getgroupid@myidbot
Получаем идентификатор группы, заметьте, что он отрицательный, не теряем минус.
Можно протестировать отправку сообщения в Telegram.
Сообщение отправлено.
Сообщения отправляются в Telegram. Теперь можно заниматься настройкой, шлифовкой, дизайном и прочими неинтересными вещами.