Amazon ECS中Docker容器日志推送LogEntries中断问题及流程咨询
ECS容器推送日志到LogEntries的完整流程
- 日志生成:容器内业务进程输出stdout/stderr日志,或业务集成LogEntries SDK直接生成结构化日志
- 日志采集:由容器内置的LogEntries Agent、Fluentd/Fluent Bit等采集组件,或ECS配置的自定义日志驱动捕获目标日志流,同时补全ECS集群名、任务ID、容器ID等元数据字段
- 日志传输:采集组件将日志做格式化处理后,通过TLS加密的TCP请求发送到LogEntries服务端接口,请求携带配置的LogEntries令牌完成身份鉴权
- 日志入库:LogEntries服务端完成校验后将日志写入对应存储,链路结束
运行一段时间停止推送的排查方向
该类重启后恢复、运行一段时间异常的问题,优先排查长连接中断、资源耗尽、服务端限流三类场景
容器侧问题排查
- 查看日志采集进程状态:执行
docker exec <目标容器ID> ps aux检查采集进程是否存在OOM被内核杀死、僵死的情况,拉取采集组件的本地日志查看是否有缓冲区满、写入失败、连接断开的报错 - 检查容器资源配额:执行
docker exec <目标容器ID> df -h查看本地磁盘使用率,若采集组件需要本地落盘缓冲,磁盘配额打满后会停止日志采集;同时查看容器内存使用率,确认是否存在内存不足导致采集进程停止工作的情况 - 检查采集组件的重连配置:确认采集组件是否配置了连接断开自动重连、心跳保活策略,若未配置会在长连接中断后无法自动恢复
网络链路侧问题排查
- 检查VPC中间设备的TCP超时配置:若VPC的NAT网关、安全组的TCP会话超时时间小于LogEntries服务端的长连接保活周期,空闲的日志推送长连接会被中间设备强制断开,采集组件未配置重连就会停止推送
- 检查ECS网络带宽配额:通过CloudWatch查看ECS实例/弹性网卡的网络流出指标,确认是否存在带宽打满导致日志数据包被丢弃的情况
服务端侧问题排查
- 检查是否触发LogEntries限流:LogEntries对单令牌的每秒写入条数、日志总大小有配额限制,超过配额后服务端会返回429状态码拒绝写入,可查看采集组件错误日志是否有对应报错
- 检查LogEntries令牌有效性:若令牌配置了动态过期规则,到期后服务端会拒绝鉴权,重启容器时重新拉取最新令牌所以恢复推送,确认令牌的有效期配置是否符合预期
内容的提问来源于stack exchange,提问作者Master Developer
相关产品推荐
相关产品推荐

