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

OpenTelemetry~18 min

Fundamentos de observabilidad con OpenTelemetry

Creada: 21 de marzo de 2026 · Publicada: 21 de marzo de 2026

Una guía para pasar de instrumentar por moda a responder preguntas operativas reales con logs, métricas y trazas conectadas.

Principiante
Leer guía
Reliability~12 min

Diseñar SLOs para equipos de plataforma

Creada: 30 de marzo de 2026 · Publicada: 30 de marzo de 2026

Un marco breve para escoger indicadores y objetivos que ayuden a negociar fiabilidad con producto y desarrollo.

Intermedio
Leer guía
Metrics~32 min

Downsampling de métricas con VictoriaMetrics en la versión gratuita

Creada: 10 de abril de 2026 · Publicada: 10 de abril de 2026

VictoriaMetrics Enterprise ofrece downsampling nativo en cluster. En la versión gratuita puedes aproximarlo con clusters separados, fan-out y `-dedup.minScrapeInterval`.

Avanzado
Leer guía