如何配置Fluent-Bit转发Docker日志?解决端口占用启动失败问题
解决Fluent-Bit转发Docker日志的端口冲突及配置问题
问题场景
- 本地
localhost:24224端口已被td-agent(Fluentd)占用 - Docker配置了fluentd日志驱动,
/etc/docker/daemon.json内容如下:
{"log-driver": "fluentd","log-opts": {"fluentd-address": "localhost:24224"}}
- Fluent-Bit配置文件
fluent-bit.conf中,forward输入模块监听了0.0.0.0:24224 - 执行
docker-compose up时触发端口占用错误:
ERROR: for fluent-bit Cannot start service fluent-bit: driver failed programming external connectivity on endpoint fluent-bit (0f3884b5ca7302aa58356c28bfb041ed413554f0b9608d6476720126545779dc): Error starting userland proxy: listen tcp4 0.0.0.0:24224: bind: address already in use
解决方案
1. 修正Fluent-Bit的端口冲突
修改fluent-bit.conf中的forward输入模块端口,换成未被占用的端口(比如24225):
[INPUT] Name forward Listen 0.0.0.0 port 24225
2. 调整Docker日志驱动的目标地址
让Docker将日志发送到Fluent-Bit的新端口,修改/etc/docker/daemon.json:
{"log-driver": "fluentd","log-opts": {"fluentd-address": "localhost:24225"}}
修改后重启Docker服务生效:
systemctl restart docker
3. 确认Fluent-Bit的输出链路
当前配置中Fluent-Bit已正确指向目标服务(data-prepper的2021端口),无需修改:
[OUTPUT] Name http Match * Host data-prepper Port 2021 URI /log/ingest Format json
可选:保留td-agent原有端口的方案
如果需要继续使用td-agent的24224端口,可将Fluent-Bit作为td-agent的下游:
- 保持Docker日志驱动配置不变(仍指向
localhost:24224) - 修改td-agent配置,将日志转发到Fluent-Bit的24225端口
- Fluent-Bit的forward输入模块保持监听24225,接收td-agent转发的日志后再发送给data-prepper
内容的提问来源于stack exchange,提问作者naraghi
相关产品推荐
相关产品推荐

