Skip to content

mef13/Zabbix-Notification-Telegram

 
 

Repository files navigation

Zabbix-Notification-Telegram

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

Plans

Installation

Configuration

Key Features

  • Отправка графиков и последних значений в одном сообщении
  • Гибкая настройка шаблона в теле сообщения
  • Обработка быстрых команд ботом AppVeyor
  • Отправка показателей по запросу от бота AppVeyor
  • Передача данных из экшена XML разметкой
  • Формирование списка линков в теле сообщения
  • Формирование списка тэгов в теле сообщения
  • Emoji мапинг статуса и важности события
  • Наложение ватермарки на изображение
  • Формирование и обновление кэшфайла (privat, group -> supergroup)

Plans

  • Gitlab CI\CD

Installation

  • Перейдем в директорию
cd /usr/lib/zabbix/alertscripts/
  • С клонируем свежий релиз с GitHub
git clone https://github.com/xxsokolov/Zabbix-Notification-Telegram.git .
  • Создадим виртуальное окружение
virtualenv venv --python=python3

или

python3 -m venv venv
  • Активируем виртуальное окружение
source venv/bin/activate
  • Установим библиотеки
pip install -r .requirements
deactivate
  • Копируем файл конфигурации:
cp zbxTelegram_config.example.py zbxTelegram_config.py
  • Выдаем права
chown -R zabbix:zabbix zbxTelegram.py zbxTelegram_config.py zbxTelegram_files/ 
  • Разрешим выполнять файл скрипта
chmod +x zbxTelegram.py
  • Редактируем конфигурационный файл
vim zbxTelegram_config.py

Configuration

Настройка zbxTelegram_config.py

tg_proxy = Отправка через прокси True/False

tg_proxy_server = прокси сервера

tg_token = token to access the Telegram API

zabbix_api_url = Путь до Zabbix

zabbix_api_login = Логин

zabbix_api_pass = Пароль

Настройка Media types

Name: ZNT

Type: Script

Script name: zbxTelegram.py

Script parameters:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

Настройка Actions

  • Default subject

{Problem} {TRIGGER.SEVERITY} {{TRIGGER.SEVERITY}}: {EVENT.NAME}

{Resolved} {TRIGGER.SEVERITY} {{TRIGGER.SEVERITY}} {EVENT.NAME}

{Update} {TRIGGER.SEVERITY} {{TRIGGER.SEVERITY}} {EVENT.NAME}

{Problem} - мапинг значений Problem\Resolved\Update в emoji (config: zabbix_status_emoji_map)

{{TRIGGER.SEVERITY}} - мапинг значений Severity в emoji (config: zabbix_status_emoji_map)

  • Default message

Для настройки оповещения используется XML разметка (Исходные данные Вы найдете в actions.example)

Она состоит из основных секций:

<body>
   <messages>
      Текст сообщения
   </messages>
</body>
<settings> 
       Настройки
</settings>

Тестирование

  • Из консоли
./zbxTelegram.py @username test test

[2019-11-26 11:48:37,723] - PID:73794 - main() - zbxTelegram.py:311 - INFO: Send to @username action: test
[2019-11-26 11:48:38,653] - PID:73794 - send_messages() - zbxTelegram.py:290 - INFO: Send photo to @username (00000000)
  • Из media type

Описание настроек

<graphs></graphs> - прикреплять график (True\False)

<graphlinks>True</graphlinks> - прикрепить ссылку url на History (True\False)

<triggerlinks>True</triggerlinks> - прикрепить ссылку url из триггера (True\False)

<tag>True</tag> - прикрепить теги (True\False)

<graphs_period></graphs_period> - период графика в секундах

<itemid></itemid> - передача itemid {ITEM.ID1}

<triggerid></triggerid> - передача triggerid {TRIGGER.ID}

<eventid></eventid>- передача eventid {EVENT.ID}

<title></title> - заголовок графика {HOST.HOST} - {EVENT.NAME}

<triggerurl></triggerurl> - передача url из триггера {TRIGGER.URL}

<tags></tags> - передача списка тэгов из триггера {EVENT.TAGS}

Нотиф:

Жду всех в Telegram: https://t.me/ZbxNTg

About

Zabbix alert with graphs in one message Telegram

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%