#!/bin/bash ACCESS_TOKEN="s9SSssS0sSSSss4sSsS0Ssss6SsssSs501SsSsSSSSsSsSss7SsSSsSssSsSsSs9sssS2SSSs_1s_0s5s7S5" CHAT_ID="-55555555555555" SUBJECT="$1" MESSAGE="$2" echo "$(date): Скрипт ЗАПУЩЕН" >> /tmp/max_debug.log # Экранируем для JSON БЕЗОПАСНО TEXT=$(echo -e "$SUBJECT\n\n$MESSAGE" | jq -sR .) curl -sS -w "HTTP%{http_code}" -X POST \ "https://platform-api.max.ru/messages?chat_id=${CHAT_ID}" \ -H "Authorization: ${ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ --data-binary "{\"text\":${TEXT}}" \ -o /tmp/curl_response.html 2>/tmp/curl_error.log RESPONSE_CODE="${?}" echo "$(date): RESPONSE: $RESPONSE_CODE" >> /tmp/max_debug.log -------------------------------------------------------------------------------------------------------------------------------------------------------------- chmod +x /usr/lib/zabbix/alertscripts/*.sh chown zabbix:zabbix /usr/lib/zabbix/alertscripts/*.sh -------------------------------------------------------------------------------------------------------------------------------------------------------------- Имя: MAX Тип: Скрипт Имя скрипта: max_notify.sh Параметры: {EVENT.NAME} {ALERT.MESSAGE} Активировано ✅ Шаблоны сообщений: 1. Тип сообщения: Проблема Тема: ❗️Появилась проблема❗️ Сообщение: ⬇ • Проблема возникла {EVENT.DATE} в {EVENT.TIME} • На устройстве: {HOST.NAME} • {HOST.DESCRIPTION} • {EVENT.NAME} • ID проблемы: {EVENT.ID} - {TRIGGER.URL} 2. Тип сообщения: Восстановление проблемы Тема: ✅ Проблема решена ✅ Сообщение: ⬇ • Проблема решена {EVENT.RECOVERY.DATE} в {EVENT.RECOVERY.TIME} за {EVENT.DURATION} • На устройстве: {HOST.NAME} • {HOST.DESCRIPTION} • {EVENT.NAME} • ID проблемы: {EVENT.ID} - {TRIGGER.URL} 3. Тип сообщения: Обновление проблемы Тема: 🔄 Обновление проблемы 🔄 Сообщение: ⬇ • Проблема появилась {EVENT.DATE} в {EVENT.TIME} • На устройстве: {HOST.NAME} • В элементе данных: {EVENT.NAME} • Пользователь {USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}. • Проблема обновлена с сообщением: {EVENT.UPDATE.MESSAGE}. • Текущий статус проблемы: {EVENT.STATUS}. • Актуальность проблемы: {EVENT.ACK.STATUS}. 4. Тип сообщения: Обнаружение Тема: 🔄 Обнаружение {HOST.NAME} 🔄 - {DISCOVERY.DEVICE.STATUS} - {DISCOVERY.DEVICE.IPADDRESS} Сообщение: - • Discovery rule: {DISCOVERY.RULE.NAME} • Device IP: {DISCOVERY.DEVICE.IPADDRESS} • Device DNS: {DISCOVERY.DEVICE.DNS} • Device status: {DISCOVERY.DEVICE.STATUS} • Device uptime: {DISCOVERY.DEVICE.UPTIME} • Device service name: {DISCOVERY.SERVICE.NAME} • Device service port: {DISCOVERY.SERVICE.PORT} • Device service status: {DISCOVERY.SERVICE.STATUS} • Device service uptime: {DISCOVERY.SERVICE.UPTIME} 5. Тип сообщения: Авторегистрация Тема: 🖥 Авторегистрация устройства 🖥 {HOST.HOST} Сообщение: - • Host name: {HOST.HOST} • Host IP: {HOST.IP} • Agent port: {HOST.PORT} -------------------------------------------------------------------------------------------------------------------------------------------------------------- Пользователю создать оповещение аналогично Telegram: Тип: MAX Отправлять на: -55555555555555 Когда активен: 1-7,00:00-24:00 Использовать, если важность: ✅ Средняя ✅ Высокая ✅ Чрезвычайная Активировано ✅ -------------------------------------------------------------------------------------------------------------------------------------------------------------- Оповещения > Действия > Действия триггеров > Создать действие: Имя: MAX Активировано ✅ Добавить: Операции, Операции восстановления, Операции обновления. В каждой из операций добавить: Отправка группам пользователей, Отправка пользователям, Отправить через среду передачи: MAX. Приостановить операции для симптомных проблем ✅ Приостановить операции для подавленных проблем ✅ Оповещение об отмененных эскалациях ✅ -------------------------------------------------------------------------------------------------------------------------------------------------------------- Тестирование: sudo -u zabbix /usr/lib/zabbix/alertscripts/max_notify.sh "Тест" "OK" cat /tmp/max_debug.log