Если вы не удовлетворены существующими способами оповещений для отправки оповещений, то вы можете попробовать альтернативный способ отправки оповещений. Вы можете написать скрипт, который будет обрабатывать оповещение вашим способом.
Пользовательские скрипты оповещений выполняются на стороне Zabbix сервера. Эти скрипты должны быть размещены в директории, которая указывается в параметре AlertScriptsPath
в файле конфигурации сервера.
Пример пользовательского скрипта оповещения:
#!/bin/bash
to=$1
subject=$2
body=$3
host=$4
value=$5
cat <<EOF | mail -s "$subject" "$to"
$body
Host: $host
Value: $value
EOF
Zabbix проверяет код завершения выполненных команд и скриптов. Любой код, отличный от 0, рассматривается как ошибка выполнения команды. В этом случае Zabbix попытается снова выполнить команду, которая завершилась с ошибкой.
Переменные среды не сохраняются и не создаются для скрипта, поэтому их необходимо обрабатывать в явном виде.
Для настройки пользовательского скрипта оповещения в качестве способа оповещений:
Вкладка Способ оповещений (Media type) содержит общие атрибуты способа оповещения:
Все обязательные поля ввода отмечены красной звёздочкой.
Следующие параметры специфичны для способов оповещений на основе скриптов:
Параметр | Описание |
---|---|
Имя скрипта (Script name) |
Введите имя файла скрипта (например, notification.sh), который расположен в директории, указанной в параметре AlertScriptsPath файла конфигурации сервера. |
Параметры скрипта (Script parameters) |
Добавьте необязательные параметры скрипта, которые будут переданы скрипту в качестве аргументов командной строки в заданном порядке. В параметрах скриптов поддерживаются макросы {ALERT.SENDTO}, {ALERT.SUBJECT} и {ALERT.MESSAGE}, все макросы, которые поддерживаются в оповещениях, а также пользовательские макросы. |
Смотрите также общие параметры способов оповещений для получения подробной информации о настройке сообщений по умолчанию и опциях обработки оповещений.
Даже если скрипт оповещения не использует сообщения по умолчанию, необходимо задать шаблоны сообщений по типам операций, которые используются в скрипте, в противном случае оповещение не будет отправлено.
При наличии более одного настроенного способа оповещения с типом скрипт, эти скрипты могут обрабатываться процессами оповещения (alerter) параллельно. Общее количество процессов оповещения ограничено параметром StartAlerters
конфигурационного файла сервера.
Чтобы протестировать настроенный способ оповещения посредством скрипта:
Найдите соответствующий скрипт в списке способов оповещений.
Нажмите Тест (Test) в последнем столбце (откроется окно тестирования). Количество параметров в окне тестирования будет соответствовать заданному для скрипта.
Если необходимо, поменяйте значения параметров скрипта. Замена затрагивает только проверку, реальные значения останутся без изменений.
Нажмите Тест (Test).
При проверке настроенного способа оповещения посредством скрипта макросы {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} и пользовательские макросы раскроются, а макросы, относящиеся к событиям (например, {HOST.HOST}, {ITEM.LASTVALUE} и т.д.), не раскроются, поскольку при тестировании нет связанных событий, которые предоставляли бы нужные сведения. Учтите, что макросы внутри макросов {ALERT.SUBJECT} и {ALERT.MESSAGE} также не раскроются. Например, если значение {ALERT.SUBJECT} состоит из «Проблема: {EVENT.NAME}», то макрос {EVENT.NAME} не раскроется.
После того, как способ оповещения настроен, перейдите в раздел Пользователи → Пользователи (Users → Users) и измените профиль пользователя, назначьте ему адресата по этому способу оповещения. Шаги по настройке оповещений пользователей, общие для всех способов оповещений, описаны на странице Способов оповещений.
Обратите внимание, когда настраиваете оповещение пользователя, поле Отправлять на (Send to) не может быть пустым. Если это поле не используется в скрипте оповещений, введите любую комбинацию поддерживаемых символов для обхода требования наличия адресата.