Документация: ПО Факел — разрабатываемая версия

Обработчик событий

Обзор

Обработчик событий ПО Факел следит за системным журналом и запускает сценарии администратора в ответ на заданные записи. Например, сценарий может отправить уведомление или изменить настройки, когда в журнале появляется сообщение о падении интерфейса или об ошибке службы.

Обработчики настраиваются в разделе service event-handler event <event>. Каждый обработчик состоит из двух частей:

  • фильтр (filter) — регулярное выражение pattern и, при необходимости, идентификатор процесса в журнале syslog-identifier;

  • сценарий (script) — путь к исполняемому файлу path, его аргументы arguments и переменные окружения environment.

Обработчик проверяет каждую новую запись журнала. Если задан идентификатор процесса, проверяются только записи этого процесса. Сценарий запускается, когда регулярному выражению соответствует весь текст записи, а не его часть. Текст записи сценарий получает в переменной окружения message; поэтому имя message нельзя использовать для собственных переменных окружения. Остальные переменные окружения, заданные командами script environment, передаются сценарию вместе с переменными окружения системы.

Шаблон и путь к сценарию обязательны для каждого обработчика: без них проверка конфигурации завершается ошибкой Event-handler: both pattern and script path items are mandatory. Строка аргументов (script arguments) разделяется пробелами на отдельные аргументы, которые сценарий получает после пути, например one two — как два аргумента. Каждое срабатывание обработчик записывает в системный журнал — сообщение Pattern found: "<шаблон>", script executed: "<сценарий> <аргументы>". Сообщение записывается и тогда, когда сам сценарий завершился с ошибкой, поэтому результат работы сценария проверяйте по его собственным действиям. Если сценарий не удалось запустить, в журнал записывается сообщение Pattern found: "<шаблон>", failed to execute script "<сценарий>" с описанием ошибки. Эти записи помогают проверить, срабатывает ли обработчик. Журнал системы выводит команда show log (см. Журналы системы).

Список команд

Режим «Конфигурирование»


service event-handler event <event>

Описание:
Создает обработчик событий <event>.
Для обработчика необходимо задать шаблон (filter pattern) и путь к сценарию (script path), иначе проверка конфигурации завершается ошибкой.

Синтаксис:

  • set service event-handler event <event>

  • delete service event-handler event <event>

  • show service event-handler event

Аргументы:

  • <event> — имя обработчика событий. Формат: строка.

Режим: «Конфигурирование».


service event-handler event <event> filter pattern <pattern>

Описание:
Задает регулярное выражение, с которым сравнивается текст каждой новой записи системного журнала. Сценарий запускается, если выражению соответствует весь текст записи.

Синтаксис:

  • set service event-handler event <event> filter pattern <pattern>

  • delete service event-handler event <event> filter pattern <pattern>

  • show service event-handler event <event> filter pattern

Аргументы:

  • <event> — имя обработчика событий.

  • <pattern> — регулярное выражение. Формат: строка.

Режим: «Конфигурирование».


service event-handler event <event> filter syslog-identifier <syslog-identifier>

Описание:
Задает идентификатор процесса в системном журнале (syslog identifier). Если параметр задан, обработчик проверяет только записи с этим идентификатором.

Синтаксис:

  • set service event-handler event <event> filter syslog-identifier <syslog-identifier>

  • delete service event-handler event <event> filter syslog-identifier <syslog-identifier>

  • show service event-handler event <event> filter syslog-identifier

Аргументы:

  • <event> — имя обработчика событий.

  • <syslog-identifier> — идентификатор процесса в системном журнале. Формат: строка.

Режим: «Конфигурирование».


service event-handler event <event> script arguments <arguments>

Описание:
Задает аргументы, которые передаются сценарию обработчика при запуске. Строка разделяется пробелами на отдельные аргументы.

Синтаксис:

  • set service event-handler event <event> script arguments <arguments>

  • delete service event-handler event <event> script arguments <arguments>

  • show service event-handler event <event> script arguments

Аргументы:

  • <event> — имя обработчика событий.

  • <arguments> — аргументы сценария. Формат: строка.

Режим: «Конфигурирование».


service event-handler event <event> script environment <environment>

Описание:
Создает переменную окружения <environment>, которая передается сценарию обработчика.
Имя message зарезервировано: в этой переменной сценарий получает текст записи журнала, и проверка конфигурации с таким именем завершается ошибкой Event-handler: "message" environment variable is reserved for log message text.

Синтаксис:

  • set service event-handler event <event> script environment <environment>

  • delete service event-handler event <event> script environment <environment>

  • show service event-handler event <event> script environment

Аргументы:

  • <event> — имя обработчика событий.

  • <environment> — имя переменной окружения. Формат: строка.

Режим: «Конфигурирование».


service event-handler event <event> script environment <environment> value <value>

Описание:
Задает значение переменной окружения <environment> сценария обработчика.

Синтаксис:

  • set service event-handler event <event> script environment <environment> value <value>

  • delete service event-handler event <event> script environment <environment> value <value>

  • show service event-handler event <event> script environment <environment> value

Аргументы:

  • <event> — имя обработчика событий.

  • <environment> — имя переменной окружения.

  • <value> — значение переменной окружения. Формат: строка.

Режим: «Конфигурирование».


service event-handler event <event> script path <path>

Описание:
Задает путь к сценарию, который запускается, когда запись журнала соответствует шаблону. Файл должен существовать и быть исполняемым: иначе команда set завершается ошибкой File <path> does not exist или File <path> is not an executable file.

Синтаксис:

  • set service event-handler event <event> script path <path>

  • delete service event-handler event <event> script path <path>

  • show service event-handler event <event> script path

Аргументы:

  • <event> — имя обработчика событий.

  • <path> — путь к файлу сценария. Формат: строка.

Режим: «Конфигурирование».