CodeGym /Cursos /Docker SELF /Configuración del monitoreo de contenedores con Prometheu...

Configuración del monitoreo de contenedores con Prometheus

Docker SELF
Nivel 21 , Lección 3
Disponible

4.1 Instalación de Prometheus

Prometheus es un sistema de monitoreo y alertas súper potente de código abierto, diseñado para recolectar y almacenar métricas desde diferentes fuentes, incluyendo contenedores Docker. En esta lección, vamos a revisar en detalle el proceso de configurar el monitoreo de contenedores usando Prometheus, incluyendo instalación, configuración de recolección de métricas e integración con Docker.

1. Descargar e instalar Prometheus

Primero descarga la última versión de Prometheus desde la página oficial:

Terminal

wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz

Descomprime el archivo:

Terminal

tar xvfz prometheus-*.tar.gz
cd prometheus-*      

Mueve los archivos binarios a /usr/local/bin:

Terminal

sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/

4.2 Configuración del archivo de configuración de Prometheus

Prometheus usa un archivo de configuración llamado prometheus.yml para definir las fuentes de métricas y los ajustes de recolección de datos. Crea o edita el archivo prometheus.yml:

Yaml

global:
  scrape_interval: 15s  # Intervalo de recolección de métricas
      
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
      
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']

Este archivo de configuración incluye dos tareas (job):

  1. prometheus: para recolectar métricas de Prometheus en sí mismo.
  2. cadvisor: para recolectar métricas de cAdvisor, el cual será utilizado para monitorear los contenedores Docker.

5.3 Inicio de Prometheus

Inicia Prometheus utilizando el archivo de configuración creado:

Terminal

prometheus --config.file=prometheus.yml

Prometheus estará disponible en la dirección http://localhost:9090.

5.4 Instalación y configuración de cAdvisor

cAdvisor (Container Advisor) — es una herramienta para monitorear contenedores, que recopila y proporciona métricas para contenedores Docker. Para usarlo, realiza los siguientes pasos:

Ejecuta cAdvisor en un contenedor Docker:

Terminal

docker run -d \
  --name=cadvisor \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --privileged \
  gcr.io/cadvisor/cadvisor:latest

cAdvisor estará disponible en la dirección http://localhost:8080.

5.5 Actualización de la configuración de Prometheus para cAdvisor

Asegúrate de que la configuración de Prometheus incluya una tarea para cAdvisor. Un ejemplo de configuración fue mostrado antes.

Reinicia Prometheus para aplicar los cambios:

Terminal

prometheus --config.file=prometheus.yml

5.6 Verificación de la recopilación de métricas

Ve al interfaz web de Prometheus en la dirección http://localhost:9090 y asegúrate de que Prometheus está recopilando métricas desde cAdvisor. Para eso, haz una consulta en Prometheus:

Terminal

container_cpu_usage_seconds_total

Deberías ver los datos recopilados de los contenedores Docker.

5.7 Añadiendo métricas adicionales

Puedes añadir métricas adicionales en el archivo de configuración de Prometheus para recopilar más datos sobre tus contenedores. Ejemplo de métricas adicionales:

Yaml

  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

Para esto necesitarás instalar node_exporter, que proporciona métricas sobre el estado del sistema host.

Descarga e instala node_exporter:

Terminal

wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/

Inicia node_exporter:

Terminal

node_exporter &

Ahora node_exporter estará disponible en http://localhost:9100.

5.8 Creación de reglas de alerta

Prometheus soporta la creación de reglas de alerta para notificar a los administradores sobre problemas. Añade las reglas de alerta al archivo de configuración prometheus.yml:

Yaml

rule_files:
  - "alert.rules"
      
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - "localhost:9093"

Crea un archivo alert.rules con un ejemplo de reglas:

Yaml

groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: container_cpu_usage_seconds_total{job="cadvisor"} > 0.85
    for: 1m
    labels:
      severity: warning
    annotations:
      summary: "Se detectó un alto uso de CPU"
      description: "El contenedor está utilizando más del 85% de CPU por más de 1 minuto."
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION