TL;DR: Telegram заблокирован, уведомления из Zabbix не доходят. Пошаговый гайд: как интегрировать мессенджер Max вместо Telegram. Скрипт вебхука внутри.


Введение

Дисклеймер: На момент написания статьи (Март 2026 года) Telegram заблокирован на территории РФ. Многие компании вынуждены искать альтернативы для рабочих чатов и систем уведомлений.

Раньше всё было просто: Zabbix → Telegram-бот → уведомление в чат. Удобно, бесплатно, работает. Но после блокировки мессенджера эта схема перестала быть надёжной: VPN отваливается, корпоративная политика запрещает обход блокировок, а команда остаётся без критически важных уведомлений.

Нужно было решение, которое:

  • Работает без VPN на территории РФ

  • Имеет стабильный API для интеграций

Выбор пал на Max. В этой статье покажу, как я заменил Telegram на Max в связке с Zabbix 7. Официальная документация местами озадачила, поэтому я опишу путь, который оказался проще и привёл к рабочему результату.


Почему именно Max?

Честно — мы не проводили глубоких сравнительных исследований. Главным критерием было время.

Уведомления нужны были «вчера», а Telegram перестал быть надёжным каналом. Смотрели на три варианта:

Вариант

Почему не подошёл

Mattermost / Rocket.Chat

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

VK WorkSpace

Потребовал бы долгих согласований доступа к API и интеграции с корпоративным порталом.

Почта / SMS

Работает, но медленно. Для критических алертов не подходит.

С SMS вообще отдельная история

Max подошёл как «коробочное» решение:

  • Российская юрисдикция

  • Облачная платформа (не нужно поднимать и поддерживать сервера)

  • Есть HTTP API для ботов (можно интегрировать без костылей)

Это позволило сосредоточиться на самой интеграции с Zabbix, а не на развёртывании и поддержке мессенджера.

Итог: выбрали не потому что «лучший», а потому что быстро внедрить и забыть.

Что понадобится:

  1. Доступ к платформе Max.

  2. Токен бота для авторизации в API.

  3. Доступ к веб-интерфейсу Zabbix 7.x.


Шаг 1: Получение токена бота

Честно: моим путём вы бота не получите по этому я не буду тут рассказывать как я его раздобыл.

Но токен можно получить официально:

- Через VK Business (платформа Max интегрирована с экосистемой VK)

- Только для юридических лиц и организаций

- После подачи заявки и модерации

> ? Если вы частное лицо или небольшая команда: возможно, стоит рассмотреть альтернативы или использовать промежуточный webhook-прокси.

Что вам нужно в итоге: строка токена для авторизации в заголовке Authorization. Без этого дальнейшая настройка не имеет смысла.


Шаг 2: Определяем Chat ID получателя

Max в веб-версии использует числовые идентификаторы чатов и пользователей. Чтобы узнать ID чата, в который бот будет отправлять сообщения:

  • Откройте нужный чат в веб-интерфейсе Max.

  • Посмотрите на адресную строку браузера:

    https://web.max.ru/123456

    Число после / (в примере 123456) — это и есть Chat ID.

Запишите его — он понадобится при привязке медиа-типа к пользователю в Zabbix.


Шаг 3: Создание Media Type в Zabbix

Переходим в веб-интерфейс Zabbix:

  1. AlertsMedia typesCreate media type.

  2. Name: Max Messenger

  3. Type: Webhook

  4. Переходим на вкладку Webhook.

Скрипт отправки

В поле Script вставляем JavaScript-код. Я уже учёл все подводные камни (авторизация, формат запроса), так что можно копировать:

