Настройка уведомлений Zabbix: Telegram, Push и Matrix

Проблема

Электронная почта как единственный канал оповещений о критических событиях в Zabbix давно перестала устраивать системных администраторов. Письмо может затеряться в спаме, задержаться на перегруженном почтовом сервере или просто остаться незамеченным в нерабочее время. Современные реалии требуют мгновенных уведомлений в мессенджеры и push-сообщений на мобильные устройства, чтобы дежурный администратор мог среагировать на инцидент в течение минуты, а не часа. Настройка уведомлений Zabbix для Telegram, Matrix и push-каналов решает эту проблему, позволяя доставлять алерты прямо в руки ответственным специалистам. В этой статье мы настроим три наиболее востребованных способа оповещения, каждый из которых закрывает определённый сценарий: Telegram для оперативного информирования в корпоративном мессенджере, Matrix для федеративных сред с собственным сервером, и push-уведомления через официальное приложение Zabbix или Pushover для максимальной надёжности.

Решение

Используем штатные возможности Zabbix по созданию пользовательских типов оповещений (Media types). Для каждого канала будет создан отдельный медиатип с собственным скриптом или вебхуком, после чего пользователям назначаются соответствующие методы доставки. Процесс описан в официальной документации Zabbix: Media typesTelegram integrationMatrix integration и Pushover integration. Для push-уведомлений также может использоваться встроенное мобильное приложение Zabbix, которое не требует дополнительных скриптов, а работает через прямое подключение к серверу.

Пошаговая инструкция

Шаг 1. Настройка Telegram-уведомлений

Telegram самый популярный мессенджер среди администраторов благодаря простоте API и удобству использования.

1.1. Создание бота и получение токена

  1. В приложении Telegram найдите бота @BotFather и выполните команду /newbot.
  2. Следуйте инструкциям: задайте имя (например, Company Zabbix Bot) и username (должен заканчиваться на bot, например company_zabbix_bot).
  3. После создания вы получите HTTP API Token вида 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Сохраните его.

1.2. Получение chat_id получателей

Каждый пользователь, который должен получать уведомления, должен написать боту любое сообщение. Затем администратор может получить chat_id пользователя, выполнив запрос:

bash

curl -s "https://api.telegram.org/bot<TOKEN>/getUpdates"

В ответе JSON найдите "chat":{"id":123456789} и запишите этот ID.

1.3. Создание медиатипа в Zabbix

  1. В веб-интерфейсе Zabbix перейдите в Administration → Media types и нажмите Create media type.
  2. Заполните поля:
    • Name: Telegram
    • Type: Webhook
    • Parameters: добавьте следующие параметры (все с типом String):
      • token значение токена бота.
      • chat_id  оставьте пустым, оно будет подставляться из профиля пользователя.
      • message — {ALERT.MESSAGE}
    • Script: выберите один из готовых шаблонов для Telegram (Zabbix 6.0+ идёт с предустановленным шаблоном, достаточно выбрать Telegram из списка). Если его нет, загрузите с Zabbix Integrations.
  3. Нажмите Add.

1.4. Назначение метода оповещения пользователю

  1. Перейдите в Administration → Users, выберите нужного пользователя.
  2. На вкладке Media нажмите Add.
  3. Type: Telegram.
  4. Send to: укажите chat_id получателя (число из п.1.2).
  5. Отметьте, для каких категорий событий (Alarms, Recovery и т.д.) и в какое время отправлять.

Шаг 2. Настройка push-уведомлений через официальное приложение Zabbix

Официальное мобильное приложение Zabbix (доступно в Google Play и App Store) поддерживает прямые push-уведомления без сторонних сервисов.

  1. Убедитесь, что сервер Zabbix доступен из интернета по HTTPS (или хотя бы HTTP для внутренней сети).
  2. В приложении добавьте сервер Zabbix, войдите под своей учётной записью.
  3. В профиле пользователя в веб-интерфейсе Zabbix автоматически добавится новый медиатип  Zabbix push. Проверьте, что он активен.
  4. Push-уведомления начнут приходить автоматически при срабатывании триггеров, если для пользователя настроены действия (Actions).

Для административных целей можно также настроить push-уведомления через Pushover, что даёт больше гибкости. Инструкция: Zabbix Pushover integration. Процесс аналогичен Telegram: регистрируете приложение в Pushover, получаете API-токен и user key, создаёте медиатип webhook.

Шаг 3. Настройка Matrix-уведомлений

