You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS FireLens实例缩容时丢失优雅停机日志问题求助

问题排查与修复方案

核心配置问题分析

1. 停机时长与stopTimeout不匹配

你的Python应用优雅停机逻辑需要150秒,但Dockerrun.aws.json中应用容器和FireLens容器的stopTimeout都设为60秒。ECS会在发送SIGTERM后等待60秒,超时直接强制终止容器,导致:

  • 应用未完成优雅停机就被杀死,后续停机日志无法输出
  • FireLens容器提前终止,无法收集转发剩余日志

2. FireLens停机日志处理配置不足

虽然指定了minimize-log-loss.conf,但默认配置未针对Loki的HTTP转发特性优化,缺少停机时强制刷新日志的关键逻辑,无法应对Loki请求的延迟情况。

3. 容器停止顺序不合理

FireLens标记为essential: true,ECS停止任务时会给所有容器同时发送SIGTERM,导致应用和FireLens并行进入停机流程,FireLens可能在应用输出完停机日志前就停止运行。


针对性修复方案

1. 对齐停机时长配置

将应用容器和FireLens容器的stopTimeout调整为不小于应用停机时长(建议设为180秒,留足日志转发冗余时间):

{
  "name": "log_router",
  "stopTimeout": 180,
  // 其他配置不变
},
{
  "name": "python-ecs-test-app",
  "stopTimeout": 180,
  // 其他配置不变
}

2. 自定义FireLens配置强化日志刷新

创建自定义Fluent Bit配置文件(命名为custom-log-loss.conf),添加停机日志保障逻辑:

[SERVICE]
    Flush        1
    Grace        30
    Log_Level    info

[INPUT]
    Name              forward
    Listen            0.0.0.0
    Port              24224
    Exit_On_Close     On

[OUTPUT]
    Name             loki
    Match            *
    Host             loki.example.com
    Port             443
    TLS              On
    Remove_Keys      container_id,ecs_task_arn
    Labels           job=firelens
    Label_Keys       $container_name,$ecs_task_definition,$source,$ecs_cluster
    Flush_On_Shutdown 30
    Timeout          10
    Buffer_Chunk_Size 1M
    Buffer_Max_Size   5M

更新Dockerrun.aws.json中的FireLens配置路径:

"config-file-value": "/fluent-bit/configs/custom-log-loss.conf"

3. 调整容器停止依赖顺序

给FireLens添加dependsOn配置,确保应用容器完全停止后,FireLens才进入停机流程:

{
  "name": "log_router",
  "essential": true,
  "stopTimeout": 180,
  "dependsOn": [
    {
      "containerName": "python-ecs-test-app",
      "condition": "STOPPED"
    }
  ],
  // 其他配置不变
}

4. 验证应用日志输出

确认Python应用的print语句输出到stdout,且Dockerfile中已使用python -u参数(你已配置),避免缓冲导致日志延迟输出。


额外验证步骤

  1. 手动触发ECS任务停止,查看CloudWatch的firelens-test日志组,检查FireLens是否有转发失败报错
  2. 查看Loki接收日志,确认是否存在连接超时或拒绝记录
  3. 本地Docker环境模拟SIGTERM,验证应用停机日志能否正常输出并被收集

内容的提问来源于stack exchange,提问作者lowkey'd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:37:48