Лайфхаки

Маленькие, полезные хитрости

Как настроить оповещения в Zabbix для Telegram

17.03.2024 в 14:05

Как настроить оповещения в Zabbix для Telegram

4 версия ZABBIX позволяла отправлять оповещения в Telegram с помощью сторонних скриптов. Начиная с 5 версии ZABBIX скрипт оповещений о проблемах встроен в систему.

Настроим его.

Для начала нам понадобятся:– Бот Telegram, который будет отправлять сообщения– Группа Telegram, куда бот будет отправлять сообщения

Отправлять оповещения будет бот Телеграм, его разумеется нужно создать. Находим в системе:

@BotFather

и пишем ему сначала:

/start

потом:

/newbot

Вводим имя нового бота два раза, оно должно заканчиваться на bot .

При получении ошибки “ Sorry, this username is invalid. ” попробуйте более длинные или более короткие названия, например test32309588_bot

В ответ получаем token бота, сохраните его:

Бот сохраняется за вашей учеткой, если забыли свой токен, всегда можете написать тому же @BotFather команду /mybots – увидите список ваших ботов в интерактивном меню из которого можно выудить тот самый token.

Создаем группу Telegram, узнаем ID группы Telegram

Далее, создаем группу Телеграмм и не забываем добавить в нее нашего нового бота, иначе он не сможет отправлять в нее сообщения.

Чтобы узнать ID группы Телеграм, нужно добавить в эту группу еще одного бота (после проверки бота можно из группы удалить):

@myidbot

и написать в свою же группу команду

/getgroupid

бот покажет вам ID группы Telegram для отправки уведомлений

Если вы хотите чтобы бот отсылал оповещения в группу, то не забывайте, что ID группы пишется со знаком “ – ” вначале: -7919825427

Проверка отправки сообщений в Telegram непосредственно с сервера

Таким образом, вы имеете API токен для своего бота вида:

1434566953:AAGPIL3BnDrn2HAf9mOHV2Nu7eSsKKE

И вы имеете ID своей группы Telegram вида:

-791982427

Проверим, работают ли уведомления. Для этого заходим на сервер Заббикс по SSH и даем команду:

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

Вместо красного шрифта вставьте ваши данные.

Вам в группу придет сообщение:

Значит, все работает. Прекрасно!

Связанные вопросы и ответы:

1. Как настроить оповещения Zabbix в Telegram

Для начала необходимо создать бота в Telegram и получить его API ключ. Затем на сервере с Zabbix установить утилиту Zabbix Media Scripts и настроить ее для отправки сообщений через Telegram. Далее в Zabbix в разделе "Медиа-типы" добавить новый медиа-тип для Telegram и указать API ключ бота. Наконец, добавить новые действия в Zabbix для отправки оповещений через Telegram.

2. Как проверить работоспособность оповещений Zabbix в Telegram

Для проверки работоспособности оповещений в Telegram можно создать тестовое событие в Zabbix и проверить, придет ли уведомление в Telegram от бота. Также можно проверить логи Zabbix и утилиты Zabbix Media Scripts на предмет ошибок при отправке сообщений.

3. Как настроить фильтрацию оповещений Zabbix в Telegram

Для настройки фильтрации оповещений в Telegram в Zabbix необходимо создать новые условия в действиях для определения, какие события должны отправляться в Telegram. Например, можно настроить отправку сообщений только при возникновении серьезных проблем или при достижении определенного уровня тревожности.

4. Как изменить текст оповещений Zabbix в Telegram

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

5. Как настроить уведомления от конкретного хоста в Zabbix через Telegram

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

6. Как отключить оповещения от Zabbix в Telegram

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

Как подключить Telegram к Zabbix для получения оповещений

