Zabbix- система мониторинга сетей. Позволяет следить за состоянием узлов сети. Одной из важных возможностей является отправка уведомлений. Из коробки он умеет отправлять уведомления на почту, jabber и слать смс. Для последнего ему нужен модем с сим-картой.
Пришла в голову идея отправки уведомлений в популярный мессенджер. Помимо описанных способов оповещений система еще умеет выполнять пользовательские скрипты, на этом и основана отправка уведомлений.
Первое что понадобится — это завести бота в телеграм, который и будет отправлять нам уведомления. Делается это через @BotFather — официальный бот телеграма для управления пользовательскими ботами. Подробную инструкцию приводить не буду. Заводим бота @MyZabbixNotifier_bot.
Теперь заводим способ оповещения в разделе Администрирование -> Способы оповещений. Указываем следующие настройки:
— Имя — понятное нам имя
— Тип — Скрипт
-Имя скрипта — Имя выполняемого скрипта, лежат в папке/usr/local/share/zabbix/alertscripts
— Параметры скрипта — Здесь указывается что будет передаваться скрипту для отправки.

Теперь перейдем к скрипту. Я остановился на обычном shell скрипте. Дополнительно нам понядобятся две утилиты: cURL и torsocks. Первая для отправки запроса на api.telegram.org, вторая входит в состав пакета tor и нужна для корректной работы на территории РФ. Отправка сообщения ботом осуществляется путем отправки POST запроса на https://api.telegram.org/bot%TOKEN%/sendMessage с параметрами chat_id и text, где
— %TOKEN% — токен, который вам выдает @BotFather при создании бота
— chat_id — id чата с конкретным человеком, откуда его взять рассмотрим чуть ниже
— text — собственно отправляемое сообщение
Ниже листниг скрипта:
#!/bin/sh
CHAT_ID=$1
SUBJ=$2
EXT=$3
MESSAGE="$2 - $3"
URL="https://api.telegram.org/bot1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/sendMessage"
torsocks curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"
Скрипт простейший, во внутренние переменные записываем параметры $1, $2, $3 указанные в способе оповещения и url, на который будем слать запрос. В конце скрипта собственно выполняем запрос с параметрами.
Далее необходимо настроить оповещения для конкретного пользователя. В Zabbix заходим в настройки собственного профиля, раздел Оповещения. Выбираем ссылку добавить:

Выбираем созданный нами способ оповещения. В поле отправлять на указываем chat_id (как его получить описано ниже). После выбираем какие типы уведомлений будут приходить в телеграм. Жмем «Добавить» и «Обновить»
Как получить chat_id?
После добавления бота в свой список контактов, нам необходимо выполнить запросhttps://api.telegram.org/bot1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/getUpdates
Можно просто вставить строку в адресную строку браузера, я делал из командной строки через torsocks и curl, т.к. домен telegram.org на территории РФ заблокирован. В ответ получаем JSON строку вида:
{
"ok":true,
"result":[{
"update_id":963980712,
"message":{
"message_id":3,
"from":{
"id":339829668,
"is_bot":false,
"first_name":"Mikhail",
"last_name":"Kostikov",
"username":"kosmuxa",
"language_code":"ru"
},
"chat":{
"id":339829668,
"first_name":"Mikhail",
"last_name":"Kostikov",
"username":"kosmuxa",
"type":"private"
},
"date":1557153837,
"text":"/start"
}
}]
}Из этих данных нас интересует result->chat->id, этой и есть искомый номер.
Теперь можно протестировать оповещения:


И реальное сообщение о падении узла

Самым неудобным моментом мне кажется получение id чата, т.е. идентификация конкретного пользователя. Однко, если у вас не много пользователей, то думаю это не очень большая проблема.
На этом все, уведомления приходят. Пишите комментарии, вопросы, замечания. С удовольствием на все отвечу.
I’ve been looking for a reliable platform like this for a while. The loading speed is impressive and the interface is very user-friendly. Highly recommended for everyone in the Philippines! 979jllink
I am loving the gameplay here. It feels very authentic and the excitement is real. Great place to unwind after a long day. phamjili
Joining this club was the best decision this week. The community feels welcoming and the rewards are genuinely rewarding. Five stars! inrun999club
Вот еще с отправкой графиков и кучей настроек
https://github.com/xxsokolov/Zabbix-Notification-Telegram