如何检查 Fluent Bit 的内部错误?
检查 Fluent Bit 内部错误的四个途径:日志级别开到 debug 看输出、内置 HTTP 监控端点 /api/v1/metrics 查错误计数、health check 端点探活、以及 input/output 插件的独立错误日志。本文给出完整诊断方法。
Fluent Bit 的错误分两层看:进程日志(启动错误、插件报错)与运行指标(/api/v1/metrics 里的错误计数)——先把日志级别调到 debug,再看监控端点,再结合输入丢弃、缓冲与下游数据验证。
1. 日志级别调细
[SERVICE]
Log_Level debug
环境变量只有被配置或启动脚本引用时才生效,例如 Log_Level ${FLB_LOG_LEVEL};单独设置变量不保证覆盖配置。debug 下每个插件的初始化、批处理、重试都会输出。
2. 内置监控端点
[SERVICE]
HTTP_Server On
HTTP_Listen 127.0.0.1
HTTP_PORT 2020
curl -s http://localhost:2020/api/v1/metrics | jq .
返回每个 input/output 的记录数、字节数与 错误/重试计数——output.*.retries_failed 增长表示相应 chunk 的重试耗尽或失败,需结合插件与缓冲日志定位,不能直接等同记录丢失条数。
3. 健康检查端点
[SERVICE]
Health_Check On
HC_Errors_Count 5
HC_Retry_Failure_Count 5
HC_Period 60
GET /api/v1/health 在错误超阈值时返回不健康状态,其覆盖范围主要是输出错误/重试,不能证明全部输入解析正常;后端故障导致不健康时盲目作为 liveness 重启可能加剧问题。
4. 常见错误对照
- 输出端 4xx/5xx → 后端地址、认证、索引权限问题;
upstream connection error→ 网络/DNS;- 解析错误日志或对应插件实际暴露的计数增长 → 检查 parser 与格式;并非所有解析插件都有统一计数。
常见问题(FAQ)
Q:生产环境一直开 debug 吗? 不建议,量太大;排障时开,平时 info/warn。
Q:2020 端口暴露安全吗? 只读但会泄露拓扑信息,绑内网或加防火墙限制。