2016-05-23 72 views
0

我有一個日誌模式是這種形式。格羅克過濾器日誌模式

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地圖鍵值,然後發送特定鍵??? 有何建議?

+0

如果總有3鍵值對,你可以添加3'\ s * ='( \ w +?)( \ w +):嘗試'%{GREEDYDATA:fieldValue1} \ |%{GREEDYDATA:fieldValue2} \ |%{GREEDYDATA:fieldValue3} \ |%{GREEDYDATA:fieldValue4} \ |%{GREEDYDATA:fieldValue5} \ | \ s *(? \ w +)=(? \ w +) \ s *(? \ w +)=(? \ w +)\ s *(? \ w +)=(? \ w +)' –

回答

2

您可以使用kv過濾器來解析其他部分。像:

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

謝謝alpert。完美.. !! – user1768610

+0

很高興幫助:) – alpert