本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Prometheus 指標擷取至工作區
擷取指標的一種方法是使用獨立的 Prometheus 代理程式 (以代理程式模式執行的 Prometheus 執行個體) 從叢集抓取指標,然後將指標轉送至 Amazon Managed Service for Prometheus 以進行儲存和監控。本節說明如何透過使用 Helm 設定 Prometheus 代理程式的新執行個體,從 Amazon EKS 將指標擷取到 Amazon Managed Service for Prometheus 工作區。
若要在 Amazon EKS 中產生指標,例如 Kubernetes 或節點層級指標,您可以使用 Amazon EKS 社群附加元件。如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的可用社群附加元件。
如需其他將資料擷取至 Amazon Managed Service for Prometheus 方式的相關資訊,包含如何保護指標和建立高可用性指標,請參閱 將指標擷取到您的 Amazon Managed Service for Prometheus 工作區。
注意
擷取到工作區的指標預設會儲存 150 天,然後自動刪除。您可以將工作區設定為最長 1095 天 (三年),以調整保留期間。如需詳細資訊,請參閱設定工作區。
本節中的指示可協助您快速啟動,並使用 Amazon Managed Service for Prometheus 執行。它假設您已建立工作區。在本節中,您會在 Amazon EKS 叢集中設定新的 Prometheus 伺服器,而新伺服器會使用預設組態做為代理程式,將指標傳送至 Amazon Managed Service for Prometheus。此主題有以下先決條件:
-
您必須擁有新的 Prometheus 伺服器將從中收集指標的 Amazon EKS 叢集。
-
您的 Amazon EKS 叢集必須安裝 Amazon EBS CSI 驅動程式 (Helm 要求)。
-
您必須使用 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 並且只使用存取金鑰和私密金鑰來存取 Amazon Managed Service for Prometheus 時,則無法使用 EKS-IAM-ROLE
型 SigV4。
步驟 4:設定新伺服器並開始擷取指標
若要安裝新的 Prometheus 代理程式,並將指標傳送至您的 Amazon Managed Service for Prometheus 工作區,請依照這些步驟執行。
安裝新的 Prometheus 代理程式,並將指標傳送至您的 Amazon Managed Service for Prometheus 工作區
-
使用文字編輯器建立名為
my_prometheus_values_yaml
的檔案,包含下列內容。-
將
IAM_PROXY_PROMETHEUS_ROLE_ARN
替換為您在 自 Amazon EKS 叢集設定指標擷取作業的服務角色 中建立 amp-iamproxy-ingest-role 的 ARN。 -
將
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
-
-
輸入下列命令以建立 Prometheus 伺服器。
-
將
prometheus-chart-name
替換為您的 Prometheus 版本名稱。 -
將
prometheus-agent-namespace
替換為您 Prometheus 命名空間的名稱。
helm install
prometheus-chart-name
prometheus-community/prometheus -nprometheus-agent-namespace
\ -f my_prometheus_values_yaml -