Skip to content

Установка нотификатора Zabbix Notification Telegram

Dmitry Sokolov edited this page Aug 6, 2020 · 7 revisions

Zabbix Notification Telegram

установка

  • Становимся пользователем, от имени которого будет работать скрипт на системном уровне (по-умолчанию zabbix)
sudo su - zabbix
  • Перейдем в директорию
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

настройка

настройка конфигурационного файла (zbxTelegram_config.py)

tg_proxy = Отправка через прокси True/False; по-умолчанию True

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

tg_token = token to access the Telegram API

zabbix_api_url = Путь до Zabbix (бэкслеш '/' в конце обязателен)

zabbix_api_login = Логин пользователя с минимум правами чтения на нужные группы, откуда мы хотим получать оповещения

zabbix_api_pass = Пароль

настройка способа оповещения (Zabbix Media Types)

Name: ZNT

Type: Script

Script name: zbxTelegram.py

Script parameters:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

настройка действия (Zabbix Actions)

  • Тема (Zabbix 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)

  • Сообщение (Zabbix Default Message)

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

В самом простом рабочем варианте контент из файла actions.example копируется в настройку оповещения, поле Default message

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

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

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

  • Из media type
  • Из консоли
./zbxTelegram.py @username test test
или
./zbxTelegram.py «Имя группы» 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:37,723] - PID:73794 - main() - zbxTelegram.py:412 - INFO: Connection check passed (http://127.0.0.1/zabbix/)
[2019-11-26 11:48:38,653] - PID:73794 - send_messages() - zbxTelegram.py:290 - INFO: Bot @bot(00000000) send photo to @username (00000000)

итоговый результат: