【问题标题】:Adding a copy field and set it lowercase添加复制字段并将其设置为小写
【发布时间】:2018-04-04 15:11:25
【问题描述】:

我在使用 mutate 过滤器时遇到问题,我需要将字段副本设置为小写。 但是当我尝试在 elastic 上加载时,字段副本不会是小写的。

我的 Logstash 版本是 5.2

我正在使用以下配置:

filter {   
    mutate {
        rename => {"desc_ufe" => "state" }
        rename => {"desc_local" => "city" }
        rename => {"desc_bairro" => "neighborhood" }
        rename => {"desc_lograd" => "streetName" }
        rename => {"desc_cep" => "postalCode" }
        rename => {"desc_lograd_complemento" => "supplement" }
        rename => {"cod_mun" => "IBGEcode" }

        convert => {"IBGEcode" => "string"}

        add_field => {"statecp" => "%{state}"}
        add_field => {"citycp" => "%{city}"}
        add_field => {"neighborhoodcp" => "%{neighborhood}"}
        add_field => {"streetNamecp" => "%{streetName}"}
        add_field => {"supplementcp" => "%{supplement}"}

        lowercase => ["statecp","citycp","neighborhoodcp","streetNamecp","supplementcp"]
    }
 }

感谢您的帮助。

【问题讨论】:

    标签: elasticsearch logstash elastic-stack logstash-configuration


    【解决方案1】:

    您正在成为 mutate 过滤器执行操作顺序的牺牲品。它不是基于您的配置文件中的顺序——它基于 mutate.rb 代码执行它的顺序。

    顺序是(根据https://github.com/logstash-plugins/logstash-filter-mutate/blob/master/lib/logstash/filters/mutate.rb):

    • 强制
    • 重命名
    • 更新
    • 替换
    • 转换
    • gsub
    • 大写
    • 大写
    • 小写
    • 剥离
    • 移除
    • 拆分
    • 加入
    • 合并
    • 复制

    后面是适用于匹配事件的任何其他内容(即add_field

    只需将您的 lowercase 移动到第二个 mutate 过滤器,它应该可以正常工作。

    【讨论】:

    • 谢谢 Alcanzar,我已经解决了。我将我的小写字母移动到另一个 mutate。现在它工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    相关资源
    最近更新 更多