Одно значение группы захвата становится именем поля для следующей группы захвата.

Я использую PCRE2 (PHP >=7.3) в Splunk. У меня есть данные, которые разделены главным образом возвратом каретки/новыми строками и второстепенными, разделенными запятыми в виде пар ключ/значение.

key1="value1",key2="value2",key3="value3",key4="...и так далее. Количество пар ключевых значений варьируется в зависимости от события, и я хотел бы иметь возможность захватывать произвольное количество значений ключей, но для этого мне нужно будет динамически называть значения. Например, значениеkey1станет именем поляvalue1,key2станет именем поляvalue2и т. д., если найдено столько пар ключ/значение.(.*?)\=\"(.*?)\"насколько я понимаю, но Splunk требует, чтобы извлечения полей были названы.

Есть ли способ сделать это?

Заранее спасибо, ~Тензор

1 ответ

Вы можете сделать это во время индексирования, используя реквизит и преобразование. Пример этого можно найти по адресу https://docs.splunk.com/Documentation/Splunk/8.2.2/Knowledge/Exampleconfigurationsusingfieldtransforms#Handling_events_with_multivalue_fields .

Поместите это в свой файл Transforms.conf:

      [mytransform]
REGEX = ([^=]+)=([^,]+)
FORMAT = $1::$2
REPEAT_MATCH = true
MV_ADD = true

Затем поместите это в props.conf:

      [mysourcetype]
TRANSFORMS-parse = mytransform
Другие вопросы по тегам