我在 ECS Fargate 中运行一个完全消息驱动的工作负载,没有负载均衡器,并且在容器定义中定义了运行状况检查。为了监控应用程序,我想定义一个 cloudwatch 警报,每当任务变得不健康时就会触发。
对于我的 HTTP 工作负载,我使用基于
UnhealthyHostCount
指标的指标警报来实现此目的。没有负载均衡器怎么办?
当容器运行状况检查失败时,似乎没有任何指标报告给 CloudWatch。当容器运行状况检查失败时,ECS 似乎也没有向 EventBridge 发布任何事件。您可以订阅 ECS EventBridge 事件,以了解任务何时进入
PENDING
、RUNNING
或 STOPPED
状态之一,但这些并不能真正指示任务运行状况,并可能最终导致垃圾邮件您的收件箱中有太多通知,没有用。
有关容器运行状况检查的AWS 官方文档建议将运行状况检查命令的输出转发到 CloudWatch Logs。如果您这样做了,那么您可以根据日志中显示的指示运行状况检查失败的特定文本配置 CloudWatch Log 警报。