Поиск по сайту

telegram

Интересуешься IT и системным администрированием? Подпишись на наш канал, где мы делимся инсайдами, новостями и практическими советами! Прокачай свои навыки вместе с нами!

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

В последние годы многие администраторы в России столкнулись с одной и той же проблемой — нестабильной работой Telegram. Задержки доставки сообщений, периодические недоступности и общее ухудшение качества соединения делают его не самым надежным каналом для критичных уведомлений мониторинга. А когда речь идет о системе вроде Zabbix, где важна каждая минута, такие риски становятся неприемлемыми.

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

В этой статье разберём, как настроить отправку оповещений из Zabbix в MAX с помощью Webhook — простого, надежного и удобного способа интеграции без лишних скриптов и сложной логики.

Онлайн-курс: Zabbix 6. Мониторинг IT инфраструктуры предприятия.

Курс предлагает глубокое изучение Zabbix 6 и охватывает все ключевые аспекты: от установки и конфигурации до продвинутого мониторинга и автоматизации. Курс подходит как для начинающих, так и для опытных администраторов.

Создание бота в MAX и получение токена

Для отправки уведомлений из Zabbix в MAX нам понадобится чат-бот. Именно от имени этого бота Zabbix будет отправлять сообщения о проблемах и восстановлении сервисов.

Важно учитывать особенности платформы: на текущий момент создание чат-ботов в MAX доступно только для юридических лиц и индивидуальных предпринимателей. Физические лица без верифицированной организации не смогут получить доступ к API и создать бота. Поэтому, если у вас нет собственной организации, потребуется воспользоваться доступом коллег или корпоративной учётной записью.

После получения доступа необходимо перейти на платформу разработчиков MAX и открыть раздел Чат-боты. Далее нажмите кнопку Создать и заполните базовую информацию:

  • название бота;
  • описание (по желанию);
  • аватар (опционально).

После создания бот становится доступен для дальнейшей настройки. В рамках одной организации можно создать несколько ботов (обычно до 5 чат-ботов), что позволяет разделять их по задачам — например, отдельный бот для мониторинга, отдельный для уведомлений пользователей и т.д.

Следующий шаг — получение токена. Для этого:

  1. Откройте созданного бота;
  2. Перейдите во вкладку Интеграция;
  3. Нажмите Получить токен;
  4. Скопируйте полученное значение.

Токен представляет собой строку примерно следующего вида:


eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJib3QiLCJpYXQiOjE3MDAwMDAwMDB9.XyZ123ExampleTokenPartAbc456

Этот токен используется для авторизации при отправке сообщений через API MAX. В дальнейшем мы укажем его в настройках Webhook в Zabbix.

Важно: токен — это конфиденциальная информация. Он даёт полный доступ к управлению ботом через API, поэтому:

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

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

Создание чата в MAX и добавление бота

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

Создание чата

Откройте приложение MAX и создайте новый чат:

  • нажмите + и выберите пункт меню Создать группу;
  • при необходимости добавьте участников (администраторов, инженеров и т.д.);
  • укажите название, например: Zabbix Monitoring или Zabbix Alerts;
  • При желании установите аватарку.
Добавление бота в чат

После создания чата необходимо добавить в него ранее созданного бота:

  1. Откройте чат и нажмите по его названию;
  2. Выбирите пункт Участники
  3. Нажмите Добавить участника;
  4. Найдите вашего бота по имени, к примеру Zabbix;
  5. Добавьте его в чат.
Важный момент

После добавления бота обязательно отправьте в чат любое сообщение, например: test

Это необходимо для того, чтобы чат появился в API MAX и бот «увидел» его. Без этого шага дальнейшая настройка может не сработать.

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

Получение chat_id для отправки сообщений

После создания чата и добавления в него бота необходимо получить chat_id — уникальный идентификатор чата, который используется при отправке сообщений через API MAX. Без него Zabbix не сможет понять, куда именно отправлять уведомления.

Как получить chat_id

Получение chat_id выполняется через API MAX. Для этого можно воспользоваться PowerShell, curl или любым HTTP-клиентом.

Вариант для Windows

В PowerShell используйте следующую команду:


Invoke-WebRequest -Uri "https://platform-api.max.ru/chats" `
  -Headers @{Authorization="ВАШ_ТОКЕН"}

Чтобы вывести только содержимое ответа (JSON), используйте:


(Invoke-WebRequest -Uri "https://platform-api.max.ru/chats" `
  -Headers @{Authorization="ВАШ_ТОКЕН"}).Content

Вариант для Linux / macOS

curl -X GET "https://platform-api.max.ru/chats" \
  -H "Authorization: ВАШ_ТОКЕН"

В ответ вы получите JSON со списком чатов, где присутствует бот:


