Zabbix. Отправка уведомлений в Telegramm

Автор: | 2020-06-06
Добавь остроты ощущений, если твой сон еще крепок а нервы пока спокойны.
Получай круглосуточно алерты от Zabbix по каждому пустяку.

01) Создаем бота, через которого будут отправляться уведомления в telegramm.
Добавляем себе в контакты @BotFather и пишем ему сначала /start, потом /newbot.
Вводим имя нового бота superb-zabbix-bot в ответ получаем token API_token нового бота который будем использовать далее.

02) Добавляем получателю уведомлений в список контактов @superb-zabbix-bot

03) Узнаем ID собственного аккаунта (на который должны приходить уведомления).
Находим @userinfobot шлем ему /start, в ответ бот присылает Id: xxxxxxx + имя фамилию.

04) Проверяем
# curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"xxxxxxx","text":"test test test. проверка связи"}' "https://api.telegram.org/botAPI_token/sendMessage

05) Добавляем скрипт отправки zabbix в telegramm. На сервере zabbix по пути /usr/lib/zabbix/alertscripts/ размещаем telegram-push.sh

#!/bin/bash
#
# Send message to Telegramm
#
if [[ -z "$1" ]];
then
echo ; echo ;
echo -e " Usage: telegram-push [telegramm_chat_ID] [subj] [message]"
echo ; echo ;
exit
fi
#
token='API_token'
chat="$1"
subj="$2"
message="$3"
timestamp=$(date)
echo -e '#' $timestamp >>/var/log/telegramm-push.log
echo -e '# Send to: '$1 >>/var/log/telegramm-push.log;
echo -e '# Subj : '$2 >>/var/log/telegramm-push.log;
echo -e '# Message: '$3 >>/var/log/telegramm-push.log;
echo -e '##################################### \n' >>/var/log/telegramm-push.log
/usr/bin/curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${chat}\",\"text\":\"${subj}\n${message}\"}" "https://api.tlgr.org//bot${token}/sendMessage" >>/var/log/telegramm-push.log;
echo -e '\n' >>/var/log/telegramm-push.log
echo -e '#####################################' >>/var/log/telegramm-push.log
### EOF

Сохраняем, даем права на исполнение.
chmod +x /usr/lib/zabbix/alertscripts/telegram-push.sh

06) Тестируем
/usr/lib/zabbix/alertscripts/telegram.sh xxxxxxx Тест 'Проверка отправки'

07) В веб интерфейсе zabbix добавляем новый способ оповещений:
Администрирование -> Способы оповещений -> правом верхнем углу кнопка “Создать способ оповещений” Заполняем поля

Имя : – Telegramm
Тип : – скрипт

Имя скрипта : telegram-push.sh (путь /usr/lib/zabbix/alertscripts/ указывать не нужно!!!)

Задаем три параметра скрипта:
{ALERT.SENDTO}
‘префикс {ALERT.SUBJECT}’ – (в одинарных кавычках, для корректной передачи многострочных алертов. “префикс” – это свой личный идентификатор отправителя, удобно понимать кто именно шлёт, если сообщения несколько серверов zabbix. префикс можно применять.)
{ALERT.MESSAGE}
Сохраняем кнопкой “Добавить”.

08) В веб интерфейсе zabbix идем в раздел Администрирование -> Пользователи -> выбираем нужного пользователя, добавляем ему новый тип оповещений – telegramm.
Тип – Telegramm (имя заданное в 7 пункте)
Отправлять на: xxxxxxx ( ID аккаунта из 3 пункта)
Сохраняем кнопкой “Добавить”.

09) При добавлении нового получателя сообщений, выполняем шаги 2, 3, 6, 8.
p.s. Буду особо признателен тому, кто скажет мне зачем это нужно.