var MaxMessenger = {
    apiUrl: null,
    token: null,
    to: null,           // chat_id или user_id
    message: null,
    subject: null,
    proxy: null,
    isUser: false,      // true = отправляем пользователю, false = в чат

    sendMessage: function () {
        //Формируем URL с параметром получателя
        var param = MaxMessenger.isUser ? 'user_id' : 'chat_id';
        var url = MaxMessenger.apiUrl + '/messages?' + param + '=' + encodeURIComponent(MaxMessenger.to);

        //Тело запроса
        var payload = {
            text: (MaxMessenger.subject ? MaxMessenger.subject + '\n' : '') + MaxMessenger.message
        };

        var request = new HttpRequest();
        var data = JSON.stringify(payload);

        if (MaxMessenger.proxy) {
            request.setProxy(MaxMessenger.proxy);
        }

        // Заголовки
        request.addHeader('Content-Type: application/json; charset=utf-8');
        request.addHeader('Accept: application/json');
        request.addHeader('Authorization: ' + MaxMessenger.token);  // Без "Bearer"!

        // Логирование
        Zabbix.log(4, '[Max] POST ' + url);
        Zabbix.log(4, '[Max] Body: ' + data);

        var response = request.post(url, data);
        var status = request.getStatus();
        
        Zabbix.log(4, '[Max] HTTP ' + status + ' | Response: ' + response);

        if (status >= 200 && status < 300) {
            return 'OK';
        } else {
            throw 'HTTP ' + status + ': ' + response;
        }
    }
};

try {
    var params = JSON.parse(value);
    
    // Проверка обязательных параметров
    ['ApiUrl', 'Token', 'To', 'Subject', 'Message'].forEach(function(p) {
        if (!params[p]) throw 'Parameter "' + p + '" is missing';
    });

    MaxMessenger.apiUrl = params.ApiUrl;
    MaxMessenger.token = params.Token;
    MaxMessenger.to = params.To;
    MaxMessenger.subject = params.Subject;
    MaxMessenger.message = params.Message;
    
    // Опционально: флаг отправки пользователю (по умолчанию — чат)
    if (params.IsUser && params.IsUser.toLowerCase() === 'true') {
        MaxMessenger.isUser = true;
    }

    MaxMessenger.sendMessage();
    return 'OK';
}
catch (error) {
    Zabbix.log(4, '[Max ERROR] ' + error);
    throw 'Sending failed: ' + error + '.';
}

Шаг 4: Настройка параметров (Parameters)

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

Name

Value

Описание

ApiUrl

https://platform-api.max.ru

Базовый URL API

Token

Token

Токен бота


Заключение

Интеграция Max Messenger с Zabbix — задача решаемая, и после правильной настройки вы получаете стабильный канал уведомлений, не зависящий от блокировок и VPN.

Что важно запомнить:

  • Токен бота общий для всех, Chat ID индивидуальный.

  • Скрипт вебхука легко адаптируется под особенности вашего API.

  • Всегда включайте логирование на этапе отладки.

  • Проверяйте связку через curl перед настройкой в Zabbix.

