Zabbix настройка оповещений Telegram

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags

Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Zabbix уведомления в Telegram | Уроки Zabbix | UnixHost

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

38b4840 Apr 3, 2023
Signed-off-by: Dmitry Sokolov

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time
January 27, 2023 17:27
March 17, 2020 15:18
June 25, 2019 17:23
November 8, 2019 17:34
February 16, 2023 01:43

October 24, 2020 21:28
January 27, 2023 17:22
April 3, 2023 16:17

README.md

Zabbix Notification Telegram

Нотификатор оповещений в Telegram для Zabbix.
Легкая установка, гибкая настройка, информативные сообщения.

Проект закрыт. This project is deprecated.
Go to -> https://t.me/ZbxNTg/4241

  • Возможности
  • Планы
  • С чего начать
  • Установка из source
  • Получаем API token
  • Конфигурационный файл
  • XML разметка
  • Тэги ZNTSettings
  • Графики, информативные заголовки, ссылки 1 , тэги 2 и упоминания объединены в одно сообщение.
  • Формирование и обновление cash файла (privat, group, group -> supergroup) 3
  • Гибкая настройка через конфигурационный файл, XML разметку в действиях триггеров и Trigger Tags 4
  • Маппинг Emoji статуса и важности события.
  • Наложение watermark на изображение.
  • Обьединение графиков в альбом.
  • Обработка быстрых команд ботом
  • Отправка метрик по запросу от бота

Для работы потребуется Python 3+ и Zabbix 3+.

Установка из source (git requires)*:

$ cd /usr/lib/zabbix/alertscripts $ git clone https://github.com/xxsokolov/Zabbix-Notification-Telegram.git .

После этого нотификатор практически готов к работе, потребуется еще несколько шагов.

Подробную инструкцию вы можете найти на wiki: RU, ENG (vacant)

Создаем первое оповещение

Получаем API token

Отправка уведомлений из zabbix в telegram / Sending notifications from zabbix to telegram

Еще по теме:  Закрыть Телеграмм канал в телефоне Андроид

Если у Вас нет бота, я расскажу как это сделать: RU, ENG (vacant)

Основная конфигурация нотификатора производится через файл zbxTelegram_config.py.

Давайте разберем каждый параметр подробно:

Дополнительная конфигурация производится через XML разметку(пример) в Zabbix Action.

Также разберем эти параметры:

Имя Аргумент(ы) Описание По умолчанию
string Default
bool Добавление изображения графика в сообщение. True
bool Добавление линка на «Узел сети» (host) в сообщение. True
bool Добавление линка на график «Элемент данных» (item) в сообщение. True
bool Добавление линка из триггера в сообщение. True
bool Добавление всех тэгов в сообщение. True
bool Добавление тэгов события в сообщение. True
bool Добавление тэгa c eventid в сообщение. True
bool Добавление тэгa c itemid в сообщение. True
bool Добавление тэгa c triggerid в сообщение. True
bool Добавление тэгa c actionid в сообщение. True
bool Добавление тэгa c hostid в сообщение. True
bool True
bool True
bool Добавление кнопок к сообщению.
(В стадии разработки).
True
string Период за который присылается изображение графика в секундах. 10800
string Макрос имени узла сети.
string Макросы ИД элементов данных.
string Макрос ИД триггера.
string Макрос ИД события.
string Макрос ИД действия.
string Макрос ИД узла сети.
string Шаблон формирования заголовка изображения графика из макросов: имя узла сети и имя события.
string Макрос URL триггера.
string Макрос тэгов события разделенных запятой. Макрос объединяет теги из узла сети, шаблона, триггера.

: В XML документах фрагмент, помещенный внутрь CDATA, — это часть содержания элемента, которая помечена для парсера как содержащая только символьные данные, а не разметку. CDATA — это просто альтернативный синтаксис для отображения символьных данных, нет никакой смысловой разницы между символьными данными, которые объявлены как CDATA и символьными данными, которые объявлены в обычном синтаксисе и где «» будут представлены как «», соответственно. (Wikipedia)

Более детальную настройку нотификатора можно произвести через тэги в триггерах.

Разберем эти параметры:

Имя Описание По умолчанию
trigger_settings_tag Имя тэга для обработки значений параметров. ‘ZNTSettings’
trigger_settings_tag_no_graph Значение тэга ‘ZNTSettings’ при котором изображение графика не будет добавлено в сообщение. ‘no_graph’
trigger_settings_tag_no_alert Значение тэга ‘ZNTSettings’ при котором сообщение отправлено не будет.
В лог файл будет добавлено событие об отмене отправки сообщения.
‘no_alert’
trigger_settings_tag_not_notify Значение тэга ‘ZNTSettings’ при котором сообщение будет отправляет беззвучно.
Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука.
‘not_notify’
trigger_settings_tag_graph_normal ‘graph_normal’
trigger_settings_tag_graph_stacked ‘graph_stacked’
trigger_settings_tag_graph_pie ‘graph_pie’
trigger_settings_tag_graph_exploded ‘graph_exploded’
trigger_settings_tag_graph_period Значение тэга ‘ZNTSettings’ при котором будет задан период за какой присылать изображение графика. Указывается после разделителя = в секундах.
Приоритет: tag, xml, config*
‘period=’
Имя Описание По умолчанию
trigger_info_mentions_tag Тэг упоминания юзера ‘ZNTMentions’

Пример: Kitten

