1

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

4

1 回答 1

4

您可以使用内置过滤器 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>
于 2019-03-25T00:38:53.837 回答