Одно значение группы захвата становится именем поля для следующей группы захвата.
Я использую 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