StatusCode        : 200
StatusDescription : OK
Content           : {"chats":[{"chat_id":-73905479971513,"type":"chat","status":"active","title":"Zabbix Monitoring","i
                    con":{"url":"https://i.oneme.ru/i?r=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJib3QiLCJpYXQiOjE3MDAwMDAwMDB9.XyZ123ExampleTokenPartAbc456
                    MW...
RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    Vary: Accept-Encoding
...

Из ответа нам потребуется значение: chat_id

В данном примере: -73905479971513

Обратите внимание: у групповых чатов chat_id обычно начинается с минуса (-) — это нормально, его нужно указывать полностью.

Возможные проблемы

Если список чатов пустой или нужный чат не отображается

  • убедитесь, что бот добавлен в чат;
  • проверьте, что в чат было отправлено хотя бы одно сообщение;
  • повторите запрос через API.

Настройка Webhook в Zabbix для отправки уведомлений в MAX

После того как у нас есть токен бота и chat_id, можно переходить к настройке отправки уведомлений из Zabbix. Мы будем использовать встроенный механизм Webhook, который позволяет отправлять HTTP-запросы без использования внешних скриптов.

Создание Media type

Откройте в Zabbix:

Alerts → Media types

Нажмите Create media type и заполните параметры:

  • Name: MAX
  • Type: Webhook
Настройка параметров

В блоке Parameters добавьте следующие параметры:

  • Token: ВАШ_ТОКЕН
  • ChatId: ВАШ_CHAT_ID
  • Subject: {ALERT.SUBJECT}
  • Message: {ALERT.MESSAGE}
  • Severity: {EVENT.SEVERITY}

Параметр Severity мы используем дополнительно для обработки уровня важности внутри скрипта.

Настройка скрипта Webhook

В поле Script вставьте следующий код:


try {
    var params = JSON.parse(value);

    if (!params.Token) {
        throw 'MAX webhook error: Token is empty.';
    }

    if (!params.ChatId) {
        throw 'MAX webhook error: ChatId is empty.';
    }

    // Перевод уровня важности
    var severityMap = {
        "Not classified": "⚪ Не классифицировано",
        "Information": "🔵 Информация",
        "Warning": "🟡 Предупреждение",
        "Average": "🟠 Средняя",
        "High": "🔴 Высокая",
        "Disaster": "💥 Авария",

        "Не классифицировано": "⚪ Не классифицировано",
        "Информация": "🔵 Информация",
        "Предупреждение": "🟡 Предупреждение",
        "Средняя": "🟠 Средняя",
        "Высокая": "🔴 Высокая",
        "Авария": "💥 Авария"
    };

    var severity = params.Severity || '';
    var severityText = severityMap[severity] || severity;

    var subject = params.Subject || '';
    var message = params.Message || '';

    if (severity) {
        subject = subject.replace(severity, severityText);
        message = message.replace(severity, severityText);
    }

    var text = '';
    if (subject) {
        text += subject + '\n';
    }
    if (message) {
        text += message;
    }

    var url = 'https://platform-api.max.ru/messages?chat_id=' + encodeURIComponent(params.ChatId);

    var payload = JSON.stringify({
        text: text,
        format: "html"
    });

    var req = new HttpRequest();
    req.addHeader('Content-Type: application/json');
    req.addHeader('Accept: application/json');
    req.addHeader('Authorization: ' + params.Token);

    var response = req.post(url, payload);
    var status = req.getStatus();

    Zabbix.log(4, '[MAX webhook] HTTP status: ' + status);
    Zabbix.log(4, '[MAX webhook] Response: ' + response);

    if (status < 200 || status >= 300) {
        throw 'MAX webhook error: HTTP ' + status + '. Response: ' + response;
    }

    return 'OK';
}
catch (error) {
    Zabbix.log(3, '[MAX webhook] Failed: ' + error);
    throw 'Sending failed: ' + error;
}

После добавления скрипта, нажимаем кнопку Add

Проверка Webhook

После сохранения Media type можно выполнить тест:

  1. Найдите созданный тип MAX;
  2. Нажмите Test;
  3. И ещё раз нажмите Test

Важно: Для работы Webhook сервер Zabbix должен иметь доступ в интернет по порту TCP 443, до адреса: https://platform-api.max.ru

Если всё настроено правильно, сообщение появится в чате MAX.

Настройка шаблонов сообщений (Problem и Recovery)

После настройки Webhook в Zabbix необходимо определить, какие именно сообщения будут отправляться в MAX при возникновении проблемы и её устранении. Для этого используются шаблоны сообщений (Message templates), которые позволяют гибко управлять содержимым уведомлений.

Откройте ранее созданный Media type: Alerts → Media types → MAX

Перейдите во вкладку Message templates и добавьте два шаблона:

  • для события Problem (возникновение проблемы);
  • для события Problem recovery (восстановление).
Шаблон для Problem

Нажмите Add и заполните:

Message type: Problem

Subject:

Message:

Шаблон для Recovery

Добавьте второй шаблон:

Message type: Recovery

Subject:

Message:

 

На данном этапе у вас:

  • настроены шаблоны уведомлений для проблем и восстановления;
  • сообщения имеют удобный и читаемый формат;
  • используется единый стиль оформления.

Теперь осталось привязать способ уведомлений к пользователю и настроить действия (Actions), чтобы сообщения начали отправляться автоматически.

Настройка пользователя и способа оповещений в Zabbix

После настройки Webhook и шаблонов сообщений необходимо указать, кому именно Zabbix будет отправлять уведомления. В Zabbix это реализуется через пользователей и их способы оповещений (Media).

Перейдите в раздел Administration → Users

Вы можете:

  • использовать существующего пользователя (например, администратора);
  • или создать отдельного пользователя под уведомления (например, max.bot).

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

Откройте нужного пользователя и перейдите во вкладку Media, затем нажмите Add.

Заполните параметры:

  • Type: MAX (тот Media type, который мы создали ранее)
  • Send to: любое значение, например: max. (Для Webhook это поле формальное и не используется)
  • When active: 1-7,00:00-24:00. (Уведомления круглосуточно).
  • Use if severity: отметьте все уровни (или только нужные). Обычно оставляю только уведомления с уровнями серьёзности Высокий и Катастрофа.
  • Enabled: включено

Сохраните настройки.

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

Zabbix всегда отправляет оповещения конкретным пользователям или группам пользователей.

Рекомендации
  • Если у вас уже настроены уведомления в Telegram или другие каналы — можно оставить их как резервный способ.
  • Один пользователь может иметь сразу несколько способов оповещений (например, Telegram + MAX).

Создание Action для отправки уведомлений

На предыдущих этапах мы настроили Webhook, шаблоны сообщений и указали пользователю способ оповещений. Теперь необходимо определить когда и при каких условиях Zabbix должен отправлять уведомления. За это отвечает механизм Actions.

Перейдите в раздел: Alerts → Actions → Trigger actions

Нажмите Create action.

Основные настройки

Во вкладке Action задайте:

  • Name: Send to MAX
  • Conditions: Если вы хотите получать уведомления по всем событиям — оставьте условия пустыми. Если необходимо ограничить отправку (например, только для High/Disaster или определённых хостов), здесь можно задать фильтры.
Настройка отправки при проблеме

Перейдите во вкладку Operations и нажмите Add.

Заполните:

  • Operation type: Send message
  • Send message to user groups: выберите пользователя или группу, которым вы добавили способ оповещений MAX
  • Send only to: MAX

Сохраните операцию.

Настройка отправки при восстановлении

Перейдите во вкладку Recovery operations и нажмите Add.

Заполните аналогично:

  • Send message to user groups: тот же пользователь или группа
  • Send only to: MAX

Сохраните.

При необходимости

Если Action настроен, но уведомления не приходят:

  • проверьте, есть ли у пользователя настроенный Media type;
  • убедитесь, что условия Action выполняются;
  • проверьте журнал уведомлений в разделе: Reports → Notifications

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

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

Наиболее корректный способ — проверить отправку через настоящий триггер.

Например, можно временно сгенерировать проблему и остановить службу Zabbix:

Windows:


net stop "Zabbix Agent"

Linux:


systemctl stop zabbix-agent

Через некоторое время (обычно 1–2 минуты) в Zabbix сработает триггер, и вы должны получить уведомление в MAX.

Проверка восстановления

После этого верните сервис обратно:

Windows:


net start "Zabbix Agent"

Linux:


systemctl start zabbix-agent

После восстановления состояния вы получите второе сообщение — о том, что проблема устранена.

Если уведомления не приходят, проверьте:
  1. Есть ли событие в Zabbix: Monitoring → Problems
  2. Журнал отправки уведомлений: Reports → Notifications
  3. Логи сервера Zabbix: tail -f /var/log/zabbix/zabbix_server.log
Частые проблемы
  • сервер Zabbix не имеет доступа к platform-api.max.ru (порт 443);
  • неверный Token или ChatId;
  • пользователь не имеет настроенного Media type;
  • Action настроен некорректно или не срабатывает по условиям.

Заключение

В этой статье мы пошагово разобрали настройку отправки уведомлений из Zabbix в мессенджер MAX — от создания бота и получения токена до настройки Webhook, шаблонов сообщений и правил отправки.

На практике такой подход позволяет получить:

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

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

MAX в данном сценарии выступает как полноценная альтернатива Telegram для корпоративных уведомлений — особенно в условиях, когда стабильность и скорость доставки сообщений критически важны.

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

Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как массово добавить хосты в Zabbix из Excel через API.

Интересуешься IT и системным администрированием? Подпишись на SysAdminHub в Телеграмм или Макс, чтобы узнавать обо всем первым!

Комментарии (4)

This comment was minimized by the moderator on the site

На май 2026 все работает, спасибо!!
chat_id или user_id можно взять так же просто с url строки, зайти в группу через web, и найти https://web.max.ru/-73257***********

  Константин
This comment was minimized by the moderator on the site

Всем привет ! У меня бот отправляет уведомления только мне , но другие участники группы их не видят , кто нибудь сталкивался с таким ?

  Механиков Сергей Олегович
This comment was minimized by the moderator on the site

JwKmfqNnOtBexrRQS

  AojsFNNrqIygRebDlKSni
This comment was minimized by the moderator on the site

Ну вы и пидрилы со своим Max ом..никаких принципов

  Telegram
Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

0 Значки
Вложения (0 / 5)
Поделитесь своим местоположением