如何配置ECS任务失败告警:部署时失败超5次才触发通知
ECS任务失败次数告警优化方案(避免正常部署误报)
方案一:基于CloudWatch原生指标告警(最简便)
ECS内置了TaskFailedCount指标,专门统计因异常原因退出的任务(正常部署替换的任务不会被计入)。直接用这个指标配置告警:
- 进入CloudWatch控制台,创建告警,选择ECS命名空间下的
TaskFailedCount指标,维度指定你的ClusterName和ServiceName - 统计方式选择
Sum,周期设为5分钟,阈值条件设为>=5 - 配置通知目标(SNS、邮件等),当指定周期内异常失败任务数达到5次时触发告警
方案二:优化EventBridge规则(精准过滤+计数触发)
如果你想继续用EventBridge,通过过滤正常停止事件+计数条件解决误报:
- 修改现有EventBridge规则的事件模式,添加过滤条件:只捕获
detail.lastStatus = STOPPED且detail.stopReason包含异常原因的事件(比如EssentialContainerExited、ContainerRuntimeError、HealthCheckFailed等,排除TaskStoppedByDeployment、TaskStoppedByUser这类正常停止原因) - 在规则的触发设置中,开启“事件计数阈值”,设置为5分钟内收到至少5个匹配事件才触发通知
- 目标保持原有通知渠道即可,这样正常部署替换任务的事件会被过滤掉,只有连续异常失败达到次数才告警
方案三:辅助优化ECS部署配置(减少不必要的任务波动)
配合调整ECS服务的部署参数,降低正常部署时的任务启停频率:
- 调整服务的最小健康百分比和最大百分比,比如设为
100和200,确保部署期间旧任务不会提前停止,直到新任务健康后才替换 - 开启部署循环等待,让新任务完成健康检查后再继续部署下一批
以上方案均无需编写Lambda代码,直接通过AWS控制台配置即可实现需求,维护成本更低。
内容的提问来源于stack exchange,提问作者Sanskar Arya
相关产品推荐
相关产品推荐

