我无法使用Logstash 6.4.2使整数比较在Logstash过滤器中工作。当我仍然尝试获取字符串时,读取日志时比较'> 10'失败,并出现运行时异常:'比较字符串10失败'
任何提示我在做什么错吗?
filter {
mutate {
add_field => { "[@metadata][day]" => "%{+dd}"} # generates '06' on 6. of month
convert => { "[@metadata][day]" => "integer" }
add_field => { "testDay" => "%{[@metadata][day]}" } # Copy
}
答案 0 :(得分:0)
来自Badger的解决方案(elastic.co论坛):
这是您的问题。没有任何convert依发生。 mutate过滤器按照固定的顺序执行操作,一旦完成所有这些操作,它就会装饰事件(即filter_matched()的调用),该事件实现了add_field之类的常见选项。这意味着转换将在add_field之前执行,因此当您尝试转换它们时,所有字段都不存在。将您的变异分为两个
- 感谢Badger在https://discuss.elastic.co/t/howto-integer-comparison-in-logstash-filter/175675处快速解决我的问题,并在此处发布了答案供以后参考。