Перейти к основному содержимому
Версия: 4.6.X

Плагин processors — конвейер обработки событий

Плагин processors

Плагин processors объединяет несколько модулей обработки в единый последовательный конвейер. Каждое событие проходит через все указанные модули по порядку, что позволяет выстраивать произвольные цепочки нормализации, обогащения и преобразования.


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

Конфигурация плагина processors представляет собой массив объектов. Каждый объект описывает один модуль (подплагин) конвейера и обязательно содержит поле module, определяющее тип модуля. Остальные поля зависят от конкретного типа модуля.

processors:
- module: <тип_модуля_1>
# параметры первого модуля
- module: <тип_модуля_2>
# параметры второго модуля

Порядок выполнения

Модули выполняются строго последовательно — в порядке, в котором они перечислены в конфигурации. Результат работы предыдущего модуля передается на вход следующему.

Пример конвейера

Ниже приведен пример конвейера, который сначала разбирает Syslog-заголовок, затем извлекает поля из JSON-тела события и, наконец, обогащает событие данными из LDAP:

processors:
- module: syslog
parser: auto
- module: json
patterns:
- expr: message
to: ECS.Event.Original
- module: enrich
timeout: 10s
type: ldap
enricher-config:
url: ldap://directory.example.local:389
tls:
disable: true
username: reader@example.local
password-secret: LDAP_PASSWORD
base-dn: dc=example,dc=local
filter: "(uid=${ECS.User.Name})"
attributes-mapping:
mail: ECS.User.Email
enriching-strategy: first

Условное выполнение модулей

Каждый модуль в конвейере поддерживает блок when, позволяющий задать условие выполнения. Если условие не выполнено, модуль пропускается, и событие передается дальше без изменений. Подробнее см. Условное выполнение модулей.

Доступные модули

В качестве модулей конвейера можно использовать любые поддерживаемые модули обработки событий: syslog, json, ecs, grok, dissect, regex, xml, rename, enrich, dns, split, assign, derive, deny и другие.