FluentBit无法解析JSON时间戳问题求助
FluentBit无法解析JSON日志时间戳的解决方法
问题根源
你的配置存在两个关键问题:
- Parser过滤器的Key_Name配置错误:dummy输入插件生成的日志直接是JSON对象(
{"foo":"bar", "time":"2024-08-29T08:51:25.0000Z"}),没有嵌套在message字段中,但你设置了Key_Name message,导致过滤器找不到需要解析的内容。 - 时间格式匹配不精确:你使用的
%Y-%m-%dT%H:%M:%S.%LZ格式中,%LZ对应三位毫秒数,但日志中的时间是四位小数(.0000Z),格式不匹配会导致解析失败。
修复后的配置
主配置文件(fluent-bit.conf)
修改Filter部分,移除错误的Key_Name message:
[SERVICE] Parsers_File parsers.conf Log_Level debug [INPUT] Name dummy Dummy {"foo":"bar", "time":"2024-08-29T08:51:25.0000Z"} [FILTER] Name parser Match * Parser vault [OUTPUT] Name stdout
parsers.conf配置
将时间格式改为兼容ISO8601的通用格式,或精确匹配四位小数的格式:
方案1:使用ISO8601通用格式(推荐)
[PARSER] Name vault Format json Time_Key time Time_Format iso8601
方案2:精确匹配四位小数的格式
[PARSER] Name vault Format json Time_Key time Time_Format %Y-%m-%dT%H:%M:%S.%4NZ
验证效果
修改后运行FluentBit,输出的日志时间会变成解析后的时间戳(对应2024-08-29T08:51:25.0000Z),而不再是系统当前时间:
[0] dummy.0: [[1724902285.000000000, {}], {"foo"=>"bar"}]
(注:原time字段会被解析后作为日志时间,默认会从记录中移除,若需要保留可添加Preserve_Key On到Parser过滤器配置)
内容的提问来源于stack exchange,提问作者user140547
相关产品推荐
相关产品推荐

