regex
Предназначен для парсинга простых регулярных выражений, использующих синтаксис RE2.
Конфигурация
Конфигурационный файл имеет одно поле (не считая module) - rules, где перечислен список правил по применению регулярных выражений.
В самом правиле можно указать регулярное выражение в поле expr. Также дополнительно можно указать в поле from название поля события, к которому будет применяться регулярное выражение (по-умолчанию применяется к полю Raw).
Чтобы извлекать значения и помещать их в поля события, нужно пользоваться именованной группой захвата named capturing group - это делается с помощью синтаксиса (?<name>re), где name - имя группы, re - регулярное выражение группы. Затем, в блоке subgroups указываются параметры групп захвата. В поле name указывается имя соответствующей группы захвата в регулярном выражении, в поле to - название поля в событии, куда будет помещено значение группы, а также дополнительно можно указать тип значения в поле value-type (полезно, если соответствующего поля нет).
Пример конфигурации:
processors:
- module: regex
rules:
- expr: '(?<sender>(?<user>[\w+-.]+)@(?<domain>[a-z\d.-]+\.[a-z]+))'
from: Raw
subgroups:
- name: user
to: ECS.User.Name
- name: domain
to: ECS.User.Domain
- name: sender
to: ECS.Email.FromAddress
Если поле Raw будет равно user@domain.com, то в поле ECS.User.Name будет user, ECS.User.Domain - domain.com, а в ECS.Email.FromAddress - user@domain.com