

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

# 使用 Helm 设置从新 Prometheus 服务器进行摄取
<a name="AMP-onboard-ingest-metrics-new-Prometheus"></a>

本部分中的说明有助于您快速启动并运行 Amazon Managed Service for Prometheus。您在 Amazon EKS 集群中设置了一台新的 Prometheus 服务器，新服务器使用默认配置向 Amazon Managed Service for Prometheus 发送指标。本方法包含以下先决条件：
+ 您必须有一个 Amazon EKS 集群，新的 Prometheus 服务器将从该集群收集指标。
+ 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 图表存储库
<a name="AMP-onboard-new-Prometheus-HelmRepo"></a>

输入以下命令以添加新的 Helm 存储库。有关这些命令的更多信息，请参阅 [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 和私有密钥访问适用于 Prometheus 的亚马逊托管服务，则无法使用基于的 Sigv4。`EKS-IAM-ROLE`

## 步骤 4：设置新服务器并开始摄取指标
<a name="AMP-onboard-ingest-metrics-new-Prometheus-Helm"></a>

要安装将指标发送到您 Amazon Managed Service for Prometheus 工作区的新 Prometheus 服务器，请按照以下步骤操作。

**安装新的 Prometheus 服务器以将指标发送到 Amazon Managed Service for Prometheus 工作区**

1. 使用文本编辑器创建名为 `my_prometheus_values_yaml` 的文件，其中包含以下内容。
   + *IAM\$1PROXY\$1PROMETHEUS\$1ROLE\$1ARN*替换为您在中创建**amp-iamproxy-ingest-role**的 ARN。[设置服务角色从 Amazon EKS 集群中摄取指标](set-up-irsa.md#set-up-irsa-ingest)
   + *WORKSPACE\$1ID*替换为适用于 Prometheus 的亚马逊托管服务工作空间的 ID。
   + *REGION*替换为适用于 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/)。