Подключаем Telegram к Zabbix

Print Friendly, PDF & Email

Задача:

Используя встроенные webhook в zabbix, настроить оповещения zabbix через кроссплатформенный мессенджер Telegram.

---------------------------------------------------------------

Если хотите получать уведомления с Zabbix через Telegram, эта статья для вас. Настроить взаимодействие телеграмма с забиксом можно тремя способами:

  • Использовать встроенный webhook
  • Написать свой скрипт для уведомлений
  • Найти готовые решения на github или аналогичных ресурсах

Первым делом необходимо создать бота, с помощью которого будем слать оповещения из zabbix. Добавляем контакт @BotFather

I can help you create and manage Telegram bots. If you’re new to the Bot API, please see the manual (https://core.telegram.org/bots).

You can control me by sending these commands:

/newbot – create a new bot
/mybots – edit your bots [beta]

Edit Bots
/setname – change a bot’s name
/setdescription – change bot description
/setabouttext – change bot about info
/setuserpic – change bot profile photo
/setcommands – change the list of commands
/deletebot – delete a bot

Bot Settings
/token – generate authorization token
/revoke – revoke bot access token
/setinline – toggle inline mode (https://core.telegram.org/bots/inline)
/setinlinegeo – toggle inline location requests (https://core.telegram.org/bots/inline#location-based-results)
/setinlinefeedback – change inline feedback (https://core.telegram.org/bots/inline#collecting-feedback) settings
/setjoingroups – can your bot be added to groups?
/setprivacy – toggle privacy mode (https://core.telegram.org/bots#privacy-mode) in groups

Games
/mygames – edit your games (https://core.telegram.org/bots/games) [beta]
/newgame – create a new game (https://core.telegram.org/bots/games)
/listgames – get a list of your games
/editgame – edit a game
/deletegame – delete an existing game

Пишем ему /start, затем /newbot. Указываем желаемое имя бота, в нашем случае “zabbixosbsd”. Оно оказалось свободно, теперь указываем действительное имя бота, оно должно содержать в конце “bot”

После окончания регистрации бота “zabbixosbsd_bot” мы получим token, который нам понадобится далее. 

Теперь нужно добавить @zabbixosbsd_bot в свой список контактов. Для этого найдите его по имени в телеграмме, ну и собственно, добавьте. Также нам понадобится id вашего аккаунта. Узнать его можно при помощи бота @myidbot , сделав соответствующий запрос “/getid

Проверить работу можно сразу из консоли сервера, выполнив соответствующий запрос

curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"11111111","text":"test - тестовое сообщение"}' "https://api.telegram.org/bot22222222222:AAAAAAAAAAAAAA/sendMessage"

В запросе используются следующие данные:

11111111id аккаунта. Который мы знали при помощи бота @myidbot
22222222222:AAAAAAAAAAAAAAtoken бота “zabbixosbsd_bot” , который мы получим от @BotFather

Сразу должно прийти сообщение в телеграмме

Теперь переходим к настройке webhook в забиксе. Выбираем “Administration > Media types > Telegram” (в русской версии: Администрирование -> Способы оповещений > Telegram)

Тут достаточно указать токен полученный ранее. Нажимаем “Update” и переходим к тестированию

Для тестирования, в правой части окна на против каждого сервиса вы найдёте соответствующие ссылки. Указываем:

  • TO – Указываем узнанный ранее ID
  • Token – всё тот же токен

Нажимаем тест и получаем сразу же сообщение в телеграмм

Если вы хотите чтобы несколько человек получало сообщение, то необходимо создать группу

и добавить туда бота.

Также стоит добавить бота @myidbot и узнать id группы.

Проверяем. Важно: ID группы указывается с минусом в начале.

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

Далее необходимо настроить действие, выполняемое при возникновении события.

Так как я настраиваю и работаю в Zabbix состоя в группе администраторов, мне достаточно только активировать стандартное действие “Report problems to Zabbix administrators”

Во вкладке “Actions” ставим шалочку на против “Enabled”

Во вкладке “Operations” ничего трогать не нужно, стандартные настройки нам подходят. Как видем тут указанно что при возникновении события, уведомлять заббих будет всеми возможными вариантами и по всем проблеммам.

Тестируем уведомления Zabbix

Для тестирования оповещения создадим мониторинг фейкового хоста, к примеру фальшивую ICMP проблему. На экране панели инструментов открываем меню «Конфигурация», выбираем подменю «Хосты» и в правом верхнем углу экрана нажмаем кнопку «Создать хост». Не забываем хост включить в группу, на картинке ниже я забыл.

на вкладке “Templates” добавляем шаблон “ICMP Ping” и сохраняем хост.

Спустя буквально минуты две, заббих определил что хост недоступен и отправил сообщение.

Короткая официальная документация:

Register bot: send “/newbot” to @BotFather and follow instructions

Copy and paste the obtained token into the “Token” field above

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)

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)

Помогла статья? Есть возможность отблагодарить автора

QR Link:

QR Code

Вам может также понравиться...

комментария 3

  1. Александр:

    А что в поле script указывать?

  1. 04.04.2021

    […] На этом всё. Если у вас не настроено оповещение, можно глянуть “Подключаем Telegram к Zabbix“ […]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *