

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

# 設定使用 Helm 從新的 Prometheus 伺服器擷取
<a name="AMP-onboard-ingest-metrics-new-Prometheus"></a>

本節中的指示可協助您快速啟動，並使用 Amazon Managed Service for Prometheus 執行。您在 Amazon EKS 叢集中設定新的 Prometheus 伺服器，新伺服器會使用預設組態將指標傳送至 Amazon Managed Service for Prometheus。此主題有以下先決條件：
+ 您必須擁有新的 Prometheus 伺服器將從中收集指標的 Amazon EKS 叢集。
+ 您的 Amazon EKS 叢集必須安裝 [Amazon EBS CSI 驅動程式](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) (Helm 要求）。
+ 您必須使用 Helm CLI 3.0 或更新版本。
+ 您必須使用 Linux 或 macOS 電腦來執行以下各節中的步驟。

## 步驟 1：新增 Helm Chart 儲存庫
<a name="AMP-onboard-new-Prometheus-HelmRepo"></a>

若要新增 Helm Chart 儲存庫，請輸入下列命令。如需有關這些命令的詳細資訊，請參閱 [Helm 儲存庫](https://helm.sh/docs/helm/helm_repo/)。

```
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 命名空間
<a name="AMP-onboard-new-Prometheus-namespace"></a>

輸入下列命令，為 Prometheus 伺服器和其他監控元件建立 Prometheus 命名空間。將 *prometheus-namespace* 替換為您希望此命名空間的名稱。

```
kubectl create namespace prometheus-namespace
```

## 步驟 3：為服務帳戶設定 IAM 角色
<a name="AMP-onboard-new-Prometheus-IRSA"></a>

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

透過服務帳戶的 IAM 角色，您可以產生 IAM 角色與 Kubernetes 服務帳戶的關聯。然後，此服務帳戶可以為使用該服務帳戶之任何 Pod 中的容器提供 AWS 許可。如需詳細資訊，請參閱[服務帳戶的 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)。

如果您尚未設定這些角色，請按照中的 [自 Amazon EKS 叢集設定指標擷取作業的服務角色](set-up-irsa.md#set-up-irsa-ingest) 指示設定角色。本節中的說明需要使用 `eksctl`。如需詳細資訊，請參閱 [Amazon Elastic Kubernetes Service 入門 - `eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html)。

**注意**  
當您不在 EKS 或 ， AWS 並且只使用存取金鑰和私密金鑰來存取 Amazon Managed Service for Prometheus 時，則無法使用 `EKS-IAM-ROLE` 型 SigV4。

## 步驟 4：設定新伺服器並開始擷取指標
<a name="AMP-onboard-ingest-metrics-new-Prometheus-Helm"></a>

若要安裝新的 Prometheus 伺服器，該伺服器會將指標傳送至您的 Amazon Managed Service for Prometheus 工作區，請按照下列步驟操作。

**安裝新的 Prometheus 伺服器，以將指標傳送至您的 Amazon Managed Service for Prometheus 工作區**

1. 使用文字編輯器建立名為 `my_prometheus_values_yaml` 的檔案，包含下列內容。
   + 將 *IAM\$1PROXY\$1PROMETHEUS\$1ROLE\$1ARN* 替換為您在 [自 Amazon EKS 叢集設定指標擷取作業的服務角色](set-up-irsa.md#set-up-irsa-ingest) 中建立 **amp-iamproxy-ingest-role** 的 ARN。
   + 將 *WORKSPACE\$1ID* 替換為您 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
   ```

1. 輸入下列命令以建立 Prometheus 伺服器。
   + 將 *prometheus-chart-name* 替換為您的 Prometheus 版本名稱。
   + 將 *prometheus-namespace* 替換為您的 Prometheus 命名空間的名稱。

   ```
   helm install prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace \
   -f my_prometheus_values_yaml
   ```
**注意**  
您可以使用多種方式自訂 `helm install` 命令。如需詳細資訊，請參閱 *Helm 文件*中的 [Helm 安裝](https://helm.sh/docs/helm/helm_install/)。