Расскажите друзьям о статье...
Share on VK
VK
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter

В предыдущих темах мы установили систему мониторинга Zabbix и показали на примерах как добавить на мониторинг устройства Dlink и Mikrotik. Для удобства оповещений о неполадках устройств мы настроим отправку оповещений из Zabbix в Telegram на наш аккаунт или общий чат, в случае если надо оповестить всех участников чата.

Создание бота Telegram.

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

1. Над списком контактов в поле Search находим бота @BotFather и жмем на панель c названием /start или вводим команду /start в поле для сообщений.
2. Следующей командой /newbot мы получаем сообщение: “Alright, a new bot. How are we going to call it? Please choose a name for your bot.”, исходя из которого нам нужно задать имя, в конце которого обязательно должно присутствовать слово bot. Например, ithelp21_zabbixbot.

3. В ответ на наше сообщение с именем бота мы получаем Token бота, который выглядит в виде “Use this token to access the HTTP API:
423393656:AAE1hJ5EE_o8KIDWrWW9A8-hZnpAL9-htGI

Настройка аккаунта Telegram, получение ID.

Нам нужно определить идентификационный номер своего контакта, на который мы будем получать уведомления от ithelp21_zabbixbot.
Для этого снова находим в поиске @MyTelegramID_bot и жмем кнопку /start или вводим команду, после которой мы получим ID “This BOT simply telling you your current Telegram ID. You Telegram ID: 194533722“.

Теперь проверим отправку сообщений с нашего бота на на аккаунт в Telegram.
В CentOS, где установлен zabbix-server запускаем команду, со своими данными. В моем случае команда будет выглядеть так:

curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"194533722","text":"Привет, я Telegram-bot для Zabbix!"}' "https://api.telegram.org/bot423393656:AAE1hJ5EE_o8KIDWrWW9A8-hZnpAL9-htGI/sendMessage"

Шаблон для ввода своих данных:

curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"вводим ID своего аккаунта","text":"Привет, я Telegram-bot для Zabbix!"}' "https://api.telegram.org/botВводим Token, который мы получили при создании бота/sendMessage"

Обратите внимание что Token нужно вводить сразу же api.telegram.org/bot”Token” без пробела после “bot”!

Если все данные ввели верно, мы получим в чате сообщение “Привет, я Telegram-bot для Zabbix!” от нашего бота.

Добавим Telegram – уведомление в Zabbix.

1. Проверяем, где у нас в Zabbix находится папка для скриптов, который мы далее создавать, вводим команду и получаем результат.

[root@Zabbix ssmtp]# grep AlertScriptsPath /etc/zabbix/zabbix_server.conf
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

Создаем в выше указанной папке script с именем zabbix-to-telegram-bot.sh:

[root@Zabbix ssmtp]# vim /usr/lib/zabbix/alertscripts/zabbix-to-telegram-bot.sh

и заполняем его следующим кодом:

#!/bin/bash
TOKEN='423393656:AAE1hJ5EE_o8KIDWrWW9A8-hZnpAL9-htGI'
which curl &>/dev/null
if [ $? -ne 0 ] ; then echo 'FAIL: curl not found.' && exit 1 ; fi
if [ $# -ne 3 ] ; then echo 'FAIL: Params not defined.' && echo 'Usage: zabbix-to-telegram-bot.sh TelegramID Subject Message' && exit 1 ; fi
CHAT_ID="$1"
SUBJECT="$2"
MESSAGE="$3"
curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" | grep -q '"ok":false,'
if [ $? -eq 0 ] ; then exit 1 ; fi

Даем права скрипт-файлу:

# chmod +x /usr/lib/zabbix/alertscripts/zabbix-to-telegram-bot.sh
Настройка оповещений в Zabbix через Telegram.

1. Заходим в Администрирование – Способы оповещений – Создать способ оповещения.

Имя: Telegram Bot;
Тип: Скрипт;
Имя скрипта: zabbix-to-telegram-bot.sh;
Параметры скрипта:
{ALERT.SENDTO} — адрес отправителя;
{ALERT.SUBJECT} — тема сообщения;
{ALERT.MESSAGE} — текст сообщения;
Активировано: ставим галочку;
Жмем Добавить.

2. Идем в Администрирование – Пользователи – Выбираем нашего пользователя “Admin“.
В открывшемся окне пользователя переходим на вкладку “Оповещения” – Добавить.

Тип: Telegram Bot;
Отправлять на: 194533722 (ID нашего telegram аккаунта);
Остальные параметры оставляем по-умолчанию или на ваше усмотрение.
Активировано: ставим галочку;
Добавить.

3. Переходим Настойка – Действие – Источник событий “Триггеры” – Создать действие.

Вкладка Действие:
Имя: Уведомление Telegram c Zabbix;
Активировано: ставим галочку;

Вкладка “Операции”:
Длительность шага операции по умолчанию: 60 – (через 60 секунд после срабатывание триггера приходит уведомление)
Нажимаем в этой же вкладке Операции – Новое.
Меняем только:
Тип операции: Отправить сообщение;
Отправлять пользователям: Admin;
Отправлять только через: Telegram Bot;
Добавить.

Во вкладке “Операции восстановления” повторяем тоже самое, что и во вкладке “Операции“.

На этом настройка оповещений Zabbix от Telegram завершена.
Остается положить какой-нибудь порт с мониторинга, и дождаться уведомление о триггере.

Расскажите друзьям о статье...
Share on VK
VK
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter

3 thoughts on “Настройка оповещений Zabbix в Telegram.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.