Container Insights - Amazon CloudWatch

Container Insights

使用 CloudWatch Container Insights 可以从容器化应用程序和微服务中收集、聚合和汇总指标与日志。Container Insights 可用于 Amazon EC2 上的 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS) 和 Kubernetes 平台。Container Insights 支持从部署在 AWS Fargate 上的集群中收集针对 Amazon ECS 和 Amazon EKS 的指标。

CloudWatch 会自动收集许多资源(例如 CPU、内存、磁盘和网络)的指标。Container Insights 还提供诊断信息(如容器重新启动失败),以帮助您查明问题并快速解决问题。您还可以设置 Container Insights 收集的指标的 CloudWatch 告警。

Container Insights 使用嵌入式指标格式将数据收集为性能日志事件。这些性能日志事件是使用结构化 JSON 架构的条目,该架构允许批量提取和存储高基数数据。从该数据中,CloudWatch 在集群、节点、pod、任务和服务级别创建聚合指标以作为 CloudWatch 指标。Container Insights 收集的指标可在 CloudWatch 自动控制面板中使用,也可在 CloudWatch 控制台的指标部分查看。容器任务运行一段时间后,指标才可见。

当您部署 Container Insights 时,它会自动为性能日志事件创建日志组。您无需自行创建该日志组。

为帮助您管理 Container Insights 成本,CloudWatch 不会根据日志数据自动创建所有可能的指标。但是,您可以通过使用 CloudWatch Logs Insights 分析原始性能日志事件来查看其他指标和其他精细级别。

在 Container Insights 的原始版本中,收集的指标和摄取的日志将作为自定义指标收费。借助针对 Amazon EKS 增强了可观测性的 Container Insights,Container Insights 指标和日志按每次观测收费,而不是按存储的指标或摄取的日志收费。有关 CloudWatch 定价的更多信息,请参阅 Amazon CloudWatch 定价

在 Amazon EKS 和 Kubernetes 上,Container Insights 使用 CloudWatch 代理的容器化版本在集群中查找所有运行的容器。然后,它在每个性能堆栈层收集性能数据。

Container Insights 支持使用 AWS KMS key 对其收集的日志和指标进行加密。要启用此加密,必须手动为接收 Container Insights 数据的日志组启用 AWS KMS 加密。这将导致 Container Insights 使用提供的 KMS 密钥加密这些数据。仅支持对称密钥。请勿使用非对称 KMS 密钥加密日志组。

有关更多信息,请参阅使用 AWS KMS 加密 CloudWatch Logs 中的日志数据

针对 Amazon EKS 增强了可观测性的 Container Insights

2023 年 11 月 6 日,发布了 Container Insights 的新版本。此版本支持针对在 Amazon EC2 上运行的 Amazon EKS 集群增强的可观测性,并且可以从这些集群收集更详细的指标。安装后,它会自动为您的 Amazon EKS 集群收集详细的基础设施遥测数据和容器日志。然后,您可以使用精选的、可立即使用的控制面板,深入研究应用程序和基础设施的遥测数据。

针对 Amazon EKS 增强了可观测性的 Container Insights 可收集容器级别的精细运行状况、性能和状态指标,以及控制面板指标。有关收集的其他指标和维度的更多信息,请参阅 Amazon EKS 和 Kubernetes Container Insights 指标

如果您在 2023 年 11 月 6 日之后在 Amazon EC2 上的 Amazon EKS 集群上使用 CloudWatch 代理安装了 Container Insights,便拥有针对 Amazon EKS 增强了可观测性的 Container Insights。否则,您可以按照 在 CloudWatch 中升级到针对 Amazon EKS 增强了可观测性的 Container Insights 中的说明将 Amazon EKS 集群升级到此新版本。

Container Insights 支持 CloudWatch 跨账户可观测性。您可以使用一个监控账户对一个区域内跨多个 AWS 账户的应用程序进行监控和问题排查。有关更多信息,请参阅 CloudWatch 跨账户可观测性

针对 Amazon EKS 增强了可观测性的 Container Insights 还支持 Windows Worker 节点。

Fargate 不支持针对 Amazon EKS 增强了可观测性的 Container Insights。

注意

通过导航到 Container Insights 控制台,您可以了解您的集群是否可以升级到针对 Amazon EKS 增强了可观测性的 Container Insights。为此,请在 CloudWatch 控制台的导航窗格中依次选择 InsightsContainer Insights。在 Container Insights 控制台中,横幅会告知您是否有任何可以升级的 Amazon EKS 集群,并会链接到升级页面。

支持的平台

Container Insights 可用于 Amazon EC2 实例上的 Amazon Elastic Container Service、Amazon Elastic Kubernetes Service 和 Kubernetes 平台。

  • 对于 Amazon ECS,Container Insights 同时在 Linux 和 Windows Server 实例上的集群、任务和服务级别收集指标。它在 Linux 实例上只收集实例级别的指标。

    对于 Amazon ECS,网络指标仅适用于 bridge 网络模式和 awsvpc 网络模式下的容器。它们不适用于 host 网络模式下的容器。

  • 对于 Amazon Elastic Kubernetes Service 和 Amazon EC2 实例上的 Kubernetes 平台,仅在 Linux 实例上支持 Container Insights。

CloudWatch 代理容器镜像

亚马逊在 Amazon Elastic Container Registry 上提供 CloudWatch 代理容器镜像。有关更多信息,请参阅 Amazon ECR 上的 cloudwatch-agent