Volver a guíasGuía

Prometheus para métricas del sistema (multiplataforma)

Una base práctica para scrapear targets y validar la salud del stack en Windows, Linux, macOS y Docker.

Configura Prometheus y verifica métricas operativas con un flujo reproducible, independientemente del sistema operativo del equipo.

Creada: 5 de abril de 2026

Publicada: 5 de abril de 2026

Tiempo estimado16 min
NivelPrincipiante
Antes de empezarDocker y Docker Compose instalados en tu máquina.
PlataformasDocker
WhatsAppXLinkedIn

Docker

Esta guía se ejecuta como laboratorio Docker. Usa los fragmentos de Compose y configuración del artículo como fuente principal y no asumas soporte nativo para otros sistemas operativos si no aparece documentado.

Docker y Docker Compose instalados en tu máquina.Al menos un servicio con endpoint `/metrics` o un exporter disponible.Puertos 9090 y 9100 libres para el laboratorio local.
Preparación del laboratorio
docker compose config
Arranque del stack
docker compose up -d --build
Verificación
docker compose ps
Prometheus sigue siendo una de las formas más directas de empezar con métricas porque su modelo es simple: descubre targets, scrapea endpoints y deja consultas listas para alertas o dashboards. Para un entorno local o de laboratorio, Docker Compose te da un arranque limpio y repetible.

Arquitectura mínima del laboratorio

  • Un contenedor de Prometheus con su archivo de configuración montado desde disco.
  • Un target inicial. Puede ser tu aplicación o un exporter como node-exporter.
  • Persistencia básica para no perder series cada vez que reinicias.
Objetivo del setup

No busques alta disponibilidad en esta guía. La meta es tener una base local fiable para empezar a consultar métricas y entender el flujo completo.

Crea el stack con Docker Compose

docker-compose.yml
services:
  prometheus:
    image: prom/prometheus:v2.54.1
    container_name: prometheus
    command:
      - --config.file=/etc/prometheus/prometheus.yml
      - --storage.tsdb.path=/prometheus
      - --web.enable-lifecycle
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
      - prometheus_data:/prometheus

  node-exporter:
    image: prom/node-exporter:v1.8.2
    container_name: node-exporter
    ports:
      - "9100:9100"

volumes:
  prometheus_data:

Prometheus scrapea un exporter sencillo para validar que la tubería funciona antes de apuntarlo a tu aplicación.

1

Define el archivo de scrapes

Crea un directorio `prometheus/` junto al `docker-compose.yml`.

Configura un `scrape_interval` corto para el laboratorio y añade el target del exporter para verificar la ingesta.

prometheus/prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["prometheus:9090"]

  - job_name: "node"
    static_configs:
      - targets: ["node-exporter:9100"]
2

Arranca el stack

Lanza `docker compose up -d` y espera a que Prometheus y node-exporter estén en estado healthy o running.

Abre `http://localhost:9090/targets` y confirma que ambos jobs aparecen como UP.

command
docker compose up -d

Valida que ya puedes consultar métricas

No des el despliegue por bueno hasta comprobar consultas concretas. La vista de Targets dice si hay scrape; la vista de Graph confirma si ya tienes datos útiles.

  • Prueba `up` para ver todos los targets activos.
  • Prueba `rate(node_cpu_seconds_total[5m])` para verificar series del exporter.
  • Comprueba `prometheus_tsdb_head_series` para entender el volumen que ya estás guardando.

Checklist antes de pasar a producción

  • Prometheus inicia con configuración válida y sin errores de parseo.
  • Los targets aparecen como UP de forma estable.
  • Tienes persistencia montada para no perder series entre reinicios.
  • Has definido una estrategia para secretos o auth en endpoints sensibles.

Añade tu primer servicio real

Cuando el laboratorio ya funciona, sustituye el exporter de ejemplo o añade un job nuevo apuntando a tu aplicación. Si trabajas con OpenTelemetry Collector, Prometheus puede scrapear el endpoint que expone el propio collector o exporters específicos.

¿Necesito service discovery para una primera iteración?

No. Empieza con `static_configs` mientras entiendes el modelo. La discovery dinámica llega después, cuando el entorno ya es menos manual.

¿Qué hago si todos los targets están DOWN?

Revisa primero networking y nombres DNS dentro de Docker Compose. En local, el error más común es usar `localhost` en lugar del nombre del servicio entre contenedores.

Siguiente paso recomendado

El siguiente salto natural es conectar esta instancia a Grafana y construir un dashboard mínimo de salud del host o de tu aplicación.

Más lecturas relacionadas

Más lecturas relacionadas

Logs~35 min

Corregir cardinalidad de labels en Loki antes de que desaparezcan logs de incidente

Creada: 12 de julio de 2026 · Publicada: 12 de julio de 2026

Aprende a detectar labels explosivos en Loki, mover contexto volátil fuera del índice y validar que los logs críticos siguen disponibles durante incidentes.

LinuxDocker
Avanzado
Leer guía
Reliability~45 min

Diseñar alertas SLO de burn rate multi-ventana sin despertar a nadie por ruido

Creada: 11 de julio de 2026 · Publicada: 11 de julio de 2026

Aprende a definir SLIs, budget, PromQL y pruebas promtool para alertas de burn rate que detectan incidentes rápidos sin convertir cada pico corto en una guardia rota.

Linux
Intermedio
Leer guía
OpenTelemetry~45 min

Detectar backpressure de ingesta entre OpenTelemetry, Data Prepper y OpenSearch antes de perder telemetría

Creada: 10 de julio de 2026 · Publicada: 10 de julio de 2026

Aprende a validar Collector, Data Prepper y OpenSearch con métricas de paridad, colas y rechazos para frenar drops de trazas, logs o métricas antes de que desaparezca la evidencia del incidente.

LinuxDocker
Avanzado
Leer guía