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