Fluentd如何配置可将单条输出记录封装进数组中
Fluentd单条记录封装为数组输出的配置方案
你可以通过以下两种常用配置实现需求:
- 方案1:全局修改记录结构(适配所有输出插件)
使用默认自带的record_transformer过滤器直接将整条记录封装为数组,所有经过该过滤器的记录都会自动套用数组结构,后续对接任意输出插件都生效,配置示例如下:
<filter **> @type record_transformer # 启用Ruby语法支持 enable_ruby true # 启用完全替换原记录,不保留冗余字段 renew_record true <record> # 生成仅包含原记录的数组结构 _ ${[record]} </record> # 清理临时占位key,直接输出数组内容 remove_keys _ </filter>
如果你的Fluentd版本未内置该插件,可执行命令gem install fluent-plugin-record-transformer手动安装。
- 方案2:仅针对指定输出插件修改格式
不需要全局修改记录结构时,可以在特定输出环节的格式化配置中单独处理,以文件输出插件out_file为例,配置示例如下:
<match **> @type file path /你的/文件/输出/路径 <format> @type ruby # 直接将单条记录转为数组格式的JSON format [record].to_json </format> <buffer> # 其余buffer、flush等配置按需补充即可 </buffer> </match>
HTTP输出等其他插件也可以在对应<format>块中复用该Ruby格式化逻辑实现需求。
内容的提问来源于stack exchange,提问作者Diogo Guerra
相关产品推荐
相关产品推荐

