我的头靠在墙上 - 两天前开始使用logstash和Grok并取得了一些进展,但我整晚都在看着这个特殊的问题。
我从日志文件中输入以下几行输入到logstash。
'John Pence':'减': - 0.01:-1.03093:0.96:0.97
'Dave Pound':'增加':0.04:1.04000:0.97:0.93
使用以下grok过滤器匹配:
match => { "message" => "%{QS:name}:%{QS:activity}:%{BASE16FLOAT:Change}:%{BASE16FLOAT:Percentage}: %{BASE16FLOAT:CurrentPrice}: %{BASE16FLOAT:PreviousPrice}" }
match => { "message" => "%{QS:Name}:%{QS:Activity}:-%{BASE16FLOAT:Change}:-%{BASE16FLOAT:Percentage}: %{BASE16FLOAT:CurrentPrice}: %{BASE16FLOAT:PreviousPrice}" }
正如您所看到的 - 我无法正确显示负数,如何正确显示grok过滤器中的减号? 非常感谢一些帮助!
答案 0 :(得分:1)
您只需使用NUMBER
grok模式而不是BASE16FLOAT
以下grok
模式完全适用于您的输入:
grok {
"match" => {"message" => "%{QS:name}:%{QS:activity}:%{NUMBER:Change}:%{NUMBER:Percentage}: %{NUMBER:CurrentPrice}: %{NUMBER:PreviousPrice}"}
}