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
Zabbix-Notification-Telegram / README.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve contributors at this time
226 lines (197 sloc) 23.7 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
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+.
Илья Аблеев — Zabbix in Telegram
Установка из source (git requires)*:
$ cd /usr/lib/zabbix/alertscripts $ git clone https://github.com/xxsokolov/Zabbix-Notification-Telegram.git .
После этого нотификатор практически готов к работе, потребуется еще несколько шагов.
Подробную инструкцию вы можете найти на wiki: RU, ENG (vacant)
Создаем первое оповещение
Получаем API token
Если у Вас нет бота, я расскажу как это сделать: 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 | Макрос тэгов события разделенных запятой. Макрос объединяет теги из узла сети, шаблона, триггера. |
4. Как отправлять Алерты из Zabbix Server 6.0 в Telegram ? / Alert / Telegram / Zabbix 6.0
: В 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’ |
Пример:
Все основные события (отправка, добавления в cash файл, изменение группы в суппергруппу, ошибки, дебаг) логируются в файле znt.log , Вы можете его найти по умолчанию /usr/lib/zabbix/alertscripts/zbxTelegram_files/znt.log (config_log_file]) Поддерживаются три режима логирования:
- Обычный(по-умолчанию), ведется минимальный log об операциях в нотификаторе;
- Debug], более детальный log, требуется только для анализа ошибок в работе нотификатора (по-умолчанию False);
- 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 и т.п.)
Источник: github.com