Hjälpcentral

Настройка уведомлений в Zabbix 5.0 через канал Telegram

Настройка уведомлений в Zabbix 5.0 через канал Telegram

Данный опус является частью единого цикла заметок o CLI.  Для его написания использовалось множество различных источников (скилы крутых специалистов, статьи с тематических сайтов, техническая документация, комментарии с форумов и социальных сетей и т. д и т. п.).  К сожалению, указать все источники точно не представляется  возможным!  По этому,  в конце заметки,  будет указана ссылка только  на основной источник.  Материалы,  использованные для написания заметки, изменялись автором под конкретную задачу! Вам, скорее всего, тоже  придется поступить аналогичным образом для получения желаемого результата) 

 

Нужна консультация или помощь в решении IT вопроса? Пожалуйста, в таком случае  заполните форму запроса на Sytes.ru!

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

 

Классическим  способом доставки уведомлений от системы мониторинга является электронная почта. Но одного способа, как правило  бывает  не достаточно и не всегда удобно  пользоваться почтой.

По этому рекомендуется доставлять очень важные и чрезвычайной важности сообщения,  используя дополнительные каналы.

Одним из таких каналов является телеграмм (он тоже далеко не идеально работает, по этому рекомендуется использовать и другие способы информирования)

Настройка этого канала начинается с создания БОТА в телеграмме:

Преходите по ссылке  для создания бота с помощью BotFather

https://t.me/botfather

Выбираете опцию создать нового бота, даете ему имя и в ответ BotFather пришлет Вам конфигурацию бота и его ID.

Дальше сценарии могут отличаться, в зависимости от того на какую систему мониторинга установлен Ваш Zabbix. 

В этом примере используется ОС Centoc 7:

hostnamectl

 Вывод команды:

 Icon name: computer-vm

           Chassis: vm

           Virtualization: kvm

  Operating System: CentOS Linux 7 (Core)

       CPE OS Name: cpe:/o:centos:centos:7

            Kernel: Linux 3.10.0-1160.11.1.el7.x86_64

      Architecture: x86-64

 

 

Переходим в папку со скриптами zabbix:

cd /usr/lib/zabbix/alertscripts

Качаем скрипт для телеги :

 wget https://github.com/vasyakrg/zabbix-alert-scripts/blob/master/telegram.sh

 

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

 

#!/bin/bash

token='IIIIIIIIIIIIIIIIIIIIIIIIIIIIDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD'

chat="$1"
subj="$2"
message="$3"

/usr/bin/curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${chat}\",\"text\":\"${subj}\n${message}\"}" "https://api.telegram.org/bot${token}/sendMessage"


 

Проверить работу скрипта можно командой :

sh telegram.sh "IDPOLUSHATELYA" "Тестовое сообщение" "от zabbix_bot"

Свой идентификатор в системе телеграмм можно узнать например с помощью бота  userinfobot.

https://github.com/nadam/userinfobot

 

Мы создали бота для оповещений и получили для него token, который нам понадобится далее. Теперь нужно добавить в свой список контактов созданного бота. Для этого найдите его по имени. В моем случае имя @serveradminru_bot.

Теперь проверим, как работает отправка уведомлений через нашего бота. Для этого в консоли сервера набираем примерно такую команду:

# curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"210806260","text":"Проверяю отправку оповещений ботом"}' "https://api.telegram.org/bot1393668911:AAHDfgghTHgfhdfyX28R-wxKfvH1WR6-vdNw/sendMessage"

Бот пришлет оповещение.

Проверка отправки сообщений через бота

В моем запросе изменяемые данные следующие:

210806260 id моего аккаунта. Чтобы его узнать, добавьте бота @my_id_bot и напишите ему /start
Проверяю работу бота Текст сообщения
bot1393668911:AAHDfgghTHgfhdfyX28R-wxKfvH1WR6-vdNw Слово bot и дальше token бота. Пишется все в одно слово.

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

Отправка уведомлений в telegram через webhook

 

Начиная с 5-й версии, в Zabbix из коробки работают уведомления в telegram через механизм webhook. Чтобы настроить его, переходите в Администрирование -> Способы оповещений и выбирайте там Telegram.

Отправка уведомлений в telegram через webhook

Внутри увидите некоторые параметры. Можно так же посмотреть текст скрипта, который используется для отправки оповещений. В целом, тут сейчас не обязательно что-то менять. Дефолтные настройки полностью рабочие. Надо только указать токен бота.

Настройка токена бота

Тут же можете шаблоны поправить так, как вам нравится. Это нововведение 5-й версии Zabbix - правка шаблонов оповещений в настройках самих оповещений. Это позволяет создавать для каждого типа свои шаблоны. Очень удобно.

Давайте теперь проверим отправку уведомлений через этот способ. Нажимайте Тест.

Тест отправки уведомлений в телеграм

Я указал текст сообщения, заголовок, свой id и token бота. В итоге мне в личку пришло сообщение от бота.

Проверочное сообщение

Если хотите отправить оповещение в группу, то сначала создайте ее, а потом добавьте туда бота. Не потеряйте минус в id группы. Его тоже нужно указывать. Я сначала не понял этого и копировал id группы без минуса. В итоге, оповещения в группу не отправлялись.

Тестовое уведомление в группу telegram

Итак, убедились, что сообщения в telegram нормально отправляются. С технической стороны проблем нет. Теперь настроим отправку уведомлений по событиям. Я обычно для этого использую тестовый триггер. В стандартном шаблоне zabbix для OS Linux есть элемент данных Number of logged in users, который считает количество залогиненных пользователей. Я для него делаю триггер, чтобы он срабатывал, когда пользователей 2 и более. И с его помощью тестирую уведомления, просто подключаясь на сервер по ssh двумя подключениями одновременно.

Проверочный триггер

Теперь идем в настройки пользователя и добавляем ему способ оповещений через telegram.

Добавление способа оповещения пользователю zabbix

Если у вас ранее не работали никакие уведомления, то не забудьте активировать Действия.

Настройка действия в zabbix

У нас все настроено для отправки оповещений в telegram. Добейтесь срабатывания триггера и проверяйте телеграм канал, в который настроили отправку сообщений.

Проверка работы уведомлений в telegram

Сообщение от триггера

Все работает. Если вам достаточно такого функционала, то можно оставлять и пользоваться.

Проверить работу бота можно через консоль командой(Все что выделено красным нужно менять на свое):

curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"1235782382","text":"Проверяю отправку оповещений ботом"}' "https://api.telegram.org/bot3478758834:rvaeuualrbUYGYGUGYUGGyuGUGUY/sendMessage"

Если у вас есть профессиональный интерес в расширении данной статьи – заполните форму запроса!

Заметка распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

     Источник:

Конец! 

  • Zabbix telegram bot
  • 0 användare blev hjälpta av detta svar
Hjälpte svaret dig?

Relaterade artiklar

Настройка zabbix 5.0 в контейнере LXC с CentOS 7

После нажатия на Finish вы увидите окно авторизации Zabbix сервера. Стандартная учетная...

Настройка шаблона в Zabbix 5.0 для мониторинга web сайтов

Настройка шаблона в Zabbix 5.0 для мониторинга web сайтов   Самый простой способ подключить сайт...

Установка zabbix 5.0 в контейнер LXC с CentOS 7

Здесь подробно описана рабочая инструкция, в которой показана установка Zabbix 5 в контейнер LXC...