【问题标题】:How can I set up a Cloudwatch alarm for HTTP 4XX/5XX on an ECS service/task?如何为 ECS 服务/任务上的 HTTP 4XX/5XX 设置 Cloudwatch 警报?
【发布时间】:2025-12-02 09:10:02
【问题描述】:

我正在尝试设置 Cloudwatch 警报来监控我在 Amazon ECS 中运行的应用程序。此 Web 应用程序在 Docker 容器中运行,配置为应用程序负载均衡器后面的 ECS 服务,并在可以增加/减少正在运行的任务数量的自动缩放组内。

我一直在查看 Cloudwatch 中提供的不同的 namespacesmetrics,但看不到我正在寻找的东西。如果我的应用程序收到开始抛出大量 HTTP 5XX 错误,我想知道它。同样,如果我的应用程序抛出大量 HTTP 4XX 错误,我也想知道这一点。

我看到负载均衡器上有HTTPCode_ELB_4XX_CountHTTPCode_ELB_5XX_Count 等指标在负载均衡器上,但这与应用程序监控不同。这些特定指标的文档甚至声明“此计数不包括目标生成的任何响应代码。”

在 ECS 服务或任务的上下文中,哪些(如果有)指标将监控目标生成的 HTTP 代码?

【问题讨论】:

  • 您将哪个 docker 日志记录驱动程序用于您的容器?如果您使用 awslogs(CW 驱动程序),您可以根据您的应用程序事件设置警报。
  • 我确实在使用 awslogs 驱动程序将应用程序日志通过管道传输到 Cloudwatch 日志组,但这不包括 HTTP 状态代码。另一方面,我还将负载均衡器上的访问日志记录到 S3 存储桶中。有没有办法在这些设备上设置 Cloudwatch 警报?

标签: amazon-web-services amazon-cloudwatch amazon-ecs


【解决方案1】:

如果您为您的应用程序使用应用程序负载均衡器,那非常简单............

Goto ec2-dashboard --> targetgroup (which attached to docker containers) --> select monitoring tab ---> there create alarm --> and select 4XXXX or 5XXXX count

【讨论】:

  • 我试着按照你说的做,但目标群体似乎并没有真正跟踪太多数据。这是一个屏幕截图:i.imgur.com/CnxF3P5.png 所以我可以在目标组上创建 CW 警报......但它们永远停留在 INSUFFICENT_DATA 状态。 ECS不支持吗?还是我需要启用一些属性?
  • 给我发报警截图
  • 是的,就是这样。我已经从图像中模糊了一些 PII。 i.imgur.com/qoGYMRd.png