[[ Оповещения через Telegram в Zabbix ]]

ZabbixTelergam

Оповещения через Telegram в Zabbix

zabbix_server (Zabbix) 3.4.7


Настройка Zabbix Server

Скрипты оповещений выполняются на стороне Zabbix Server'a, они размещаются в папке, указанной в конфиге переменной AlertScriptsPath

/etc/zabbix/zabbix_server.conf

AlertScriptsPath=/etc/zabbix/alertscripts


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

Для создания бота в Telegram существует специальный бот - @BotFather

  • Найти и добавить @botfather в контакты
  • Отправить сообщение: «/start» - краткий список доступных команд
  • Отправить сообщение: «/newbot» - запрос на создание бота
  • Отправить ответ на вопрос - Имя бота: «Вася»
  • Отправить ответ на вопрос- username бота: «vasya_bot»

username должен оканчиваться словом Bot (регистронезависимо).

  • Запомнить access token: «553904595:AAHk16bcwKV72ULQMGnBY5eaUEm_d1dkHko»


Установка скрипта

Создание папки для скриптов:

mkdir /etc/zabbix/alertscripts
chown root:zabbix /etc/zabbix/alertscripts
chmod 750 /etc/zabbix/alertscripts

Создадим сам скрипт:

Листинг

Не забыть заменить BOT_AUTH_TOKEN в скрипте


Настройка чата

Прежде чем рассылать сообщения, необходимо узнать chat_id. Это делается один раз для каждого адресата (группы)

Видимо, для избежания рассылки спама, в Telegram Bot API не предусмотрена возможность отправки сообщений по имени или номеру контактна, а так же поиск.
Поэтому, прежде чем бот сможет отправлять сообщения, необходимо первым начать с ним диалог (либо добавить в группу) - и написать любое тестовое сообщение.
Это нужно для того, что бы узнать chat_id.
Есть спец. боты типа @get_id_bot, возможно это удобно, но я бы предпочел обойтись только собственным ботом.

Индивидуальные сообщения

  • Найти и добавить бота в контанкты
  • Написать тестовое сообщение в чат
  • Выполнить скрипт с параметром getid

$: ./telegram.sh getid
{"id":227768999,"first_name":"Aleksey","last_name":"K","username":"Aleksey","type":"private"},
{"id":287033399,"first_name":"\u041c\u0430\u043a\u0441\u0438\u043c","last_name":"\u041f","type":"private"},
 
# Русские символы записываются кодами символов Unicode
$: python -c 'print(u"\u041c\u0430\u043a\u0441\u0438\u043c")'
Максим

  • Отправить ответное сообщение для проверки

$: ./telegram.sh 227768999 TEST
[OK] Message was sent

Групповые сообщения

  • Найти и добавить бота в группу

Что бы бот увидел сообщения в групповом чате ему нужно добавить прав. Проще всего его сделать админом чата.

  • Написать тестовое сообщение в чат группы
  • Выполнить скрипт с параметром getid

$: ./telegram.sh getid
{"id":-1001134251199,"title":"Monitoring Zabbix","type":"supergroup"},

  • Отправить ответное сообщение для проверки

$: ./telegram.sh -1001134251199 TEST
[OK] Message was sent

chat_id группового чата начинается с «-»


Оповещения в Zabbix Server

Добавляем новый способ оповещения на Zabbix Server'e

Добавляем контактную информацию в профиль пользователя








Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
95 -11 =
 
howto/zabbix/zabbix_notify_telegram.txt · Последнее изменение: 2024/03/27 17:03 — lexa
Gentoo Linux Gentoo Linux Driven by DokuWiki