【问题标题】:Fluentd - Add new attributes in JSON dataFluentd - 在 JSON 数据中添加新属性
【发布时间】:2019-03-25 08:38:53
【问题描述】:

使用 Fluentd 我以 JSON 格式将日志发送到 Splunk 和 ES,如下所示:

{
    "object1": {
            "obj1_key1": "value_xyz"
     }
     "object2": {
            "obj2_key1": "value_abc"
     }
}

在将日志发送到服务器之前,我想在 Object1 和 Object2 中添加一些字段作为元数据,例如。

{
    "object1": {
            "obj1_key1": "value_xyz"
            "metadata": "constant_value"
     }
     "object2": {
            "obj2_key1": "value_abc"
            "metadata": "constant_value"
     }
}

我知道使用流利的“record_transformer”插件我们可以添加新字段,但问题是如何在对象或嵌套对象中添加字段?

【问题讨论】:

    标签: fluentd


    【解决方案1】:

    您可以使用内置的filter record_transformer 插件,如下所示:

    <source>
      @type dummy
      tag dummy
      dummy [
        {"message": "dummy", "json": {"log": "log"}}
      ]
    </source>
    
    <filter dummy>
      @type record_transformer
      enable_ruby true
      <record>
        json ${record["json"].merge({key: "key", value: "value"})}
      </record>
    </filter>
    
    <match dummy>
      @type stdout
    </match>
    

    【讨论】:

    • 有一个缺点:如果json.key 已经存在,它将以不同的值再次添加。我没有找到纠正这种行为的方法。
    猜你喜欢
    • 2017-04-24
    • 2021-10-03
    • 2018-08-19
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    相关资源
    最近更新 更多