亚马逊AWS官方博客

Amazon Managed Service for Prometheus 收集器为 Amazon EKS 提供无代理指标收集功能



今天,我很高兴宣布推出一项新功能,Amazon Managed Service for Prometheus 收集器,该功能可以自动、无代理发现和收集 Amazon Elastic Kubernetes Service(Amazon EKS)中的 Prometheus 指标。Amazon Managed Service for Prometheus 收集器由一个抓取程序组成,该抓取程序可从 Amazon EKS 应用程序和基础设施中发现和收集指标,无需在集群中运行任何收集器。

这项新功能通过 Amazon Managed Service for Prometheus 提供完全托管并兼容 Prometheus 的监控和警报。其中一个显著的好处是,收集器是完全托管的,可以自动调整大小,并根据您的用例进行扩展。这意味着您无需为收集器运行任何计算即可收集可用指标。这有助于优化指标收集成本,以监控在 EKS 上运行的应用程序和基础架构。

此次发布后,Amazon Managed Service for Prometheus 现在支持两种主要的 Prometheus 指标收集模式:AWS 托管收集、完全托管和无代理的收集器以及客户托管收集。

开始使用 Amazon Managed Service for Prometheus 收集器
我们看看如何使用 AWS 托管收集器,通过这一新功能将指标摄取到 Amazon Managed Service for Prometheus 中的工作区。然后,我们将评估 Amazon Managed Service for Grafana 中收集的指标。

当您使用 Amazon EKS 控制台创建新的 EKS 集群时,您现在可以选择将 Prometheus 指标发送到 Amazon Managed Service for Prometheus,来启用 AWS 托管收集器。在目标部分,您还可以创建新工作区或选择现有的 Amazon Managed Service for Prometheus 工作区。您可以按照入门指南,了解有关如何创建工作区的更多信息。

然后,您可以灵活地使用编辑器定义抓取程序配置或上传现有配置。抓取程序配置可控制您希望抓取程序发现和收集指标的方式。要查看可以配置的可能值,请访问 Prometheus 配置页面。

完成 EKS 集群创建后,您可以转到集群页面上的可观测性选项卡,查看 EKS 集群中运行的抓取程序列表。

下一步是配置您的 EKS 集群,允许抓取程序访问指标。您可以找到有关配置 Amazon EKS 集群的步骤和信息。

正确配置 EKS 集群后,收集器将自动发现 EKS 集群和节点中的指标。要可视化指标,您可以使用与 Prometheus 工作区集成的 Amazon Managed Grafana。有关更多信息,请访问设置 Amazon Managed Grafana 以与 Amazon Managed Service for Prometheus 结合使用页面。

以下是由收集器摄取,并在 Amazon Managed Grafana 工作区中可视化的指标的屏幕截图。在这里,您可以运行一个简单的查询来获取所需的指标。

使用 AWS CLI 和 API
除了使用 Amazon EKS 控制台之外,您还可以使用 API 或 AWS 命令行界面(AWS CLI)添加 AWS 托管收集器。如果您想要将 AWS 托管收集器添加到现有 EKS 集群或对现有收集器配置进行一些修改,则此方法非常有用。

要创建抓取程序,您可以运行以下命令:

aws amp create-scraper \ 
       --source eksConfiguration="{clusterArn=<EKS-CLUSTER-ARN>,securityGroupIds=[<SG-SECURITY-GROUP-ID>],subnetIds=[<SUBNET-ID>]}" \ 
       --scrape-configuration configurationBlob=<BASE64-CONFIGURATION-BLOB> \ 
       --destination=ampConfiguration={workspaceArn="<WORKSPACE_ARN>"}

您可以从相应的 AWS 管理控制台获取大部分参数值,例如 EKS 集群 ARN 和 Amazon Managed Service for Prometheus 工作区 ARN。除此之外,您还需要将抓取程序配置定义为 configurationBlob

定义抓取程序配置后,在传递 API 调用之前,需要将配置文件编码为 base64 编码。以下是我在 Linux 开发计算机中使用的命令,用于将 sample-configuration.yml 编码为 base64,并将其复制到剪贴板。

$ base64 sample-configuration.yml | pbcopy

现已推出
Amazon Managed Service for Prometheus 收集器功能现已面向支持 Amazon Managed Service for Prometheus 的所有 AWS 区域的所有 AWS 客户推出。

了解详情:

祝大家构建顺利!
Donnie