Grok将负数解析为Kibana自定义字段

时间:2017-05-12 22:17:26

标签: logstash logstash-grok

我的头靠在墙上 - 两天前开始使用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}" }

这在Kibana中产生以下输出: enter image description here

正如您所看到的 - 我无法正确显示负数,如何正确显示grok过滤器中的减号? 非常感谢一些帮助!

1 个答案:

答案 0 :(得分:1)

您只需使用NUMBER grok模式而不是BASE16FLOAT

以下grok模式完全适用于您的输入:

grok {
    "match" => {"message" => "%{QS:name}:%{QS:activity}:%{NUMBER:Change}:%{NUMBER:Percentage}: %{NUMBER:CurrentPrice}: %{NUMBER:PreviousPrice}"}
}