一个捕获组值成为下一个捕获组的字段名称

一个捕获组值成为下一个捕获组的字段名称

我在 Splunk 中使用 PCRE2 (PHP >=7.3)。我的数据主要以回车符/换行符分隔,次要以逗号分隔,作为键/值对。

key1="value1",key2="value2",key3="value3",key4="...等等。每个事件的键值对数量各不相同,我希望能够捕获任意数量的键值,但为了做到这一点,我需要动态命名这些值。例如,的值key1将成为的字段名称value1key2将成为的字段名称value2,等等,只要找到尽可能多的键/值对。 (.*?)\=\"(.*?)\"是我所能得到的,但 Splunk 要求对字段提取进行命名。

有没有办法做到这一点?

提前致谢,〜Tensore

答案1

您可以在索引时使用 props 和 transform 来实现这一点。这里有一个示例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

相关内容