我有一个这种形式的日志模式。

field1|field2|field3|field4|field5| key1=value1 key2=value2 key3=value3

键值对可以任意顺序排列。 key2可能早于key1。

我能够解析field1-field5。无法确定如何对键值对执行此操作
%{GREEDYDATA:fieldValue1}\|%{GREEDYDATA:fieldValue2}\|%{GREEDYDATA:fieldValue3}\|%{GREEDYDATA:fieldValue4}\|%{GREEDYDATA:fieldValue5}\|

我可以在grok中创建键值映射,然后发送特定的键吗?
有什么建议吗?

最佳答案

您可以使用kv过滤器解析其他部分。喜欢:

grok {
    match => { "message" => "%{GREEDYDATA:fieldValue1}\|%{GREEDYDATA:fieldValue2}\|%{GREEDYDATA:fieldValue3}\|%{GREEDYDATA:fieldValue4}\|%{GREEDYDATA:fieldValue5}\| %{GREEDYDATA:keyValue}" }
 }
kv {
    source => "keyValue"
}

10-07 22:57