【问题标题】:Logstash create new json from existing jsonLogstash 从现有的 json 创建新的 json
【发布时间】:2018-10-29 14:42:59
【问题描述】:

我正在获取这种格式的数据:

{
    "a": "1",
    "b": "2"
}

我希望它更改为:

{
    data: {
        "a": "1",
        "b": "2"
    }
}

我可以使用 mutate 过滤器来改变它:

mutate {
     rename => {
        "[a]" => "[data][a]"
        "[b]" => "[data][b]"
    }
}

但在这里我必须单独重命名每个字段。

有没有办法可以在数据字段中移动整个传入消息,例如:

rename => {"[entite_message]" => "[data][entire_message]"}

【问题讨论】:

    标签: logstash logstash-filter


    【解决方案1】:

    您可以使用Events APIruby filter 来实现此目的。

    添加下面的 ruby​​ 块应该可以解决问题。

    ruby {
        code => '
            # Move everything to data
            event.set("data", event.to_hash)
    
            # Remove fields other than data
            fields = event.to_hash.keys
            fields.each{|field|
                if (field != "data")
                    event.remove(field)
                end
            }
        '
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      相关资源
      最近更新 更多