Logstash Grok将负数解析为Kibana自定义字段
我的头撞到了墙上——两天前从logstash和Grok开始,取得了一些进展,但整个晚上我都在关注这个问题 我从一个日志文件中获得了以下几行输入,该日志文件被摄取到logstash中 “约翰·彭斯”:“减少”:-0.01:-1.03093:0.96:0.97 戴夫·庞德:“增加”:0.04:1.04000:0.97:0.93 与以下grok筛选器匹配:Logstash Grok将负数解析为Kibana自定义字段,logstash,logstash-grok,Logstash,Logstash Grok,我的头撞到了墙上——两天前从logstash和Grok开始,取得了一些进展,但整个晚上我都在关注这个问题 我从一个日志文件中获得了以下几行输入,该日志文件被摄取到logstash中 “约翰·彭斯”:“减少”:-0.01:-1.03093:0.96:0.97 戴夫·庞德:“增加”:0.04:1.04000:0.97:0.93 与以下grok筛选器匹配: match => { "message" => "%{QS:name}:%{QS:activity}:%
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中生成以下输出:
正如你所看到的——我无法正确显示负数,如何在grok过滤器中正确显示负号?
非常感谢您的帮助 您可以简单地使用
NUMBER
grok模式,而不是BASE16FLOAT
以下grok
模式对您的输入非常有效:
grok {
"match" => {"message" => "%{QS:name}:%{QS:activity}:%{NUMBER:Change}:%{NUMBER:Percentage}: %{NUMBER:CurrentPrice}: %{NUMBER:PreviousPrice}"}
}
您可以简单地使用
NUMBER
grok模式,而不是BASE16FLOAT
以下grok
模式对您的输入非常有效:
grok {
"match" => {"message" => "%{QS:name}:%{QS:activity}:%{NUMBER:Change}:%{NUMBER:Percentage}: %{NUMBER:CurrentPrice}: %{NUMBER:PreviousPrice}"}
}
太好了,谢谢你,瓦尔!不确定为什么grok调试器没有给我这些信息…我正在努力弄清楚如何使这些自定义字段可聚合-我将感谢您提供的任何帮助。很高兴它有所帮助!请随意就后一个问题提出新问题。太好了,谢谢你!不确定为什么grok调试器没有给我这些信息…我正在努力弄清楚如何使这些自定义字段可聚合-我将感谢您提供的任何帮助。很高兴它有所帮助!请随意就后一个问题提出新问题。