我有以下格式的日志行,并希望提取字段:
[field1: content1] [field2: content2] [field3: content3] ...
我既不知道字段名称,也不知道字段数量。
我尝试使用反向引用和sprintf格式,但没有得到结果:
match => [ "message", "(?:\[(\w+): %{DATA:\k<-1>}\])+" ] # not working
match => [ "message", "(?:\[%{WORD:fieldname}: %{DATA:%{fieldname}}\])+" ] # not working
这似乎只对一个字段有效,而不是多个字段:
match => [ "message", "(?:\[%{WORD:field}: %{DATA:content}\] ?)+" ]
add_field => { "%{field}" => "%{content}" }
kv过滤器也不适合,因为字段内容可能包含空格。
是否有插件/策略来解决这个问题?