监控集群性能并查看日志
您可以使用许多可用的监控或日志记录工具在 Amazon EKS 中观察数据。您的 Amazon EKS 日志数据可以流式传输到 AWS 服务或合作伙伴工具来进行数据分析。AWS Management Console 中提供有很多服务,它们提供数据来对您的 Amazon EKS 问题进行排查。您还可以使用 AWS 支持的开源解决方案来监控 Amazon EKS 基础设施。
在 Amazon EKS 控制台的左侧导航窗格中选择集群后,您可以通过选择集群名称和可观测性选项卡,来查看集群运行状况和详细信息。要查看有关部署到集群的任何现有 Kubernetes 资源的详细信息,请参阅 在 AWS Management Console中查看 Kubernetes 资源。
监控是保持 Amazon EKS 和您的 AWS 解决方案的可靠性、可用性和性能的重要方面。我们建议您从您的 AWS 解决方案的所有部分收集监控数据。这样,您可以更轻松地调试出现的多点故障。在开始监控 Amazon EKS 之前,请确保您的监控计划可以解决以下问题。
-
您的目标是什么? 如果集群大幅扩展,是否需要实时通知?
-
需要观察哪些资源?
-
您需要多久观察一次这些资源? 贵公司是否想快速应对风险?
-
您想使用什么工具? 如果您已经在启动过程中运行 AWS Fargate,则您可以使用内置的日志路由器。
-
您想由谁负责执行监控任务?
-
当出现问题时,您希望向谁发送通知?
Amazon EKS 上的监控和日志记录
Amazon EKS 提供了用于监控和日志记录的内置工具。对于支持的版本,通过可观测性仪表板,您可以了解集群的性能。它可帮助您进行快速检测、排除故障和修复问题。除了监控功能外,它还包括基于控制面板审计日志的列表。Kubernetes 控制面板公开了许多指标,这些指标也可以在控制台之外抓取。
控制面板日志记录记录对集群的所有 API 调用、审计信息,以捕获哪些用户对集群执行了哪些操作,以及基于角色的信息。有关更多信息,请参阅 AWS 规范性指导中的 Amazon EKS 的日志记录和监控。
Amazon EKS 控制层面日志记录将审计和诊断日志直接从 Amazon EKS 控制层面提供到您账户中的 CloudWatch Logs。这些日志可让您轻松地保护和运行您的集群。您可以选择您需要的确切的日志类型,日志将作为日志流发送到 CloudWatch 中每个 Amazon EKS 集群的组。有关更多信息,请参阅 将控制面板日志发送到 CloudWatch Logs。
注意
当您在 Amazon CloudWatch 中检查 Amazon EKS 身份验证器日志时,系统将显示一些文本类似于以下示例文本的条目。
level=info msg="mapping IAM role" groups="[]" role="arn:aws:iam::111122223333:role/XXXXXXXXXXXXXXXXXX-NodeManagerRole-XXXXXXXX" username="eks:node-manager"
预期为包含此文本的条目。username
是一个 Amazon EKS 内部服务角色,用于为托管节点组和 Fargate 执行特定操作。
对于低级、可自定义的日志记录,Kubernetes 日志记录
Amazon EKS 与 AWS CloudTrail 集成,后者是在 Amazon EKS 中提供用户、角色或 AWS 服务所采取操作的记录的服务。CloudTrail 将 Amazon EKS 的所有 API 调用作为事件捕获。这些捕获包括来自 Amazon EKS 控制台的调用和对 Amazon EKS API 操作的代码调用。有关更多信息,请参阅 日志 API 调用作为 AWS CloudTrail 事件。
Kubernetes API 服务器公开了大量可用于监控和分析的指标。有关更多信息,请参阅 使用 Prometheus 监控集群指标。
要配置自定义 Amazon CloudWatch Logs 的 Fluent Bit,请参阅《Amazon CloudWatch 用户指南》中的设置 Fluent Bit。
Amazon EKS 监控和日志记录工具
Amazon Web Services 为您提供了各种可用于监控 Amazon EKS 的工具。您可以配置一些工具来设置自动监控,但有些工具需要手动调用。我们建议您在环境和现有工具集允许的范围内尽量实现监控任务自动化。
下表介绍了各种监控工具选项。
领域 | 工具 | 描述 | 设置 |
---|---|---|---|
控制层面 |
对于支持的版本,通过可观测性仪表板,您可以了解集群的性能。它可帮助您进行快速检测、排除故障和修复问题。 |
||
应用程序/控制面板 |
Prometheus 可用于监控应用程序和控制面板的指标和警报。 |
||
应用程序 |
CloudWatch Container Insights 从容器化应用程序和微服务中收集、聚合和汇总指标与日志。 |
||
应用程序 |
ADOT 收集和发送相关的指标,跟踪数据和元数据并将其发送到 AWS 监控服务或合作伙伴。它可以通过 CloudWatch Container Insights 设置。 |
||
应用程序 |
Amazon DevOps Guru 可以检测节点级别的运行性能和可用性。 |
||
应用程序 |
AWS X-Ray 接收有关应用程序的跟踪数据。此跟踪数据包括传入请求和传出请求以及有关请求的元数据。对于 Amazon EKS,实施需要 OpenTelemetry 附加组件。 |
||
应用程序 |
CloudWatch 在支持的版本上免费提供部分基本的 Amazon EKS 指标。您可以使用 CloudWatch Observability Operator 扩展此功能,以处理收集指标、日志和跟踪数据。 |
下表介绍了各种日志记录工具选项。
领域 | 工具 | 描述 | 设置 |
---|---|---|---|
控制层面 |
对于支持的版本,可观测性仪表板会根据控制面板审计日志显示列表。它还包括指向 Amazon CloudWatch 中控制面板日志的链接。 |
||
应用程序 |
Amazon CloudWatch Container Insights 从容器化应用程序和微服务中收集、聚合及汇总指标与日志。 |
||
控制层面 |
您可以直接从 Amazon EKS 控制面板将审计和诊断日志提供到您账户中的 CloudWatch Logs。 |
||
控制层面 |
它记录用户、角色或服务进行的 API 调用。 |
||
AWS Fargate 实例的多个区域 |
对于 AWS Fargate 实例,日志路由器将日志流式传输到 AWS 服务或合作伙伴工具。它将 AWS 用于 Fluent Bit |