

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 de métricas desde una instancia de Amazon EC2 mediante escritura remota
<a name="AMP-onboard-ingest-metrics-remote-write-EC2"></a>

Esta sección explica cómo ejecutar un servidor de Prometheus con escritura remota en una instancia de Amazon Elastic Compute Cloud (Amazon EC2). También detalla cómo recopilar métricas de una aplicación de demostración escrita en Go y enviarlas a un espacio de trabajo de Amazon Managed Service para Prometheus.

## Requisitos previos
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-prereq"></a>

**importante**  
Antes de empezar, debe haber instalado Prometheus v2.26 o posterior. Suponemos que está familiarizado con Prometheus, Amazon EC2 y Amazon Managed Service para Prometheus. Para obtener información sobre cómo instalar Prometheus, consulte [Primeros pasos](https://prometheus.io/docs/prometheus/latest/getting_started/) en el sitio web de Prometheus.

Si no está familiarizado con Amazon EC2 o Amazon Managed Service para Prometheus, le recomendamos que comience leyendo las siguientes secciones:
+ [¿Qué es Amazon Elastic Compute Cloud?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)
+ [¿Qué es Amazon Managed Service para Prometheus?](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)

## Creación de un rol de IAM para Amazon EC2
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-IAM"></a>

Para transmitir las métricas, primero debes crear un rol de IAM con la política AWS gestionada. **AmazonPrometheusRemoteWriteAccess** A continuación, puede lanzar una instancia con el rol y transmitir las métricas al espacio de trabajo de Amazon Managed Service para Prometheus.

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Roles (Roles)** y, a continuación, seleccione **Create role (Crear rol)**.

1. En el tipo de entidad de confianza, elija **servicio de AWS **. En el caso de uso, elija **EC2**. Elija **Siguiente: permisos**.

1. En la barra de búsqueda, ingrese **AmazonPrometheusRemoteWriteAccess**. En el **nombre de la política**, seleccione y **AmazonPrometheusRemoteWriteAccess**, a continuación, elija **Adjuntar política**. Elija **Siguiente:Etiquetas**.

1. (Opcional) Cree etiquetas de IAM para el rol de IAM. Elija **Siguiente: Revisar**.

1. Escriba un nombre para el rol. Elija **Crear política**.

## Lanzamiento de una instancia de Amazon EC2
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-instance"></a>

Para lanzar una instancia de Amazon EC2, siga las instrucciones indicadas en [Lanzar una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role) de la *Guía del usuario de Amazon Elastic Compute Cloud para instancias de Linux*.

## Ejecución de la aplicación de demostración
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-demo"></a>

Tras crear el rol de IAM y lanzar una instancia de EC2 con ese rol, puede ejecutar una aplicación de demostración para comprobar cómo funciona.

**Ejecución de una aplicación de demostración y prueba de las métricas**

1. Utilice la siguiente plantilla para crear un archivo de Go llamado `main.go`.

   ```
   package main
   
   import (
       "github.com/prometheus/client_golang/prometheus/promhttp"
       "net/http"
   )
   
   func main() {
       http.Handle("/metrics", promhttp.Handler())
   
       http.ListenAndServe(":8000", nil)
   }
   ```

1. Ejecute los siguientes comandos para instalar las dependencias correctas.

   ```
   sudo yum update -y
   sudo yum install -y golang
   go get github.com/prometheus/client_golang/prometheus/promhttp
   ```

1. Ejecute la aplicación de demostración.

   ```
   go run main.go
   ```

   La aplicación de demostración debería ejecutarse en el puerto 8000 y mostrar todas las métricas de Prometheus expuestas. A continuación se muestra un ejemplo de estas métricas.

   ```
   curl -s http://localhost:8000/metrics 
   ...
   process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gauge
   process_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gauge
   process_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gauge
   process_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gauge
   process_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gauge
   process_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gauge
   promhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counter
   promhttp_metric_handler_requests_total{code="200"} 1
   promhttp_metric_handler_requests_total{code="500"} 0
   promhttp_metric_handler_requests_total{code="503"} 0
   ```

## Creación de un espacio de trabajo de Amazon Managed Service para Prometheus
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-workspace"></a>

Para crear un espacio de trabajo de Amazon Managed Service para Prometheus, siga las instrucciones en [Crear un espacio de trabajo](AMP-create-workspace.md).

## Ejecución de un servidor de Prometheus
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-server"></a>

1. Utilice el siguiente archivo YAML de ejemplo como plantilla para crear un nuevo archivo denominado `prometheus.yaml`. Para`url`, {{my-region}} sustitúyalo por el valor de tu región y {{my-workspace-id}} por el ID del espacio de trabajo que Amazon Managed Service for Prometheus generó para ti. Para`region`, sustitúyalo por {{my-region}} el valor de tu región.

   **Ejemplo: archivo YAML**

   ```
   global:
     scrape_interval: 15s
     external_labels:
       monitor: 'prometheus'
   
   scrape_configs:
     - job_name: 'prometheus'
       static_configs:
         - targets: ['localhost:8000']
   
   remote_write:
     -
       url: https://aps-workspaces.{{my-region}}.amazonaws.com/workspaces/{{my-workspace-id}}/api/v1/remote_write
       queue_config:
           max_samples_per_send: 1000
           max_shards: 200
           capacity: 2500
       sigv4:
            region: {{my-region}}
   ```

1. Ejecute el servidor de Prometheus para enviar las métricas de la aplicación de demostración al espacio de trabajo de Amazon Managed Service para Prometheus.

   ```
   prometheus --config.file=prometheus.yaml
   ```

El servidor de Prometheus ahora debería enviar las métricas de la aplicación de demostración al espacio de trabajo de Amazon Managed Service para Prometheus.