Вы можете настроить отправку уведомлений о событиях Zabbix в Telegram. Начиная с версии 5 в Zabbix Server есть встроенная поддержка отправки сообщений в мессенджер Telegram через API и webhook.
Сначала нужно создать новый бот телеграм с помощью @BotFather. Для этого отправьте боту команды:
/start
/newboot
Задайте название бота и имя пользователя. BotFather сгенерирует для вас токен HTTP API, который вам нужно скопировать.
Перейдите к вашему боту в Telegram и нажмите:
/start
Вы можете протестировать отправку уведомлений через Telegram бота из командной строки с помощью curl или PowerShell. Для этого вам понадобится токен бота ( HTTP API token: xxxxxxxxxxxxxxxxxxxxxxxxxxxx) и имя вашего пользователя (группы).
Чтобы получить ID вашего аканта, откройте бота @my_id_bot и напишите ему /start
. Он вернёт:
Your user ID: 123456789
Отправка из консоли Linux через curl:curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"123456789","text":"Test message to Telegram from curl"}' "https://api.telegram.org/botxxxxxxxxxxxxxxxxxxxxxxxxxxxx/sendMessage"
Отправка сообщения в TG из PowerShell:$Message ="Test message from PowerShell to TG bot"
$Telegramtoken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$Telegramchatid = "123456789"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($Telegramtoken)/sendMessage?chat_id=$($Telegramchatid)&text=$($Message)"
Проверьте, что вы получили уведомление в клиенте Telegram.
Теперь нужно настроить способ оповещения Telegram в веб-интерфейсе Zabbix. Как мы уже говорили ранее, встроенная поддержка отправки уведомлений в Telegram через webhook доступна начиная с Zabbix 5.
Перейдите в раздел Administration -> Media types-> выберите шаблон Telegram.
Укажите HTTP API токен вашего бота в настройках шаблона Telegram.
На вкладке Message templates вы можете изменить настройки оповещения. Я добавил в заголовки оповещения emoji (делает уведомления более наглядными) и имя хоста через макрос {HOST.NAME}
.
Теперь проверьте отправку уведомления через Telegram. Укажите в поле TO ваш ID аккаунта и нажмите кнопку Test. В чат должно прийти сообщение от бота.
Теперь нужно назначить Telegram оповещения для вашего пользователя. Перейдите в Administration -> Users -> выберите пользователя, перейдите на вкладку Media и добавьте новый тип оповещения Telegram.
Укажите ID вашего пользователя в Telegram и выберите триггеры (Use if severity), при срабатывании которых нужно отправлять уведомления в бот Telegram.
Выберите ваш триггер оповещения в разделе Configuration -> Actions -> Trigger actions. Перейдите в раздел Operations и добавьте новую операцию. Выберите пользователя или группу, которых нужно оповестить. В разделе Send only to выберите Telegram.
Теперь при срабатывании триггеров Zabbix вы будете получать уведомления в Telegram.