在 EC2 上 Kubernetes 中設定現有 Prometheus 伺服器的擷取作業 - Amazon Managed Service for Prometheus

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 EC2 上 Kubernetes 中設定現有 Prometheus 伺服器的擷取作業

Amazon Managed Service for Prometheus 支援擷取 Prometheus 伺服器的指標,位於執行 Amazon EKS 的叢集以及在 Amazon EC2 中執行的自我管理 Kubernetes。本節中的詳細說明適用於 Amazon EKS 叢集中的 Prometheus 伺服器。除了您將需要在 Kubernetes 叢集中自行設定服務帳戶的 OIDC 提供者和 IAM 角色以外,Amazon EC2 上的自我管理 Kubernetes 叢集步驟皆相同。

本節中的指示使用 Helm 做為 Kubernetes 套件管理員。

步驟 1:為服務帳戶設定 IAM 角色

若為我們正在記錄的入職方法,您需要在執行 Prometheus 伺服器的 Amazon EKS 叢集中使用服務帳戶的 IAM 角色。這些角色也稱為服務角色

透過服務角色,您可以產生 IAM 角色與 Kubernetes 服務帳戶的關聯。然後,此服務帳戶可以為使用該服務帳戶的任何網繭中的容器提供 AWS 權限。如需詳細資訊,請參閱服務帳戶的 IAM 角色

如果您尚未設定這些角色,請按照中的 自 Amazon EKS 叢集設定指標擷取作業的服務角色 指示設定角色。

步驟 2:使用 Helm 升級您現有的 Prometheus 伺服器

本節中的說明包括設定遠端寫入和 sigv4 以進行驗證,並授權 Prometheus 伺服器遠端寫入 Amazon Managed Service for Prometheus 工作區。

使用 Prometheus 版本 2.26.0 或更新版本

如果您稍後使用 Helm Chart 與版本 2.26.0 或更新版本的 Prometheus 伺服器,請按照下列步驟操作。

使用 Helm Chart 從 Prometheus 伺服器設定遠端寫入
  1. 在 Helm 組態檔案中建立一個新的遠端寫入區段:

    • 以您在中步驟 1:為服務帳戶設定 IAM 角色建立amp-iamproxy-ingest-role的 ARN 取${IAM_PROXY_PROMETHEUS_ROLE_ARN}代。角色 ARN 的格式應為 arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role

    • ${WORKSPACE_ID} 替換為 Amazon Managed Service for Prometheus 工作區 ID。

    • ${REGION} 替換為 Amazon Managed Service for Prometheus 工作區的地區 (例如 us-west-2)。

    ## 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. 使用 Helm 更新您現有的 Prometheus 伺服器組態:

    • prometheus-chart-name 替換為您的 Prometheus 版本名稱。

    • prometheus-namespace 替換為安裝 Prometheus 伺服器的 Kubernetes 命名空間。

    • my_prometheus_values_yaml 替換為 Helm 組態檔路徑。

    • current_helm_chart_version 替換為您 Prometheus 伺服器 Helm Chart 的目前版本。您可以通過使用 Helm list 命令找到目前圖表版本。

    helm upgrade prometheus-chart-name prometheus-community/prometheus \ -n prometheus-namespace \ -f my_prometheus_values_yaml \ --version current_helm_chart_version

使用早期 Prometheus 的版本

若您正在使用 2.26.0 之前的 Prometheus 版本,請按照以下步驟操作。這些步驟使用並行方法,因為早期版本的 Prometheus 本身不支援簽 AWS 名版本 4 簽署程序 (Sigv4)。AWS

以下說明假設您使用 Helm 部署 Prometheus。

從 Prometheus 伺服器設定遠端寫入
  1. 在您的 Prometheus 伺服器上,建立新的遠端寫入組態。首先,建立新的更新檔案。我們將呼叫該檔案 amp_ingest_override_values.yaml

    將下列值新增至 YAML 檔案。

    serviceAccounts: server: name: "amp-iamproxy-ingest-service-account" annotations: eks.amazonaws.com/role-arn: "${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}" server: sidecarContainers: - name: aws-sigv4-proxy-sidecar image: public.ecr.aws/aws-observability/aws-sigv4-proxy:1.0 args: - --name - aps - --region - ${REGION} - --host - aps-workspaces.${REGION}.amazonaws.com - --port - :8005 ports: - name: aws-sigv4-proxy containerPort: 8005 statefulSet: enabled: "true" remoteWrite: - url: http://localhost:8005/workspaces/${WORKSPACE_ID}/api/v1/remote_write

    ${REGION} 替換為 Amazon Managed Service for Prometheus 工作區的地區。

    以您在中步驟 1:為服務帳戶設定 IAM 角色建立amp-iamproxy-ingest-role的 ARN 取${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}代。角色 ARN 的格式應為 arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role

    ${WORKSPACE_ID} 替換為工作區 ID。

  2. 升級 Prometheus Helm Chart。首先,輸入下列命令尋找 Helm Chart 名稱。在此命令的輸出中,尋找名稱包含 prometheus 的圖表。

    helm ls --all-namespaces

    然後輸入下列命令。

    helm upgrade --install prometheus-helm-chart-name prometheus-community/prometheus -n prometheus-namespace -f ./amp_ingest_override_values.yaml

    替換prometheus-helm-chart-name為上一個命令中返回的 Prometheus 頭盔圖的名稱。將 prometheus-namespace 替換為命名空間名稱。

下載 Helm Chart

如果您尚未在本機下載 Helm Chart,您可以使用以下命令進行下載。

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm pull prometheus-community/prometheus --untar