2017-04-19 34 views
1

我的日誌的格式如下my.package.name classname: my_message如何使用神交符合過濾條件的第一正則表達式出現

我想砍類perfix。

例如:

com.example.Handler doPost: request received, jim:jay foo: bar

皈依:

request received, jim:jay foo: bar

我綁這

filter { 
    grok { 
    match => {"message" => "^(.*):%{GREEDYDATA:request}"} 
    } 
} 

output { stdout { codec => rubydebug }} 

,但是這是我得到:

{ 
     "request" => " bar", 
     "message" => "com.example.Handler doPost: request received, jim:jay foo: bar" 
     ... 
} 

看起來像grok匹配的最後一個正則表達式發生。

我該如何配搭第一次:是否發生?

回答

3

使用不願意.*通過使用.*?。一個正常的.*將盡可能匹配,而一個不願意的.*?將匹配儘可能少。

有趣的事實:該logstash神交數據模式

DATA .*? 
GREEDYDATA .* 

所以,你可以定義你的模式爲

^%{DATA}:%{GREEDYDATA:request} 
+0

感謝!很好的回答! – dina

相關問題