Все основные события (отправка, добавления в cash файл, изменение группы в суппергруппу, ошибки, дебаг) логируются в файле znt.log , Вы можете его найти по умолчанию /usr/lib/zabbix/alertscripts/zbxTelegram_files/znt.log (config_log_file]) Поддерживаются три режима логирования:

  1. Обычный(по-умолчанию), ведется минимальный log об операциях в нотификаторе;
  2. Debug], более детальный log, требуется только для анализа ошибок в работе нотификатора (по-умолчанию False);
  3. exc_info], полный Traceback ошибок (по-умолчанию False);
Еще по теме:  Не могу писать комментарии в Телеграмме

Оповещение не приходит в группу или в личку

Последние значимые изменения

  • Добавлены и изменены переменные в конфиг файле.
  • Изменен XML.
  • Welcome! ZNTGroup.

1 Формирование списка urls в теле сообщения для быстрого перехода в разделы Zabbix (Trigger, History, Event, Acknowledget, Host)
2 Формирование списка tags в теле сообщения для быстрого поиска событий в Telegram (Trigger Tags, Eventid, Itemid, Triggeid, Actionid)
3 Кеш файл это json массив содержащий имена юзуров, групп, суппергруп и их идентификаторы(ИД). Безопасность Telegram не позволяет напрямую писать по имени, только по ИД. Чтобы получить данный ИД надо написать лично Вашему боту или бот должен быть добавлен в группу . Только после этого нотификатор «подключается» к боту и получает все обновления которые произошли у бота (getUpdates). Далее мы находим никнейм или имя групп, куда решили отправить нотификацию, и их ИД, которые и кладем в cash файл. FAQ Telegram
4 Управление через Trigger Tags (Не прикреплять график, не отправлять уведомление, без push в Telegram dev и т.п.)

About

Sending notification from Zabbix server to the Telegram

Источник: github.com

Zabbix: отправка уведомлений в Telegram

Вы можете настроить отправку уведомлений о событиях Zabbix в Telegram. Начиная с версии 5 в Zabbix Server есть встроенная поддержка отправки сообщений в мессенджер Telegram через API и webhook.

Задайте название бота и имя пользователя. BotFather сгенерирует для вас токен HTTP API, который вам нужно скопировать.

создать бота в telegram

Перейдите к вашему боту в Telegram и нажмите:

Вы можете протестировать отправку уведомлений через Telegram бота из командной строки с помощью curl или PowerShell. Для этого вам понадобится токен бота ( HTTP API token: xxxxxxxxxxxxxxxxxxxxxxxxxxxx) и имя вашего пользователя (группы).

Your user ID: 123456789

Отправка из консоли Linux через curl:
curl —header ‘Content-Type: application/json’ —request ‘POST’ —data ‘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
$Telegramchatid
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$Response = Invoke-RestMethod -Uri «https://api.telegram.org/bot$($Telegramtoken)/sendMessage?chat_id=$($Telegramchatid)

отправка сообщения из zabbix в powershell

Проверьте, что вы получили уведомление в клиенте Telegram.

Теперь нужно настроить способ оповещения Telegram в веб-интерфейсе Zabbix. Как мы уже говорили ранее, встроенная поддержка отправки уведомлений в Telegram через webhook доступна начиная с Zabbix 5.

Перейдите в раздел Administration -> Media types-> выберите шаблон Telegram.

Если шаблон оповещений Telegram отсутствует в Zabbix, вы можете импортировать его из репозитория (https://github.com/zabbix/zabbix/tree/master/templates/media/telegram).

Укажите HTTP API токен вашего бота в настройках шаблона Telegram.

Токен бота telegram в zabbix

На вкладке Message templates вы можете изменить настройки оповещения. Я добавил в заголовки оповещения emoji (делает уведомления более наглядными) и имя хоста через макрос .

Символы Emoji можно вставить в поле через буфер обмена.

настройка шаблона оповещения в zabbix

Теперь проверьте отправку уведомления через Telegram. Укажите в поле TO ваш ID аккаунта и нажмите кнопку Test. В чат должно прийти сообщение от бота.

Еще по теме:  Как узнать кто звонил в Телеграмме если собеседник удалил звонок

отправить тествое сообщение из telegram в zabbix

Теперь нужно назначить Telegram оповещения для вашего пользователя. Перейдите в Administration -> Users -> выберите пользователя, перейдите на вкладку Media и добавьте новый тип оповещения Telegram.

Укажите ID вашего пользователя в Telegram и выберите триггеры (Use if severity), при срабатывании которых нужно отправлять уведомления в бот Telegram.

триггеры для отправки в telegram из zabbix

Настройка Telegram оповещения для события zabbix

Выберите ваш триггер оповещения в разделе Configuration -> Actions -> Trigger actions. Перейдите в раздел Operations и добавьте новую операцию. Выберите пользователя или группу, которых нужно оповестить. В разделе Send only to выберите Telegram.

Теперь при срабатывании триггеров Zabbix вы будете получать уведомления в Telegram.

отправка алерта в telegram из zabbix

Недостаток стандартных шаблонов Zabbix для отправки уведомления через Webhook в том, что через него можно отправлять только текст без форматирования и графиков. Допускается использования только символов emoji.

Источник: vmblog.ru

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

Zabbix

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

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

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

telegram

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

/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:

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

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

telegram

/getid

telegram

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

telegram

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

telegram

telegram

Sending failed: Bad Request: chat not found.

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

/start

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

telegram

telegram

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

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

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

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

telegram

telegram

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

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

telegram

telegram

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

Источник: internet-lab.ru

Рейтинг
( Пока оценок нет )
Загрузка ...