-
Notifications
You must be signed in to change notification settings - Fork 28
Установка нотификатора Zabbix Notification Telegram
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
= Пароль
Name: ZNT
Type: Script
Script name: zbxTelegram.py
Script parameters:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
- Тема (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)