如何在Fluent-Bit中配置将日志路径设为Splunk的source字段?
问题解决:Fluent-Bit转发Splunk时设置source为日志路径
1. 为什么event_source $path配置不生效?
你遗漏了tail输入插件的Path_Key配置项。Fluent-Bit的tail插件默认不会将日志文件路径添加到每条日志的记录字段中,直接引用$path会取不到有效值,导致Splunk自动使用HEC令牌对应的默认source名称。
修正后的INPUT配置
添加Path_Key path,让插件自动将当前读取的文件路径写入日志记录的path字段:
[INPUT] Name tail Tag jsm_on_centos8-2 Path /home/dujas/fluent-bit/conf/inputs/atlassian-jira-snip3.log Path_Key path # 新增:将日志文件路径存入path字段 DB /home/dujas/fluent-bit/db/test.db Read_from_Head True Buffer_Chunk_Size 20480KB Buffer_Max_Size 20480KB multiline.parser jsm
修改后,OUTPUT中的event_source $path就能正确引用到日志文件路径,Splunk事件的source会显示为目标日志路径。
2. 通配符路径场景的解决方案
当Path使用通配符(如/home/dujas/logs/*.log)时,上述Path_Key配置依然完全适用——它会自动识别每条日志对应的实际文件路径,并将其写入path字段。OUTPUT中的event_source $path会动态适配每条日志的来源文件,无需手动逐个配置路径。
兼容旧版本Fluent-Bit的备选方案(版本<1.8)
如果你的Fluent-Bit版本低于1.8(不支持Path_Key),可以通过Tag_Regex结合record_modifier过滤器实现:
[INPUT] Name tail Tag jsm_on_centos8-2_* Path /home/dujas/logs/*.log Tag_Regex ^jsm_on_centos8-2_(.*)$ # 用正则捕获文件路径到tag分组 DB /home/dujas/fluent-bit/db/test.db Read_from_Head True Buffer_Chunk_Size 20480KB Buffer_Max_Size 20480KB multiline.parser jsm [FILTER] Name record_modifier Match * Record path $TAG:1 # 从tag的第一个分组提取路径存入path字段 [OUTPUT] # 保持原有配置,event_source仍用$path
内容的提问来源于stack exchange,提问作者joker57
相关产品推荐
相关产品推荐

