3. Пользовательские скрипты оповещений
Обзор
Если вы не удовлетворены существующими способами оповещений для отправки оповещений, то вы можете попробовать альтернативный способ отправки оповещений. Вы можете написать скрипт, который будет обрабатывать оповещение вашим способом.
Пользовательские скрипты оповещений выполняются на стороне 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 попытается снова выполнить команду, которая завершилась с ошибкой.
Переменные среды не сохраняются и не создаются для скрипта, поэтому их необходимо обрабатывать в явном виде.
Конфигурация
Чтобы настроить пользовательские скрипты оповещений как тип медиа:
- Перейдите в Оповещения → Типы медиа.
- Нажмите Создать тип медиа.
Вкладка Тип медиа содержит общие атрибуты типа медиа:

Все обязательные поля ввода отмечены красной звездочкой.
Следующие параметры специфичны для типа медиа "скрипт":
| Parameter | Description |
|---|---|
| Script name | Введите имя файла скрипта (например, notification.sh), который находится в каталоге, указанном в параметре конфигурации сервера AlertScriptsPath. |
| Script parameters | Добавьте необязательные параметры скрипта, которые будут переданы скрипту как аргументы командной строки в порядке их определения. Параметры скрипта поддерживают макросы {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} и все макросы, поддерживаемые в уведомлениях, а также пользовательские макросы. |
См. общие параметры типа медиа для получения сведений о том, как настроить сообщения по умолчанию и параметры обработки оповещений.
Даже если скрипт оповещения не использует сообщения по умолчанию, шаблоны сообщений для типов операций, используемых этим типом медиа, все равно должны быть определены. В противном случае уведомление не будет отправлено.
Если настроено более одного типа медиа "скрипт", эти скрипты могут обрабатываться параллельно процессами оповещателя.
Общее количество процессов оповещателя ограничено параметром StartAlerters в файле конфигурации сервера.
Тестирование
Чтобы протестировать настроенный тип медиа-элемента script:
-
Найдите нужный script в списке типов медиа-элементов.
-
Нажмите Test в последнем столбце списка; в всплывающем окне откроется форма тестирования. Форма тестирования будет содержать такое же количество параметров, которое настроено для типа медиа-элемента script.
-
При необходимости измените значения параметров script. Изменение влияет только на процедуру тестирования; фактические значения изменены не будут.
-
Нажмите Test.

При тестировании настроенного типа медиа-элемента script {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} и пользовательские макросы будут подставлены в свои значения, но макросы, связанные с событиями (например, {HOST.HOST}, {ITEM.LASTVALUE} и т. д.), подставлены не будут, так как во время тестирования нет связанного события, из которого можно получить сведения. Обратите внимание, что макросы внутри макросов {ALERT.SUBJECT} и {ALERT.MESSAGE} также не будут подставлены. Например, если значение {ALERT.SUBJECT} состоит из "Problem: {EVENT.NAME}", то макрос {EVENT.NAME} не будет подставлен.
Оповещение пользователей
После того, как способ оповещения настроен, перейдите в раздел Пользователи → Пользователи (Users → Users) и измените профиль пользователя, назначьте ему адресата по этому способу оповещения. Шаги по настройке оповещений пользователей, общие для всех способов оповещений, описаны на странице Способов оповещений.
Обратите внимание, когда настраиваете оповещение пользователя, поле Отправлять на (Send to) не может быть пустым. Если это поле не используется в скрипте оповещений, введите любую комбинацию поддерживаемых символов для обхода требования наличия адресата.