使用 Amazon Managed Service for Prometheus 进行容器监控 - EKS 指标的收集与分析
以 Prometheus 兼容方式收集 EKS/ECS 指标,通过 PromQL 查询。介绍与 Managed Grafana 集成构建容器监控基础设施的方法。
Managed Prometheus 概述
Managed Service for Prometheus 是 Prometheus 兼容的托管监控服务。Prometheus 服务器的配置、扩展、存储管理和高可用性配置均自动化,让您专注于指标收集和查询。通过 Prometheus 的 Remote Write API 发送指标,使用 PromQL 执行查询。现有的 Prometheus Exporter、Grafana 仪表板和告警规则可直接迁移。
与 EKS 的集成
从 EKS 集群收集指标的标准模式是将 ADOT (AWS Distro for OpenTelemetry) Collector 作为 DaemonSet 部署。ADOT Collector 从各节点的 kubelet、cAdvisor、kube-state-metrics 抓取指标,发送到 Managed Prometheus 的 Remote Write 端点。通过 IRSA (IAM Roles for Service Accounts) 为 ADOT Collector 授予向 Managed Prometheus 写入的权限。如果使用 Prometheus Operator,只需保持 ServiceMonitor 和 PodMonitor 的配置不变,将 Remote Write 目标更改为 Managed Prometheus 即可完成迁移。
PromQL 与告警
使用 PromQL 查询收集的指标,在 Managed Grafana 中构建仪表板。除 CPU 使用率、内存使用率、Pod 重启次数、请求延迟等标准 Kubernetes 指标外,还可收集和可视化应用特定的自定义指标。通过 Alert Manager 定义基于 PromQL 的告警规则,向 SNS 主题发送通知。指标保留 150 天,可用于长期容量规划和趋势分析。 在考虑容器监控的运维设计时,可参考相关书籍 (Amazon)。
Managed Prometheus 的费用
Managed Prometheus 的费用由指标摄入量、存储和查询构成。摄入方面,前 20 亿样本/月每 1000 万样本约 0.90 美元。存储每 GB 月费约 0.03 美元,保留 150 天。查询基于处理的样本数,每 1000 万样本约 0.10 美元。与自托管 Prometheus 服务器相比,由于无需 EC2 实例运维成本和存储管理工作,中等规模以上的环境中托管服务的总成本往往更低。
总结
Managed Prometheus 是 Prometheus 兼容的托管监控服务,最适合容器工作负载的指标收集。通过 ADOT Collector 从 EKS 自动收集指标,使用 PromQL 查询,在 Managed Grafana 中可视化的集成模式是标准方案。