Надеюсь, этот гайд сэкономит вам несколько часов поиска и экспериментов.

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


  1. fedorovAleks
    20.03.2026 08:25

    Пример интересный. Смущает разнообразие правок на случай ошибок. Это код не протестирован или в max так часто API меняется, что нужно постоянно запрос подстраивать?

    И , по моему мнению, регистрация ботов только для юрлиц и обязательная модерация - убивают всю пользу от самого механизма ботов.


    1. ROLF Автор
      20.03.2026 08:25

      Код протестирован, но Макс постоянно что то правит по этому и столько правок

      У нас юр лицо, и бот можно сказать наш но от части, он нашего учредителя


    1. Miller777
      20.03.2026 08:25

      Только для юридических лиц и организаций

      За статью спасибо, на этом месте физлица понимают, что эта история не про них.

      У меня весь колхоз-мониторинг через Telegram работает. Надо еще почту прикрутить для алертов, надеюсь до нее доберутся не скоро. /s


    1. BigD
      20.03.2026 08:25

      http://ntfy.sh и не нужен Мах


  1. duronus
    20.03.2026 08:25

    Простите, но есть xmpp, email, позвонить, зачем вообще встраивать никамуне нужное поделие. Я лучше смс перейду чем буду иметь дело с max


    1. sdramare
      20.03.2026 08:25

      А смс еще разрешены?


      1. duronus
        20.03.2026 08:25

        ахах, даа, ну вроде их читать может даже ленивый, поэтому пока работают, правда нужно gsm шлюз делать или kannel настраивать


  1. ZVEZDO4ETik
    20.03.2026 08:25

    Вот так вот и сдают страну


    1. NewGrafon
      20.03.2026 08:25

      Ага, согласен((


  1. Squoworode
    20.03.2026 08:25

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

    Всё равно ж интересно, что за способ


    1. Lucky715
      20.03.2026 08:25

      Записался как разработчик или тестировщик, ну или на гуглил, сейчас через публичные диалоги с ИИ что только не утекает...


  1. CEP-BEP
    20.03.2026 08:25

    Не работает


    1. ROLF Автор
      20.03.2026 08:25

      В коде ни чего править не нужно, все настройки задайте так


      1. CEP-BEP
        20.03.2026 08:25


    1. ROLF Автор
      20.03.2026 08:25

      Я правда не тестировал его с групповыми чатами, но попозже проверю


      1. CEP-BEP
        20.03.2026 08:25


  1. ronkajitsu
    20.03.2026 08:25

    Достаточно небольшой список для рассмотрения альтернатив. Не смотрели в сторону yandex messenger? Позиционируют они себя как решение для бизнеса. API есть. Ну и как бы кто не смотрел на яндекс, кажется это будет постабильнее непонятной поделки. Главный критерий - время, а значит доступность и понятность документации в приоритете. А про него вроде где-то видел регулярно гоняют рекламу, так что какая-то известность вероятно есть.


    1. ROLF Автор
      20.03.2026 08:25

      Если честно я о нем даже не подумал, посмотрю по позже его апи


    1. ulovka22
      20.03.2026 08:25

      Нужна подписка на Яндекс 360, причем не самая дешёвая. Самая дешёвая ботов не поддерживает


  1. Grand_piano
    20.03.2026 08:25

    https://github.com/sergey-akhmineev/MAX-media-type-for-zabbix

    Просто оставлю это здесь...


  1. 13werwolf13
    20.03.2026 08:25

    > как заменить в zabbix транспорт уведомлений с telegram на max
    >> никак, токен не дадут смертному


    1. ROLF Автор
      20.03.2026 08:25

      Тут я с вами согласен, дело не очень простое


      1. 13werwolf13
        20.03.2026 08:25

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


  1. Dimon41
    20.03.2026 08:25

    Vk worspace не подошёл по тому, что надо согласовывать, а макс подшёл потому, что его так просто не дадут и не скажу где взял. А вдруг и юрикам долго согласовывать?


    1. ROLF Автор
      20.03.2026 08:25

      В моем случае у меня было быстрее и проще получить доступ к максу


  1. delaf
    20.03.2026 08:25

    Я так и не понял нахрена , если вам для локальной работы, зачем что-то ставить глобальное?


  1. Zar1n
    20.03.2026 08:25

    Mattermost и его аналоги ? И никакого макса.


  1. MrSokol
    20.03.2026 08:25

    Чел работает в скаме и пиарит сервис. Да я лучше дохлыми голубями уведомления буду слать...


    1. andreyzaostrovnykh
      20.03.2026 08:25

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


  1. NAI
    20.03.2026 08:25

    Telegram заблокирован, уведомления из Zabbix не доходят. Пошаговый гайд: как интегрировать мессенджер Max 

    Можно, но зачем, если есть gotify, ntfy? Бесплатно, self-hosted, никто не отключит по велению ркн.

    Но токен можно получить официально:

    - Только для юридических лиц и организаций

    Это основная претензия к максу. Ради уведомлений от датчиков воды надо ИП регать. Ну зашибись. Хочешь сделать два канала - один для уведомлений о заказах, второй для dev - лососни тунца.


  1. GidraVydra
    20.03.2026 08:25

    Меня не интересует "как?", меня интересует "зачем?".


  1. BigD
    20.03.2026 08:25

    Написал выше уже про https://ntfy.sh


    1. BigD
      20.03.2026 08:25

      Ну и на apprise рекомендую взглянуть.