LogStash:在mutate中转换为整数无效

时间:2019-04-10 10:48:45

标签: elasticsearch logstash elastic-stack

我无法使用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     
}

1 个答案:

答案 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处快速解决我的问题,并在此处发布了答案供以后参考。