我的日志采用以下格式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匹配最后一次正则表达式。
如何通过第一次 :
匹配来匹配?
答案 0 :(得分:3)
使用.*
使用不情愿的.*?
。正常的.*
会尽可能多地匹配,而不情愿的.*?
会尽可能地匹配。
有趣的事实:logstash grok数据模式是
DATA .*?
GREEDYDATA .*
因此您可以将模式定义为
^%{DATA}:%{GREEDYDATA:request}