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

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