Fluentd-在JSON数据中添加新属性

时间:2019-03-19 07:41:32

标签: fluentd

使用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”插件可以添加新字段,但问题是如何在对象或嵌套对象中添加字段?

1 个答案:

答案 0 :(得分:0)

您可以使用内置的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>