使用 Amazon Distro for OpenTelemetry
您可以通过使用 Amazon Distro for OpenTelemetry 收集器设置 Container Insights 从 Amazon EKS 集群收集指标。有关 Amazon Distro for OpenTelemetry 的更多信息,请参阅 Amazon Distro for OpenTelemetry
重要
如果您使用 Amazon Distro for OpenTelemetry 进行安装,则会安装 Container Insights,但无法获取针对 Amazon EKS 增强了可观测性的 Container Insights。您将不会收集针对 Amazon EKS 增强了可观测性的 Container Insights 中支持的详细指标。
如何设置 Container Insights 取决于集群托管在 Amazon EC2 实例上还是 Amazon Fargate 上。
托管在 Amazon EC2 上的 Amazon EKS 集群
如果您尚未执行此操作,请确保您已满足先决条件,例如必要的 IAM 角色。有关更多信息,请参阅 在 CloudWatch 中验证 Container Insights 的先决条件。
Amazon 提供 Helm Chart,您可以用它来设置对 Amazon EC2 上的 Amazon Elastic Kubernetes Service 的监控。此监控使用 Amazon Distro for OpenTelemetry(ADOT) 收集器用于指标,使用 Fluent Bit 用于日志。因此,Helm Chart 对使用 Amazon EC2 上的 Amazon EKS 并希望收集指标和日志以发送到 CloudWatch Container Insights 的客户非常有用。有关此 Helm Chart 的更多信息,请参阅发送到 Amazon CloudWatch Container Insights 的 EC2 上 EKS 的指标和日志的 ADOT Helm chart
或者,您也可以使用本部分剩余内容中的说明。
首先,通过输入以下命令将 Amazon Distro for OpenTelemetry 收集器部署为 DaemonSet。
curl https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/eks/otel-container-insights-infra.yaml | kubectl apply -f -
要确认该收集器正在运行,请输入以下命令。
kubectl get pods -l name=aws-otel-eks-ci -n aws-otel-eks
如果此命令的输出包含处于 Running
状态的多个 Pod,则收集器正在运行并从集群收集指标。收集器会创建一个名为 aws/containerinsights/
的日志组并将性能日志事件发送给它。cluster-name
/performance
有关如何在 CloudWatch 中查看 Container Insights 指标的信息,请参阅 查看 Container Insights 指标。
Amazon 还在 GitHub 上为此情况提供了文档。如果要自定义 Container Insights 发布的指标和日志,请参阅 https://aws-otel.github.io/docs/getting-started/container-insights/eks-infra
托管在 Fargate 上的 Amazon EKS 集群
有关如何配置和部署 ADOT 收集器以从部署到 Fargate 上的 Amazon EKS 集群的工作负载收集系统指标并将其发送到 CloudWatch Container Insights 的说明,请参阅 Amazon Distro for OpenTelemetry 文档中的 Container Insights EKS Fargate