使用Fluentd处理嵌套的JSON

时间:2016-02-25 08:25:31

标签: json fluentd

使用Fluentd日志管道,输入:

{"event" : {"name" : "toto", "date" : 14....11}}

如何将字段event.date转换为有效日期?

我试过了:

<filter *.*> @type record_transformer <record> event.date ${Time.at(event.date).strftime('%Y-%m-%dT%H:%M:%S')} </record> </filter>

但是这会添加一个字段“event.date”:/

2 个答案:

答案 0 :(得分:0)

您必须启用rubby:

<filter **>
  @type record_transformer
  enable_ruby
  <record>
    event_date ${time.strftime('%Y-%m-%dT%H:%M:%S')}

  </record>

</filter>

答案 1 :(得分:0)

已经有一段时间了,但是我来到这里只是对如何做到这一点有一点想法。根据文档,似乎在较新版本中,某些JSON处理已成为fluentd核心的一部分。

https://docs.fluentd.org/v1.0/articles/filter_parser

这里:

<filter foo.bar>
  @type parser
  key_name log
  reserve_data true
  remove_key_name_field true
  <parse>
    @type json
  </parse>
</filter>

应该可以解决问题。

我们有:

  • key_name-要查找的字段的名称
  • reserve_data-是否保留外部JSON中的字段
  • remove_key_name_field-是否删除包含嵌套JSON的字段。