如果我向我的 ECS 服务发布一个带有错误的新 Docker 映像,那么该服务将尝试启动新任务,但如果新任务无法启动,它将保留旧版本。
在这种情况下,它有时(并非总是)会向总线发出事件,例如:
服务 xxx 无法始终成功地启动任务。有关详细信息,请参阅故障排除部分。
有时它只会发出大量事件,例如:
服务 xxx 在目标组 yyy 中取消注册 1 个目标
我希望在这种情况下触发 CloudWatch 警报。我怎样才能做到这一点?
我看不到任何跟踪可用于触发此警报的任何相关事件的 CloudWatch 指标。https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html
如果任务无法启动,那么我什至不会在 LB 目标组上获得任何 UnHealthyHostCount 指标。
我想我必须创建一个 EventBridge 规则来监视上述命名事件,但我看不到让该规则触发警报的明显方法。我已经设置了将“WARN”和“ERROR”事件转发到 SNS/电子邮件的规则,但我并不总是收到这些事件。所以我经常得到一个没有警报触发的重启循环。:-(
我有以下基础设施,我认为可以满足这一要求:
AWS/ApplicationELB
/UnHealthyHostCount
有时会触发AWS/Events
/TriggeredRules
发生 2 或 3 时触发这是一个相当混乱的方法,但我能找到最好的方法。我很失望 ECS 没有发布指标来跟踪这种常见情况。
(我不订阅上面创建的任何 SNS 主题;它们的存在只是为了使上述规则有效。如果需要,可以在 ECS 控制台中查看这些事件。)