Для отправки графиков нам нужен юзер, который будет иметь доступ к API и к графикам нужных хостов в веб-интерфейсе. Скрипт авторизуется в API, получает данные о графике, который привязан к элементу данных в триггере. Если график есть, то авторизуется уже в веб-интерфейсе и дергает сам график. Для этого можно заюзать существующего супер-админа, он имеет доступ ко всему. Но теоретическим не очень безопасно, т.к. его данные для входа будут прописаны в скрипте, а они при определенных обстоятельствах могут утечь. Можно создать для этого обычного юзера с необходимыми правами, но нужно будет ему еще давать права на хосты и группы хостов, что неудобно. Проще всего создать юзера с новой супер-админской ролью, где будут минимальные права и доступ в API только к нужному методу (graph.get). Например, так:

С юзером определились. Теперь нужно определить необходимые переменные в скрипте:

    GRAPHS— включение отправки графиков, тут ставим1; GRAPHS_DIR— полный путь к директории, куда временно будут сохранятся графики (по дефолту пусто, а графики будут сохраняться в директорию/tmp/zbx_graphs; директория для графиков создается автоматически, если её нет; если юзерzabbixне сможет её создать, то получим ошибку при тесте отправки); ZABBIX_URL— полная ссылка к веб-интерфейсу заббикса (например:https://zabbix.site.com); ZABBIX_USER— юзер с доступами к графикам; ZABBIX_PASS— пароль юзера; ZABBIX_COOKIES_LIFETIME— время жизни куки авторизации в заббиксе (время жизни куки устанавливается на 14 дней, но они могут истечь раньше этого времени, а без авторизации не получится дергать графики; по дефолту стоит 30 секунд, т.е. переавторизация будет только при простое получения графиков более 30 сек; можно так и оставить); ZABBIX_COOKIES_PATH— полный путь к файлу куки (по дефолту пусто, а куки будут писаться в директорию скрипта в файл/usr/lib/zabbix/alertscripts/zbx_cookies; файл с куками создается автоматически, если его нет; если юзерне сможет его создать, то получим ошибку при тесте отправки).

Как создать бота в Telegram для оповещений от Zabbix

Для своего, узкого, пользования мы разработали систему омниканальной отправки сообщений. И научили её собирать сообщения в raw-, markdown- и html-форматах для отправки по разным каналам: hpsm, Ivanti, email, Mattermost и Telegram.

Сервис помогает удобно и быстро встраивать уведомления для разных каналов связи в другие системы. Что позволяет в режиме реального времени менять шаблоны сообщений, а также учетные записи и, например, адреса smtp-серверов. Единственная проблема — ещё одна точка отказа для других систем.

Углубляться в систему не будем — лишь выделим интересующий нас API-метод /interact, и назовём его точкой входа. В этот метод мы будем передавать инструкции по сборке и отправке сообщений. Ключевыми параметрами для выполнения запроса будут: список каналов и получателей, набор параметров и «фич», а также нагрузка.  Например, такие:

{ "networks": { "email": { "to": }, "telegram": { "chats": } }, "features": { "x-reply-auto": true }, "payload": { "SUBJECT": "2+2", "DESCRIPTION": "=", "DONE": "5", "KEBAB": "SIUUUUUUUUUU" } }

В системе мы объявляем несколько уровней:

  1. Система. В нём мы определяем токены для интеграции API, указываем пути доставки с адресами, пароли, триггеры и все необходимое.
  2. Триггеры. В них указываются базовые характеристики: имя, ключ доступа, поля, которые необходимо указать в инструкции, их характеристики и модификаторы; способы доставки, которые описывают, по какому каналу, объявленному на уровне системы, необходимо отправить сообщение, и как будет выглядеть само сообщение. Например, поле name имеет тип string, модификатор toUpperCase и так далее.

Финальный API-метод исполнения инструкции отправки выглядит так:/api/v1/trigger_name_or_uid/interact.

Тут может возникнуть вопрос: куда делся первый уровень? Всё просто. Определение системы вшито в токен интеграции API.

Маршрут до оповещения выглядит так:system→ trigger → transport → template. Гдеtransport— канал, по которым мы будем отправлять сообщения, аtemplate— шаблон сообщения по транспорту. На этом моменте мы оставим дальнейшую работу системы под капотом.

Как настроить шаблоны сообщений для оповещений в Telegram

Разберем как настраивать систему оповещений в Zabbix . По-умолчанию в системе Zabbix, предусмотрено несколько видов оповещения событий, это Email , Jabber , SMS .

Рассмотрим как настроить Email оповещения. Заходим на Zabbix-сервер и переходим Администрирование (Administration) — Способы оповещений (Media types). Нажимаем на Email .

В пункте Тип , выбираем Email и заполняем все остальные поля, своими данными. Нажимаем Обновить (Update).

Включим Email уведомления для пользователя. Переходим в Администрирование (Administration) — Пользователи (Users). Входим в пользователя zabbix .

В свойствах пользователя, переходим во вкладку Оповещения (Media) и нажимаем Добавить (Add).

Указываем Тип уведомления Email , вбиваем куда отправлять уведомления, задаем время и дни недели когда отправлять уведомления. Указываем какие уведомления направлять на указанный адрес, отмечаем галочкой Активировано и нажимаем Добавить (Add).

Видим что оповещение для пользователя успешно добавилось. Нажимаем Обновить (Update).

Теперь активируем систему уведомлений. Переходим Настройка (Configuration) — Действия (Actions). Нажимаем на Деактивировано (Deactivated), состояние перейдет в  Активировано (Enabled).

Существуют ли другие каналы оповещений, кроме Telegram, в Zabbix

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

Звуковые уведомления: Вы можете выбрать звук, который будет воспроизводиться при поступлении нового уведомления. Для этого перейдите в настройки приложения и найдите соответствующий раздел. Вы можете выбрать из предложенных звуков или загрузить свой собственный.

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

Уведомления о звонках: Если у вас есть аккаунт уведомлений о звонках в Телеграмме, вы можете настроить уведомления о входящих звонках. Вы можете выбрать звуковой сигнал и настроить поведение уведомления.

Уведомления о группах и каналах: Вы можете настроить, какие уведомления вы хотите получать от групп и каналов, в которых вы участвуете или подписаны. Вы можете выбрать опцию «Всегда» для получения всех уведомлений, «Только упоминания» для получения уведомлений только в случае упоминания вашего имени или «Никогда» для отключения уведомлений.

Ограничение уведомлений: Если вас беспокоит большое количество уведомлений, вы можете настроить ограничение на количество уведомлений, которые будут отображаться. Выберите опцию «Только последнее» или «Не более n уведомлений», где n — это число, которое вы укажете.

Можно ли настроить разные уровни приоритета для оповещений в Telegram

Обновил Zabbix c 5.4 до 6.4 и обнаружил что оповещения Telegram не работают, отображается ошибка — Sending failed: ReferenceError: identifier ‘CurlHttpRequest’ undefined

Как оказалось начиная с 6.2 версии CurlHttpRequest удален и заменен на HttpRequest (ниже выдержка из Update notes к версии 6.2):

The CurlHttpRequest  additional JavaScript object  that was renamed to HttpRequest in Zabbix 5.4, and had been deprecated since, has now been removed.

Что делать, если оповещения в Telegram от Zabbix не приходят

Телеграмм - стандартный мессенджер, сбои в его работе и системе случаются. Иногда уведомления не приходят из-за проблем с приложением, проведения работ на сервере или других сбоев. Восстановить работу оповещений можно в 2-3 клика. Пропуск важного сообщения может обернуться проблемами в работе, учебе или срывом личных планов. Важно всегда держать мессенджер в рабочем состоянии и проверять настройки.

Push-сообщения не приходят по ряду причин. Разбираемся с самыми популярными и смотрим, как их решить.

Если активно пользуетесь мессенджером Телеграмм, зарегистрируйтесь на Хиполинк ! Конструктор предлагает крутые услуги и инструменты для продвинутых юзеров. На сервисе можно создать платежные ссылки для каналов, создать мультимедийные визитки, связать мессенджеры между собой. Также доступны другие услуги, которые выводят работу профиля на новый уровень. Доступ к инструментам бесплатный после регистрации.

Отключены уведомления чата

Телеграмм позволяет отключать оповещения для каждого отдельного чата. Если приложение работает корректно, а в одном чате не приходят уведомления - проверьте функцию "тихий чат". Пошаговая инструкция:

— Запустите Телеграмм.

— Откройте нужный диалог.

— Нажмите на имя контакта.

— Уведомления должны быть включены (ползунок должен быть синим, если серый - активируйте опцию).

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

Отключены все уведомления в меню

Приложение предлагает особенную опцию - отключить все оповещения в настройках. После активации смс приходят без звуков и вибрации. Отключить режим тишины легко в любой момент. Пошаговая инструкция по проверке:

— Откройте мессенджер.

— Зайдите в настройки.

— Выберите опцию "Уведомления и звуки".

— В полях "Чаты", "Группы", "Каналы" должны быть включены все уведомления (если движки серые - активируйте).

В каждой категории можно настроить черный список и ограничения.

Сбой в работе Телеграмма

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

При переустановке важно иметь доступ к номеру телефона аккаунта. Без него восстановить доступ не удастся.

Для восстановления корректной работы рекомендуется сбросить настройки Телеграмм до опции "по умолчанию". Пошаговая инструкция:

— Зайдите в приложение.

— Откройте настройки.

— Зайдите в меню "Уведомления и звуки".

— Пролистайте до конца.

— Сбросьте все настройки уведомлений.

Сбой подключения к интернету

Телеграмм требует стабильного подключения к интернету. Если сигнал Wi-Fi или мобильного интернета слабый - сообщения будут приходить с перебоями. Для проверки качества связи зайдите в интернет на любую страницу. Также рекомендуется проверить скорость соединения интернет. Для этого зайдите на сайт speedtest.

Чтобы ускорить скорость соединения, перезагрузите модем. Затем перезагрузите смартфон или включить и выключите режим полета. Действия помогают восстановить работу интернета. Уведомления продолжают приходить в обычном режиме.

Проведение работ на сервере

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

Как проверить работоспособность оповещений в Telegram в Zabbix


Zabbix умеет отправлять оповещения, используя скрипт. Zabbix отправляет 3 параметра: получатель, тема сообщения, текст сообщения.

создание скрипта

давайте напишем скрипт, который и будет передавать нам информацию из zabbix нашему боту, который в свою очередь будет передавать ее нам:

#!/bin/bash
PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin wget -O /dev/null "http://crierbot.appspot.com/$1/send?message=Subj: $2 || Message:$3"

Где $1 , $2 , $3 переданные Zabbix’ом параметры: получатель, тема сообщения, сообщение.

Данный скрипт сохраняем с произвольным именем, например. telegram.sh в директорию Zabbix’а, где хранятся скрипты уведомлений (в Freebsd по умолчанию это директория:
/usr/local/zabbix32/zabbix/alertscripts/     -       ( Для версии 3.2 )

Делаем наш скрипт исполняемым:

chmod +x /usr/local/zabbix32/zabbix/alertscripts/telegram.sh

Выдаем zabbix права на этот скрипт:

chown zabbix:zabbix /usr/local/zabbix32/zabbix/alertscripts/telegram.sh

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

теперь переходим в веб-интерфейс zabbix’а и переходим по меню: « администрирование » -> « способы оповещения » и нажимаем « создать способ оповещения »

Тут заполняем:

Имя - Произвольное

Тип - Скрипт

Имя скрипта - так, как вы назвали скрипт при его создании

Параметры срипта :

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

И ставим галочку " Активировано "

И нажимаем Добавить (у меня обновить, так как он уже создан у меня)

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

далее заходим в " администрирование " -> " пользователи ". выбираем нашего пользователя и переходим на вкладку "" и нажимаем ""итак, приступим к созданию действия. для этого переходим в "" -> "". справа вверху где "" выбираем" . нажимаем "".