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 попытается повторить неудачное выполнение.

Переменные окружения для скрипта не сохраняются и не создаются, поэтому их следует обрабатывать явно.

Конфигурация

Чтобы настроить пользовательские скрипты оповещений как тип медиа, выполните следующие действия:

  1. Перейдите в Оповещения → Типы медиа.
  2. Нажмите Создать тип медиа.

Вкладка Тип медиа содержит общие атрибуты типа медиа:

Все обязательные поля ввода отмечены красной звездочкой.

Следующие параметры специфичны для типа медиа "скрипт":

Parameter Description
Script name Введите имя файла скрипта (например, notification.sh), который находится в каталоге, указанном в параметре конфигурации сервера AlertScriptsPath.
Script parameters Добавьте необязательные параметры скрипта, которые будут переданы скрипту как аргументы командной строки в том порядке, в котором они определены.

Параметры скрипта поддерживают макросы {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} и все макросы, поддерживаемые в уведомлениях, а также пользовательские макросы.

См. общие параметры типа медиа для получения сведений о том, как настроить сообщения по умолчанию и параметры обработки оповещений.

Даже если скрипт оповещения не использует сообщения по умолчанию, шаблоны сообщений для типов операций, используемых этим типом медиа, все равно должны быть определены. В противном случае уведомление не будет отправлено.

Если настроено более одного типа медиа "скрипт", эти скрипты могут обрабатываться параллельно процессами alerter. Общее количество процессов alerter ограничено параметром StartAlerters в файле конфигурации сервера.

Тестирование

Чтобы протестировать настроенный тип медиа-элемента script:

  1. Найдите нужный script в списке типов медиа-элементов.

  2. Нажмите Test в последнем столбце списка; в всплывающем окне откроется форма тестирования. Форма тестирования будет содержать такое же количество параметров, которое настроено для типа медиа-элемента script.

  3. При необходимости измените значения параметров script. Изменение влияет только на процедуру тестирования; фактические значения изменены не будут.

  4. Нажмите Test.

При тестировании настроенного типа медиа-элемента script {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} и пользовательские макросы будут подставлены в свои значения, но макросы, связанные с событиями (например, {HOST.HOST}, {ITEM.LASTVALUE} и т. д.), не будут подставлены, поскольку во время тестирования нет связанного события, из которого можно получить сведения. Обратите внимание, что макросы внутри макросов {ALERT.SUBJECT} и {ALERT.MESSAGE} также не будут подставлены. Например, если значение {ALERT.SUBJECT} состоит из "Problem: {EVENT.NAME}", то макрос {EVENT.NAME} не будет подставлен.

Способ оповещения пользователя

После настройки типа оповещения перейдите в раздел Пользователи → Пользователи и отредактируйте профиль пользователя, назначив ему этот тип оповещения. Шаги по настройке способа оповещения пользователя, общие для всех типов оповещений, описаны на странице Типы оповещений.

Обратите внимание, что при определении способа оповещения пользователя поле Куда отправлять не может быть пустым. Если это поле не используется в скрипте оповещения, введите любую комбинацию поддерживаемых символов, чтобы обойти требования проверки.