如何配置Fluentbit文件插件使输出文件名与输入文件名一致?
实现Fluentbit输出文件名与输入一致及标签提取文件名
一、从标签中提取文件名
首先通过正则解析器从标签里提取文件名,步骤如下:
- 定义正则解析器
在Fluentbit配置文件中添加解析器,根据你的标签格式调整正则规则。如果标签包含完整文件路径(如app.logs./path/to/file.log),用以下解析器提取最后一个斜杠后的文件名:
[PARSER] Name tag_extract_filename Format regex Regex ^.*\/(?<filename>[^\/]+)$
如果标签直接带文件名(如app.logs.file.log),正则可简化为^.*\.(?<filename>[^\.]+)$(需根据实际标签结构调整)。
- 用Filter解析标签并存储文件名
添加parser过滤器,将解析标签得到的文件名存入日志记录字段:
[FILTER] Name parser Match * Parser tag_extract_filename Key_Name tag Reserve_Data On
Key_Name指定解析tag字段,Reserve_Data保留原有日志数据,仅新增filename字段。
二、配置输出文件插件使用提取的文件名
在file输出插件中,通过变量引用提取到的filename字段,设置输出文件名:
[OUTPUT] Name file Match * Path /your/output/directory # 替换为你的输出目录 File_Name ${filename} Format json_lines # 根据需求选择输出格式,如none、csv等
这样输出文件名称会和输入文件完全一致,比如输入是file.log,输出即为/your/output/directory/file.log。
内容的提问来源于stack exchange,提问作者koonig
相关产品推荐
相关产品推荐

