Fluent Bit v4.0.4 现已发布。本版本引入了强大的 OpenTelemetry 接口,提升编码解码能力;增强 Lua 脚本支持 OTLP 元数据访问;支持非 UTF-8 日志的字符编码转换;新增 AWS IAM 对 Kafka/MSK 的支持,同时带来性能提升、NFS-tail 修复及其他多项改进。
新的 OpenTelemetry 接口
Fluent Bit 持续强化作为现代 OpenTelemetry 数据管道的地位。v4.0.4 中新增内部 OpenTelemetry 接口,专注于编码和解码处理,使 OTLP 日志处理更快、更安全、更易测试。
主要改进:
-
JSON 与 Protobuf OTLP 统一处理
-
输入、处理、输出阶段职责更清晰
-
更好的单元测试与编码错误报告
-
out_opentelemetry 和 in_opentelemetry 新增自定义 logs_body_key 支持,方便按需构建 OTLP 日志体
此基础为跟踪、指标、日志的强力接入打下坚实基础,使 Fluent Bit 成为 OTLP 原生环境中可靠的转发器。
Lua 过滤器新能力:OTLP 元数据及分组访问
v4.0.4 中,Lua 过滤器支持 OpenTelemetry,能进行更灵活的记录级和分组级处理。适合根据资源或范围属性动态修改 OTLP 日志。
新函数签名:
function cb(tag, timestamp, group, metadata, record)
你可以做:
-
注入 resource.attributes(如 service.name)到日志记录
-
修改 OTLP 严重级别或标签
-
每次调用返回多条记录和元数据
-
简单脚本和复杂脚本兼容
示例:调整 OTLP 严重级别并添加服务名
function cb(tag, ts, group, metadata, record)
if group['resource']['attributes']['service.name'] then
record['service_name'] = group['resource']['attributes']['service.name']
end
if metadata['otlp']['severity_number'] == 9then
metadata['otlp']['severity_number'] = 13
metadata['otlp']['severity_text'] = 'WARN'
end
return1, ts, metadata, record
end
兼容 OpenTelemetry Collector 日志和所有 OTLP 日志生产者。
亚洲市场编码支持:原生转码
亚洲很多组织日志仍用 GBK、Big5、Shift_JIS 等编码,发送到 UTF-8 后端时会出现乱码。
Fluent Bit 现在在 in_tail 中集成了原生字符编码引擎。通过 generic.encoding 属性,可在读取时直接转码为 UTF-8。
示例:GBK 转 UTF-8
pipeline:
inputs:
-name:tail
path:/var/log/my_legacy_app.log
parser:json
generic.encoding:GBK
outputs:
-name:stdout
确保 Elasticsearch、OpenSearch、S3 等后端收到干净的 UTF-8 日志。非常适合 Fluentd → Fluent Bit 平滑迁移。
Kafka + AWS MSK IAM + 性能提升
Fluent Bit 新增对 Amazon MSK 的 AWS IAM 认证支持(输入和输出插件均支持)。
亮点:
-
使用 OAuthBearer 的 AWS SigV4 签名
-
支持 EC2 IAM 角色、STS 令牌和无服务器 MSK
-
基于 librdkafka 实现无状态令牌刷新
无需在配置中存储凭证,只需 IAM 即可。
额外功能:Kafka 输入支持 enable_auto_commit
Kafka 消费者支持:
enable_auto_commit: true
-
false(默认)= 安全优先,处理完毕后提交
-
true = 性能优先,批量提交,提高吞吐
适合能容忍重复消费、追求最大吞吐的场景。
in_tail 文件轮转改进(NFS 友好)
NFS 或远程挂载的日志文件轮转和覆盖常带来问题。
v4.0.4 中,in_tail 改用 fstat() 判断轮转,更适用于:
-
网络文件系统(NFS)
-
集中日志目录
-
容器卷挂载环境
防止文件移动或轮转时日志重复、丢失或漏采。
其他亮点
插件:
-
out_opentelemetry:重试、元数据合并和分组修复
-
out_loki:避免多工作线程使用 Remove_Keys 时的竞态
-
filter_modify / filter_lua:内存修复和清理
-
in_kafka / out_kafka:改进 AWS MSK 集成和令牌验证
核心与构建系统:
-
librdkafka 升级到 v2.10.1
-
新增编码、过滤器、上游行为测试
-
优化上游连接复用逻辑
-
安装器支持 Rocky Linux 和 AlmaLinux
-
全面代码清理和内存泄漏修复