Плагин 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 и другие.