TechLead
Lección 17 de 18
5 min de lectura
Docker

Monitoreo y Logging

Monitorea contenedores Docker con health checks, logging estructurado y herramientas de observabilidad

Monitoreo de Contenedores

Monitorear tus contenedores en producción es esencial para mantener la confiabilidad. Necesitas rastrear el uso de recursos, la salud de la aplicación y los logs para identificar y resolver problemas rápidamente.

Monitoreo Incorporado de Docker

# Uso de recursos en tiempo real
docker stats

# Salida formateada
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

Health Checks

# En docker-compose.yml
services:
  api:
    build: .
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

Logging en Docker

# Ver logs del contenedor
docker logs api
docker logs -f api              # Seguir (en vivo)
docker logs --tail 100 api      # Últimas 100 líneas
docker logs --since 1h api      # Última hora

Logging Estructurado

// Usar logging JSON estructurado para fácil análisis
const pino = require('pino');
const logger = pino({ level: process.env.LOG_LEVEL || 'info' });

logger.info({ port: 3000 }, 'Servidor iniciado');
logger.error({ err, userId: req.user.id }, 'Solicitud fallida');

Buenas Prácticas de Monitoreo

  • ✅ Siempre implementa endpoints de health check
  • ✅ Usa logging JSON estructurado (no texto plano)
  • ✅ Monitorea CPU, memoria, disco y uso de red
  • ✅ Configura alertas para reinicios y fallos de salud de contenedores
  • ✅ Usa un sistema de logging centralizado para producción

Continuar Aprendiendo