Configuración de la ingesta de métricas desde una instancia de Amazon EC2 mediante escritura remota - Servicio administrado por Amazon para Prometheus

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

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

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 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:

Creación de un rol de IAM para Amazon EC2

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/.

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

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

  4. 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.

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

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

Lanzamiento de una instancia de Amazon EC2

Para lanzar una instancia de Amazon EC2, siga las instrucciones indicadas en Lanzar una instancia de la Guía del usuario de Amazon Elastic Compute Cloud para instancias de Linux.

Ejecución de la aplicación de demostración

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) }
  2. 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
  3. 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

Para crear un espacio de trabajo de Amazon Managed Service para Prometheus, siga las instrucciones en Crear un espacio de trabajo.

Ejecución de un servidor de Prometheus

  1. Utilice el siguiente archivo YAML de ejemplo como plantilla para crear un nuevo archivo denominado prometheus.yaml. Paraurl, 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. Pararegion, 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
  2. 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.