

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.

# Uso de una instancia de Prometheus como recopilador
<a name="AMP-ingest-with-prometheus"></a>

Puede utilizar una instancia de Prometheus que se ejecute en modo *agente* (conocido como agente de *Prometheus*), para analizar métricas y enviarlas al espacio de trabajo de Amazon Managed Service para Prometheus.

En los siguientes temas se describen diferentes formas de configurar una instancia de Prometheus que se ejecuta en modo agente como recopilador de sus métricas.

**aviso**  
Cuando crea un agente de Prometheus, es responsable de la configuración y el mantenimiento. [Habilite las características de seguridad](https://prometheus.io/docs/prometheus/latest/configuration/https/) para evitar exponer los puntos de conexión de análisis de Prometheus al Internet público.

Si ha configurado varias instancias de Prometheus que supervisan el mismo conjunto de métricas y las ha enviado a un único espacio de trabajo de Amazon Managed Service para Prometheus para obtener una alta disponibilidad, debe configurar la desduplicación. Si no sigue los pasos para configurar la desduplicación, se le cobrará por todas las muestras de datos enviadas a Amazon Managed Service para Prometheus, incluidas las muestras duplicadas. Para obtener instrucciones sobre cómo configurar la desduplicación, consulte [Desduplicación de métricas de alta disponibilidad enviadas a Amazon Managed Service para Prometheus](AMP-ingest-dedupe.md).

**Topics**
+ [Configuración de la ingesta desde un nuevo servidor de Prometheus con Helm](AMP-onboard-ingest-metrics-new-Prometheus.md)
+ [Configuración de la ingesta desde un servidor de Prometheus existente en Kubernetes en EC2](AMP-onboard-ingest-metrics-existing-Prometheus.md)
+ [Configuración de la ingesta desde un servidor de Prometheus existente en Kubernetes en Fargate](AMP-onboard-ingest-metrics-existing-Prometheus-fargate.md)

# Configuración de la ingesta desde un nuevo servidor de Prometheus con Helm
<a name="AMP-onboard-ingest-metrics-new-Prometheus"></a>

Las instrucciones de esta sección le permiten empezar a utilizar Amazon Managed Service para Prometheus rápidamente. Ha configurado un nuevo servidor Prometheus en un clúster de Amazon EKS y el nuevo servidor utiliza una configuración predeterminada para enviar las métricas a Amazon Managed Service para Prometheus. Este método tiene los requisitos previos siguientes:
+ Debe tener un clúster de Amazon EKS desde el que el nuevo servidor de Prometheus recopilará las métricas.
+ El clúster de Amazon EKS debe tener un [controlador de CSI de Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) instalado (lo requiere Helm).
+ Debe utilizar la CLI 3.0 de Helm o una versión posterior.
+ Debe utilizar un ordenador Linux o macOS para realizar los pasos de las siguientes secciones.

## Paso 1: Agregar nuevos repositorios de gráficos de Helm
<a name="AMP-onboard-new-Prometheus-HelmRepo"></a>

Para agregar nuevos repositorios de gráficos de Helm, introduzca los siguientes comandos. Para obtener más información acerca de estos comandos, consulte [Repositorio de 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
```

## Paso 2: Crear un espacio de nombres para Prometheus
<a name="AMP-onboard-new-Prometheus-namespace"></a>

Introduzca el siguiente comando para crear un espacio de nombres de Prometheus para el servidor de Prometheus y otros componentes de supervisión. *prometheus-namespace*Sustitúyalo por el nombre que desee para este espacio de nombres.

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

## Paso 3: Configurar roles de IAM para cuentas de servicio
<a name="AMP-onboard-new-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. 

Con los roles de IAM de las cuentas de servicio, puede asociar un rol de IAM a una cuenta de servicio de Kubernetes. Esta cuenta de servicio puede proporcionar permisos AWS a los contenedores en 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. Las instrucciones de esa sección requieren el uso de `eksctl`. Para obtener más información, consulte [Introducción a Amazon Elastic Kubernetes Service - `eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). 

**nota**  
Si no está en EKS o AWS utiliza solo la clave de acceso y la clave secreta para acceder a Amazon Managed Service for Prometheus, no puede utilizar `EKS-IAM-ROLE` el SiGv4 basado.

## Paso 4: Configurar el nuevo servidor y comenzar a ingerir métricas
<a name="AMP-onboard-ingest-metrics-new-Prometheus-Helm"></a>

Para instalar el nuevo servidor de Prometheus que envía métricas al espacio de trabajo de Amazon Managed Service para Prometheus, siga estos pasos.

**Para instalar un nuevo servidor de Prometheus para enviar métricas al espacio de trabajo de Amazon Managed Service para Prometheus**

1. Utilice un editor de texto para crear un archivo denominado `my_prometheus_values_yaml` con el siguiente contenido.
   + *IAM\$1PROXY\$1PROMETHEUS\$1ROLE\$1ARN*Sustitúyalo por el ARN del **amp-iamproxy-ingest-role**que creó. [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)
   + *WORKSPACE\$1ID*Sustitúyalo por el ID de tu espacio de trabajo de Amazon Managed Service para Prometheus.
   + *REGION*Sustitúyala por la región de tu espacio de trabajo de Amazon Managed Service para 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. Introduzca el siguiente comando para crear el servidor de Prometheus.
   + Reemplace *prometheus-chart-name* por el nombre de la versión de Prometheus.
   + *prometheus-namespace*Sustitúyalo por el nombre de tu espacio de nombres de Prometheus.

   ```
   helm install prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace \
   -f my_prometheus_values_yaml
   ```
**nota**  
Puede personalizar el comando `helm install` de muchas maneras. Para obtener más información, consulte [Instalación de Helm](https://helm.sh/docs/helm/helm_install/) en la *documentación de Helm*.

# 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
```

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

Amazon Managed Service para Prometheus admite la ingesta de métricas de servidores de Prometheus en clústeres de Kubernetes autoadministrados que se ejecuten en Fargate. Para ingerir métricas de los servidores de Prometheus en los clústeres de Amazon EKS que se ejecutan en Fargate, anule las configuraciones predeterminadas en un archivo de configuración denominado amp\$1ingest\$1override\$1values.yaml de la siguiente manera:

```
prometheus-node-exporter:
        enabled: false
    
    alertmanager:
        enabled: false
    
    serviceAccounts:
      server:
        name: amp-iamproxy-ingest-service-account
        annotations: 
          eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN}
    
    server:
      persistentVolume:
        enabled: false
      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
```

Instale Prometheus mediante las anulaciones con el siguiente comando:

```
helm install prometheus-for-amp prometheus-community/prometheus \
                   -n prometheus \
                   -f amp_ingest_override_values.yaml
```

Tenga en cuenta que en la configuración del gráfico de Helm hemos deshabilitado el exportador de nodos y el administrador de alertas, además de ejecutar la implementación del servidor de Prometheus.

Puede verificar la instalación con el siguiente ejemplo de consulta de prueba.

```
$ awscurl --region region --service aps "https://aps-workspaces.region_id.amazonaws.com/workspaces/workspace_id/api/v1/query?query=prometheus_api_remote_read_queries"
    {"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"prometheus_api_remote_read_queries","instance":"localhost:9090","job":"prometheus"},"value":[1648461236.419,"0"]}]}}21
```