將 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 工作區擷取指標至您的 Amazon 受管服務

注意

根據預設,擷取至工作區的指標會儲存 150 天,然後自動刪除。這個長度是可調整的配額

本節中的指示可協助您快速啟動,並使用 Amazon Managed Service for Prometheus 執行。它假設您已經建立了工作區。在本節中,您要在 Amazon EKS 叢集中設定新的 Prometheus 伺服器,而新伺服器會使用預設組態做為代理程式,將指標傳送至 Prometheus 的 Amazon 受管服務。此主題有以下先決條件:

  • 您必須擁有 Amazon EKS 叢集,新的 Prometheus 伺服器將從中收集指標。

  • 您的 Amazon EKS 叢集必須安裝一個 Amazon EBS CSI 驅動程式 (Helm 要求)。

  • 您必須使用頭盔 CLI 3.0 或更高版本。

  • 您必須使用 Linux 或 MacOS 電腦來執行以下各節中的步驟。

步驟 1:新增 Helm Chart 儲存庫

若要新增 Helm Chart 儲存庫,請輸入下列命令。如需有關這些命令的詳細資訊,請參閱 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 的 Amazon 託管服務,則無法使用基於 Sigv4。EKS-IAM-ROLE

步驟 4:設定新伺服器並開始擷取指標

若要安裝新的 Prometheus 代理程式,並將指標傳送至您的 Amazon Managed Service for Prometheus 工作區,請依照這些步驟執行。

安裝新的 Prometheus 代理程式,並將指標傳送至您的 Amazon Managed Service for Prometheus 工作區
  1. 使用文字編輯器建立名為 my_prometheus_values_yaml 的檔案,包含下列內容。

    • 以您在中建立的 ARN 取代 IAM_PROMETHEUS_ROL_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