

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de la ingesta desde un servidor de Prometheus existente en Kubernetes en EC2
<a name="AMP-onboard-ingest-metrics-existing-Prometheus"></a>

Amazon Managed Service para Prometheus admite la ingesta de métricas de servidores de Prometheus en clústeres que se ejecuten en Amazon EKS y en clústeres de Kubernetes autoadministrados que se ejecuten en Amazon EC2. Las instrucciones detalladas de esta sección son para un servidor de Prometheus en un clúster de Amazon EKS. Los pasos para un clúster de Kubernetes autoadministrado en Amazon EC2 son los mismos, excepto que deberá encargarse de configurar por su cuenta los roles de proveedor de OIDC y de IAM para las cuentas de servicio en el clúster de Kubernetes.

En las instrucciones de esta sección, se utiliza Helm como administrador de paquetes de Kubernetes.

**Topics**
+ [Paso 1: Configurar roles de IAM para cuentas de servicio](#AMP-onboard-existing-Prometheus-IRSA)
+ [Paso 2: Actualizar un servidor de Prometheus existente mediante Helm](#AMP-onboard-ingest-metrics-existing-remotewrite)

## Paso 1: Configurar roles de IAM para cuentas de servicio
<a name="AMP-onboard-existing-Prometheus-IRSA"></a>

Para el método de incorporación que estamos documentando, debe utilizar roles de IAM para las cuentas de servicio del clúster de Amazon EKS en el que se ejecuta el servidor de Prometheus. Estos roles también se denominan *roles de servicio*.

Con los roles de servicio, puede asociar un rol de IAM a una cuenta de servicio de Kubernetes. A continuación, esta cuenta de servicio puede proporcionar AWS permisos a los contenedores de cualquier pod que utilice esa cuenta de servicio. Para obtener más información, consulte [Roles de IAM para cuentas de servicio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).

Si aún no ha configurado estos roles, siga las instrucciones de [Configuración de roles de servicio para la ingesta de métricas desde los clústeres de Amazon EKS](set-up-irsa.md#set-up-irsa-ingest) para configurarlos.

## Paso 2: Actualizar un servidor de Prometheus existente mediante Helm
<a name="AMP-onboard-ingest-metrics-existing-remotewrite"></a>

Las instrucciones de esta sección incluyen la configuración de la escritura remota y sigv4 para autenticar el servidor de Prometheus y autorizarlo a escribir de forma remota en el espacio de trabajo de Amazon Managed Service para Prometheus.

### Uso de Prometheus versión 2.26.0 o posterior
<a name="AMP-onboard-ingest-metrics-Helm13"></a>

Siga estos pasos si utiliza un gráfico de Helm con una imagen del servidor de Prometheus de la versión 2.26.0 o posterior.

**Para configurar la escritura remota desde un servidor de Prometheus mediante un gráfico de Helm**

1. Cree una nueva sección de escritura remota en el archivo de configuración de Helm:
   + `${IAM_PROXY_PROMETHEUS_ROLE_ARN}`Sustitúyalo por el ARN del **amp-iamproxy-ingest-role**que creó. [Paso 1: Configurar roles de IAM para cuentas de servicio](#AMP-onboard-existing-Prometheus-IRSA) El ARN del rol debe tener el formato `arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role`.
   + Reemplace `${WORKSPACE_ID}` por el ID del espacio de trabajo de Amazon Managed Service para Prometheus.
   + Reemplace `${REGION}` por la región del espacio de trabajo de Amazon Managed Service para Prometheus (como `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
   ```

1. Actualice la configuración existente del servidor de Prometheus mediante Helm:
   + Reemplace `prometheus-chart-name` por el nombre de la versión de Prometheus.
   + Reemplace `prometheus-namespace` por el espacio de nombres de Kubernetes en el que está instalado el servidor de Prometheus.
   + Reemplace `my_prometheus_values_yaml` por la ruta al archivo de configuración de Helm.
   + Reemplace `current_helm_chart_version` por la versión actual del gráfico de Helm del servidor de Prometheus. Puede encontrar la versión actual del gráfico mediante el comando [helm list](https://helm.sh/docs/helm/helm_list/).

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

### Uso de versiones anteriores de Prometheus
<a name="AMP-onboard-ingest-metrics-Helm8"></a>

Siga estos pasos si utiliza una versión de Prometheus anterior a la 2.26.0. Estos pasos utilizan un enfoque de sidecar, ya que las versiones anteriores de Prometheus no AWS admiten de forma nativa el proceso de firma de la versión 4 de Signature (SiGv4).AWS 

En estas instrucciones, se presupone que está utilizando Helm para implementar Prometheus.

**Para configurar la escritura remota desde un servidor de Prometheus**

1. En el servidor de Prometheus, cree una nueva configuración de escritura remota: En primer lugar, cree un nuevo archivo de actualización. Llamaremos al archivo `amp_ingest_override_values.yaml`.

   Agregue los siguientes valores al archivo 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
   ```

   Reemplace `${REGION}` por la región del espacio de trabajo de Amazon Managed Service para Prometheus.

   `${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}`Sustitúyalo por el ARN del **amp-iamproxy-ingest-role**que creó. [Paso 1: Configurar roles de IAM para cuentas de servicio](#AMP-onboard-existing-Prometheus-IRSA) El ARN del rol debe tener el formato `arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role`.

   Reemplace `${WORKSPACE_ID}` por el ID del espacio de trabajo.

1. Mejore el gráfico de Helm de Prometheus. Primero, busca el nombre del gráfico de Helm introduciendo el siguiente comando. En el resultado de este comando, busque un gráfico con un nombre que incluya `prometheus`.

   ```
   helm ls --all-namespaces
   ```

   A continuación, escriba el siguiente comando.

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

   *prometheus-helm-chart-name*Sustitúyalo por el nombre de la carta de mando de Prometheus que se devolvió en el comando anterior. Reemplace *prometheus-namespace* por el nombre del espacio de nombres.

#### Descarga de gráficos de Helm
<a name="AMP-onboard-ingest-downloadHelm"></a>

Si aún no ha descargado los gráficos de Helm de forma local, puede utilizar el siguiente comando para ello.

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