Matrix федеративный протокол для децентрализованных коммуникаций, часто используемый в enterprise-среде с собственным сервером (Synapse, Element). Интеграция Zabbix с Matrix позволяет отправлять алерты в комнаты (rooms).

3.1. Создание пользователя-бота в Matrix

  1. Зарегистрируйте отдельного пользователя (бота) на вашем Matrix-сервере, например @zabbixbot:yourcompany.com.
  2. Получите токен доступа (access token) любым Matrix-клиентом (например, через Element Web/Desktop в настройках аккаунта → Разработчик → Токен доступа). Или выполните вход через API:

bash

curl -XPOST -d '{"type":"m.login.password","user":"zabbixbot","password":"secret"}' "https://matrix.yourcompany.com/_matrix/client/r0/login"

Из ответа сохраните access_token.

3.2. Создание комнаты и определение её ID

  1. Создайте комнату для уведомлений (например, #zabbix-alerts:yourcompany.com) и пригласите в неё бота.
  2. Узнайте её внутренний ID (комната может иметь отображаемое имя, но для API нужен ID вида !abcdefg:yourcompany.com). Используйте API запрос списка комнат с полученным токеном:

bash

curl -H "Authorization: Bearer <ACCESS_TOKEN>" "https://matrix.yourcompany.com/_matrix/client/r0/joined_rooms"

3.3. Создание медиатипа в Zabbix

  1. В Administration → Media types создайте новый тип.
  2. Name: Matrix
  3. Type: Webhook
  4. Параметры:
    • homeserver_url -URL вашего Matrix-сервера.
    • access_token — токен, полученный в п.3.1.
    • room_id — ID комнаты (подставляется из профиля пользователя или жёстко задаётся).
    • message — {ALERT.MESSAGE}.
  5. Используйте готовый скрипт из репозитория Zabbix (раздел Matrix) или напишите свой простой вебхук, отправляющий POST-запрос к API Matrix /send/m.room.message. Официальная документация: Matrix media type.

3.4. Назначение пользователям

Аналогично Telegram, в профиле пользователя добавьте медиатип Matrix, укажите в поле Send to ID комнаты. Несколько комнат можно разделять запятой.

Шаг 4. Проверка работы уведомлений

  1. Создайте тестовый триггер (например, на контроле пинга), при срабатывании которого должно отправляться оповещение.
  2. Убедитесь, что настроены Actions (Configuration → Actions), включающие отправку уведомлений для соответствующих проблем.
  3. Активируйте триггер (отключите пингуемый хост) и наблюдайте за поступлением сообщений в Telegram, Matrix и push-каналы.

Устранение распространённых проблем

СимптомВероятная причинаРешение
Уведомления Telegram не приходятНеправильный chat_id или бот не написал пользователю первымПроверьте chat_id через getUpdates. Убедитесь, что пользователь отправил боту хотя бы одно сообщение.
В Matrix-уведомлениях ошибка 403 ForbiddenНеверный access_token или недостаточно прав у ботаПроверьте токен в клиенте. Убедитесь, что бот состоит в комнате и имеет права на отправку сообщений.
Push-уведомления на мобильное приложение Zabbix не доходятНе настроен доступ сервера к интернету для Firebase/Zabbix Cloud или не включено фоновое обновлениеПроверьте, что сервер Zabbix может обращаться к fcm.googleapis.com (для Android) и *.push.apple.com (для iOS). В приложении выйдите и зайдите заново.
В Telegram приходят кракозябры вместо кириллицыПроблемы с кодировкой скриптаУбедитесь, что в параметрах вебхука для Telegram не происходит двойной конвертации UTF-8. Используйте встроенный шаблон Telegram из дистрибутива Zabbix.
Дублирование уведомленийНастроены несколько медиатипов с одинаковыми событиямиПроверьте действия (Actions), отключите лишние операции отправки.

Итог

Настройка уведомлений Zabbix через Telegram, Matrix и push-каналы превращает мониторинг в действительно проактивный инструмент, позволяя администраторам узнавать об инцидентах в реальном времени, где бы они ни находились. Комбинация из публичного мессенджера, федеративного Matrix и прямых push-уведомлений закрывает все возможные сценарии: оповещение в общей группе, надёжные уведомления на мобильный телефон и интеграция с корпоративным коммуникационным сервером. Единожды настроив эти каналы, вы существенно повысите скорость реакции на сбои и сократите среднее время восстановления сервисов (MTTR). Не забывайте тестировать уведомления после каждого обновления Zabbix и периодически проверять актуальность токенов это гарантирует, что алерты дойдут до адресатов тогда, когда это действительно важно.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Популярные
Новые Старые

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Menu