将 Prometheus 指标摄取到工作区 - Amazon Managed Service for Prometheus

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Prometheus 指标摄取到工作区

摄取指标的一种方法是使用独立的 Prometheus 代理(在代理模式下运行的 Prometheus 实例)从集群中抓取指标,然后将其转发到 Amazon Managed Service for Prometheus 进行存储和监控。本节介绍如何通过使用 Helm 设置新的 Prometheus 代理实例,将指标摄取从 Amazon EKS 设置为 Amazon Managed Service for Prometheus 工作区。

有关向 Amazon Managed Service for Prometheus 摄取数据的其他方法(包括如何保护指标和创建高可用性指标)的信息,请参阅将指标摄取到适用于 Prometheus 的亚马逊托管服务工作空间

注意

默认情况下,采集到工作空间的指标会存储 150 天,然后会自动删除。此长度是可调整的配额

本部分中的说明有助于您快速启动并运行 Amazon Managed Service for Prometheus。它假设您已经创建了一个工作区。在本节中,您将在 Amazon EKS 集群中设置一台新的 Prometheus 服务器,新服务器使用默认配置充当代理向适用于 Prometheus 的亚马逊托管服务发送指标。本方法包含以下先决条件:

  • 你必须有一个 Amazon EKS 集群,新的 Prometheus 服务器将从中收集指标。

  • 您的亚马逊 EKS 集群必须安装亚马逊 EBS CSI 驱动程序(Helm 需要)。

  • 你必须使用 Helm CLI 3.0 或更高版本。

  • 必须使用 Linux 或 macOS 计算机来执行以下各节中的步骤。

步骤 1:添加新的 Helm 图表存储库

输入以下命令以添加新的 Helm 存储库。有关这些命令的更多信息,请参阅 Helm 存储库

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo add kube-state-metrics https://kubernetes.github.io/kube-state-metrics helm repo update

步骤 2:创建 Prometheus 命名空间

输入以下命令,为 Prometheus 服务器和其它监控组件创建 Prometheus 命名空间。prometheus-agent-namespace替换为你想要的这个命名空间的名称。

kubectl create namespace prometheus-agent-namespace

步骤 3:设置服务账户的 IAM 角色。

要使用这种摄取方法,您需要为运行 Prometheus 代理的 Amazon EKS 集群中的服务账户使用 IAM 角色。

通过服务账户的 IAM 角色,您可以将 IAM 角色与 Kubernetes 服务账户关联。然后,此服务账户可向使用它的任意 Pod 中的容器提供 AWS 权限。有关更多信息,请参阅服务账户的 IAM 角色

如果您尚未设置这些角色,请按照 设置服务角色从 Amazon EKS 集群中摄取指标 中的说明设置角色。该部分中的说明要求使用 eksctl。有关更多信息,请参阅 Amazon Elastic Kubernetes Service 入门 – eksctl

注意

如果您不在 EKS 上,或者仅使用访问密钥 AWS 和私有密钥访问适用于 Prometheus 的亚马逊托管服务,则无法使用基于的 Sigv4。EKS-IAM-ROLE

步骤 4:设置新服务器并开始摄取指标

要安装新 Prometheus 代理并将指标发送到 Amazon Managed Service for Prometheus 工作区,请按照以下步骤操作。

安装新 Prometheus 代理并将指标发送到 Amazon Managed Service for Prometheus 工作区
  1. 使用文本编辑器创建名为 my_prometheus_values_yaml 的文件,其中包含以下内容。

    • IAM_PROXY_PROMETHEUS_ROLE_ARN 替换为你在中创建的 ARNamp-iamproxy-ingest-role设置服务角色从 Amazon EKS 集群中摄取指标

    • WORKSPACE_ID 替换为您 Amazon Managed Service for Prometheus 工作区的 ID。

    • REGION 替换为您 Amazon Managed Service for Prometheus 工作区的区域。

    ## The following is a set of default values for prometheus server helm chart which enable remoteWrite to AMP ## For the rest of prometheus helm chart values see: https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus/values.yaml ## serviceAccounts: server: name: amp-iamproxy-ingest-service-account annotations: eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN} server: remoteWrite: - url: https://aps-workspaces.${REGION}.amazonaws.com/workspaces/${WORKSPACE_ID}/api/v1/remote_write sigv4: region: ${REGION} queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500
  2. 输入以下命令以创建 Prometheus 服务器。

    • prometheus-chart-name替换为您的 Prometheus 版本名称。

    • prometheus-agent-namespace替换为您的 Prometheus 命名空间的名称。

    helm install prometheus-chart-name prometheus-community/prometheus -n prometheus-agent-namespace \ -f my_prometheus_values_yaml