我在 Splunk 中使用 PCRE2 (PHP >=7.3)。我的数据主要以回车符/换行符分隔,次要以逗号分隔,作为键/值对。
key1="value1",key2="value2",key3="value3",key4="...
等等。每个事件的键值对数量各不相同,我希望能够捕获任意数量的键值,但为了做到这一点,我需要动态命名这些值。例如,的值key1
将成为的字段名称value1
,key2
将成为的字段名称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