Amazon ECS 的监控工具 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon ECS 的监控工具

Amazon 提供各种可以用来监控 Amazon ECS 的工具。您可以配置其中的一些工具来为您执行监控任务,但有些工具需要手动干预。建议您尽可能实现监控任务自动化。

自动监控工具

您可以使用以下自动化监控工具来监控 Amazon ECS,并在出现错误时进行报告:

  • Amazon CloudWatch 告警 – 按您指定的时间段观察单个指标,并根据相对于给定阈值的指标值在若干时间段内执行一项或多项操作。具体操作是:通知已发送到 Amazon Simple Notification Service(Amazon SNS)主题或 Amazon EC2 Auto Scaling 策略。CloudWatch 告警不调用操作,因为这些操作处于特定状态;状态必须改变并保持指定时间。有关更多信息,请参阅 使用 CloudWatch 监控 Amazon ECS

    对于具有使用 Fargate 启动类型的任务的服务,您可以使用 CloudWatch 警报根据 CloudWatch 指标(如 CPU 和内存利用率)在服务中扩展或缩减任务。有关更多信息,请参阅 自动扩展 Amazon ECS 服务

    对于具有使用 EC2 启动类型的任务或服务的集群,您可以使用 CloudWatch 警报来根据 CloudWatch 指标(例如集群内存预留)横向缩减和横向扩展容器实例。

    对于使用经 Amazon ECS 优化的 Amazon Linux AMI 启动的容器实例,您可以使用 CloudWatch Logs 在一个方便的位置查看容器实例中的不同日志。您必须在容器实例上安装 CloudWatch 代理。有关更多信息,请参阅 Amazon CloudWatch用户指南中的使用命令行下载并配置 CloudWatch 代理。您还必须将 ECS-CloudWatchLogs 策略添加到 ecsInstanceRole 角色。有关更多信息,请参阅 监控容器实例的权限

  • Amazon CloudWatch Logs – 通过在任务定义中指定 awslogs 日志驱动程序,监控、存储和访问来自 Amazon ECS 任务中的容器的日志文件。有关更多信息,请参阅 将 Amazon ECS 日志发送到 CloudWatch

    您也可以从 Amazon ECS 容器实例监控、存储和访问操作系统及 Amazon ECS 容器代理日志文件。这种访问日志的方法可以用于使用 EC2 启动类型的容器。

  • Amazon CloudWatch Events – 匹配事件并将事件传送到一个或多个目标函数或流,进行更改、捕获状态信息和采取纠正措施。有关更多信息,请参阅本指南中的 使用 EventBridge 自动响应 Amazon ECS 错误 以及 Amazon CloudWatch Events 用户指南中的什么是 Amazon CloudWatch Events?

  • Container Insights – 从容器化应用程序和微服务中收集、聚合和汇总指标与日志。Container Insights 使用嵌入式指标格式将数据收集为性能日志事件。这些性能日志事件是使用结构化 JSON 架构的条目,允许批量提取和存储高基数数据。从该数据中,CloudWatch 在集群、任务和服务级别创建聚合指标作为 CloudWatch 指标。Container Insights 收集的指标可在 CloudWatch 自动控制面板中使用,也可在 CloudWatch 控制台的指标部分查看。

  • Amazon CloudTrail 日志监控 – 在账户间共享日志文件,通过将 CloudTrail 日志文件发送到 CloudWatch Logs 来进行实时监控,用 Java 编写日志处理应用程序,验证 CloudTrail 提供的日志文件未发生更改。有关更多信息,请参阅本指南中的 使用 Amazon CloudTrail 记录 Amazon ECS API 调用Amazon CloudTrail用户指南中的使用 CloudTrail 日志文件

  • 运行时监控 – 检测 Amazon 环境中集群和容器的威胁。运行时监控使用 GuardDuty 安全代理为单个 Amazon ECS 工作负载增加运行时可见性,例如,文件访问、进程执行和网络连接。

手动监控工具

监控 Amazon ECS 的另一个重要环节是手动监控 CloudWatch 警报未涵盖的那些项。CloudWatch、Trusted Advisor 和其他 Amazon 控制台控制面板提供 Amazon 环境状态的概览视图。建议您也可以查看容器实例上的日志文件以及任务中的容器。

  • Amazon ECS 控制台:

    • EC2 启动类型的集群指标

    • 服务指标

    • 服务运行状况

    • 服务部署事件

  • CloudWatch 主页:

    • 当前告警和状态

    • 告警和资源图表

    • 服务运行状况

    此外,您还可以使用 CloudWatch 执行以下操作:

    • 创建自定义控制面板以监控您关心的服务。

    • 绘制指标数据图,以排除问题并弄清楚趋势。

    • 搜索并浏览您所有的 Amazon 资源指标。

    • 创建和编辑警报以接收有关问题的通知。

  • 容器运行状况检查 - 这些命令在容器上本地运行,可验证应用程序的运行状况和可用性。您可以在任务定义中为每个容器配置这些命令。

  • Amazon Trusted Advisor 可以帮助您监控 Amazon 资源以提高性能、可靠性、安全性和成本效益。四个 Trusted Advisor 检查可供所有用户使用;超过 50 个检查可供具有“商业”或“企业”支持计划的用户使用。有关更多信息,请参阅 Amazon Trusted Advisor

    Trusted Advisor 具有与 Amazon ECS 相关的以下检查:

    • 一种容错能力,表示您有一项服务在单个可用区中运行。

    • 一种容错能力,表示您未对多个可用区使用分散放置策略。

  • Amazon Compute Optimizer 是一种服务,用于分析 Amazon 资源的配置和利用率指标。它将报告您的资源是否处于最佳状态并生成优化建议,以降低成本并提高工作负载的性能。

    有关更多信息,请参阅 针对 Amazon ECS 的 Amazon Compute Optimizer 建议