Скачиваем скрипты от сюда https://github.com/ableev/Zabbix-in-Telegram

Кладем скрипт zbxtg.py в каталог /usr/lib/zabbix/alertscripts, каталог может отличатся, можно проверить значение переменной AlertScriptsPath в конфиге zabbix_server.conf

Создаем скрипт zbxtg_settings.py с содержимым из файла zbxtg_settings.example.py

cp zbxtg_settings.example.py zbxtg_settings.py

Заменяем в нем на наши такие данные как:

(в переменной zbx_server url пишем без /zabbix — для 4.х версии проверено)

tg_key = “<TOKEN>”

zbx_tg_signature = False

zbx_tg_tmp_dir = “/tmp/”

zbx_server = “http://localhost/zabbix” # указываем URL к нашему zabbix серверу

zbx_api_user = “” # имя пользователя от zabbix

zbx_api_pass = “” # пароль от zabbix для user

emoji_map = {

“OK”: “✅”,

“Not classified”: “❕”,

“Information”: “ℹ”,

“Warning”: “⚠”,

“Average”: “❗”,

“High”: “❌”,

“Disaster”: “?”

}

chmod +x  zbxtg_settings.py

устанавливаем python requests, учитываем вашу текущую версию python -V

wget https://bootstrap.pypa.io/get-pip.py

# use Python version | python3.3 or python

# pythonX.X get-pip.py

python2.7 get-pip.py

pip install requests

Идем в Администрирование — Способы оповещений, жмем кнопку «Создать способ оповещений». В поле «Имя» вводим название способа оповещения. В поле «Тип» нужно выбрать «Скрипт». В поле «Имя скрипта» нужно указать имя файла-скрипт, без пути; например, zbxtg.py В поле «Параметры скрипта» нужно нажать «Добавить» 3 раза и ввести в появившиеся поля {ALERT.SENDTO}, {ALERT.SUBJECT} и {ALERT.MESSAGE}.

Идем в Администрирование — Пользователи — выбираем своего пользователя — Оповещения — Добавить. В поле «Тип» выбираем только что созданный способ оповещения, например, Telegram Bot. В поле «Отправлять на» вводим свой Telegram ID. Остальные поля заполняем на свое усмотрение.

Идем в Настройка — Действия, в поле «Источник событий» выбираем «Триггеры» и жмем «Создать действие». На закладках «Действие» и «Условие» заполняем поля по своему усмотрению. Я в полях «Сообщение по умолчанию» и «Сообщение о восстановлении».

{{{TRIGGER.SEVERITY}}} FAIL: {TRIGGER.NAME} on {HOSTNAME}

Сообщение по-умолчанию:

Last value: {ITEM.LASTVALUE1} ({TIME})

zbxtg;graphs

zbxtg;graphs_period=10800

zbxtg;itemid:{ITEM.ID1}

zbxtg;title:{HOST.HOST} – {TRIGGER.NAME}

zbxtg;single_message

Тема восстановления:

{{OK}} OK: {TRIGGER.NAME} on {HOSTNAME}

Сообщение о восстановление:

Last value: {ITEM.LASTVALUE1} ({TIME})

zbxtg;graphs

zbxtg;graphs_period=10800

zbxtg;itemid:{ITEM.ID1}

zbxtg;title:{HOST.HOST} – {TRIGGER.NAME}

zbxtg;single_message

На закладке «Операции» жмем «Новый». Выбираем пользователя. В поле «Отправить только через» выбираем созданный на шаге 4 способ оповещения, например, Telegram Bot. Жмем «Добавить» и еще раз «Добавить».

После обновления блока emoji_map и добавления {{{TRIGGER.SEVERITY}}} / {{OK}} в «Default subject» в Action, а также в «Default message» переменной zbxtg;single_message сообщения группируються и им добавляються emoji статусов проблемы.

Групповые уведомления

Для групповых уведомлений необходимо создать группу в телеграм в которую добавить бота.

Создать «Способ оповещения».

а также добавить в пользователя данный способ оповешения.

в поле «Отправить на» обязательно указать Имя группы (не ID !!!).

zbxtg;graphs — enables attached graphs

zbxtg;graphs_period=10800 — set graphs period (default – 3600 seconds)

zbxtg;graphs_width=700 — set graphs width (default – 900px)

zbxtg;graphs_height=300 — set graphs height (default – 300px)

zbxtg;itemid:{ITEM.ID1} — define itemid (from trigger) for attach

zbxtg;title:{HOST.HOST} – {TRIGGER.NAME} — graph title

zbxtg;debug — enables debug mode, some logs and images will be saved in the tmp dir (temporary doesn’t affect python version)

zbxtg;channel — enables sending to channels

Проверить работу скрипта можно следующими запросами:

# sudo ./zbxtg.py “<username>” “<message_subject>” “<message_body>” –debug

# sudo ./zbxtg.py “@mai1on” “Test” “Test2” –debug

Проверить работу бота в чате, предварительно бота необходимо добавить в ваш чат.

# sudo ./zbxtg.py “Name of your telegram chat” “Test” “Test body” –debug –group

Известные проблемы, если перестали отображаться графики в сообщениях, для начала необходимо проверить код ответа.

веpный ответ:

curl -sI http://localhost/zabbix/chart3.php | head -1

HTTP/1.1 200 OK

не верный ответ:

curl -sI http://localhost/zabbix/chart3.php | head -1

HTTP/1.1 401 Unauthorized

Причиной был файл .htaccess в каталоге с zabbix’ом в котором закрыт доступ к zabbix  через web авторизацию.

Еще одна возможная причина, по которой уведомления от telegram могут приходить без графиков — отсутствие верного логина пароля в файле конфигурации скрипта формируещего графики:

nano zbxtg_settings.py

переменные:

zbx_api_user = “Admin”

zbx_api_pass = “password”

Это также будет причиной вот такого рода ошибок:

Для 4-й версии не забываем в настройках раскоментить параметр:

zbx_server_version = 4  # for Zabbix 4.x version, default will be changed in the future with this

0 0 голосів
Рейтинг статьи
Підписатися
Сповістити про

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі