Как отправить уведомления из Zabbix 5.0 в мессенджер MAX
Что понадобится:
- Аккаунт организации или ИП с созданным ботом
- Токен от чат бота #MAX
- Узнать ChatID
- Добавить скрипт #JavaScript уведомления
- Настроить уведомления для пользователя
Получаем токен бота MAX
https://business.max.ru/self/services
Узнаем ChatID
Делаем запрос к API MAX: https://platform-api.max.ru/chats
Через расширение браузера

Через консоль Linux
curl -X GET "https://platform-api.max.ru/chats" \ -H "Authorization: <token>"
Добавляем скрипт уведомления MAX в Zabbix
Переходим в Administration -> Configuration -> Media types -> Create media types
Max messenger

В поле Scripts подставляем:
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 CurlHttpRequest();
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.Status();
//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 + '.';
}Message templates

Настроить уведомления пользователю
Administration -> Configuration -> Users -> <Ваш пользователь>
Вкладка «Media» -> Add


Кнопка «Update»
Готово.
Have fun!