如何在无负载均衡的ECS Fargate中监控任务健康状态
解决方案:无负载均衡时ECS Fargate任务不健康的CloudWatch告警
当你的ECS Fargate任务未配置负载均衡时,可以直接利用ECS原生的任务健康状态指标创建CloudWatch告警,无需依赖负载均衡的UnhealthyHostCount指标。具体操作如下:
核心思路
ECS会根据容器定义中配置的健康检查规则,自动标记任务的健康状态,并通过AWS/ECS命名空间下的指标暴露这些状态。你只需针对UNHEALTHY状态的任务数量设置告警阈值即可。
具体步骤
- 打开CloudWatch控制台,进入「告警」页面,点击「创建告警」
- 在「指定指标」环节,选择「选择指标」:
- 指标命名空间选择
AWS/ECS - 指标名称选择
TaskCount - 添加以下维度:
ClusterName:填入你的ECS集群名称ServiceName:填入管理该消息驱动任务的ECS服务名称HealthStatus:选择UNHEALTHY
- 指标命名空间选择
- 配置告警条件:
- 选择「静态阈值」,设置当指标值大于0时触发告警
- 配置评估周期,比如连续1个周期(1分钟)满足条件即触发
- 配置通知渠道:关联已有的SNS主题,用于接收告警通知(比如发送邮件、触发Lambda等)
- 完成告警名称、描述等配置后,保存告警
额外说明
- 如果你的任务是独立运行的(未通过ECS服务管理),可以使用CloudWatch Container Insights的
TaskHealthStatus指标,维度包含ClusterName和TaskId,但这种场景下任务ID会动态变化,建议优先通过ECS服务管理任务,以便告警稳定生效 - 容器定义中的健康检查规则会直接影响任务的健康状态标记,确保健康检查配置符合业务逻辑(比如检查消息队列消费能力、内部服务可用性等)
内容的提问来源于stack exchange,提问作者Bastian Voigt
相关产品推荐
相关产品推荐

