Marcio Cunha

Cómo monitorizar contenedores Docker con Prometheus y alertas

Aprende a extraer métricas de CPU, memoria y E/S de disco en contenedores Docker usando Prometheus y configura alertas en Alertmanager.

Marcio Cunha•3 min
También disponible en:PortuguêsEnglish
Resumen
  • La recolección eficiente de métricas en contenedores requiere herramientas capaces de mapear el consumo real de recursos aislados.
  • El ecosistema de Prometheus utiliza el cAdvisor integrado para exponer estadísticas detalladas de hardware directamente al recolector.
  • Configurar reglas de alerta en Alertmanager evita sorpresas operativas al disparar notificaciones inmediatas ante cuellos de botella.
  • El análisis preciso de E/S de disco y memoria ayuda a identificar fugas de datos antes de que afecten a la aplicación.
  • Mantener un entorno de contenedores monitoreado garantiza mayor estabilidad y previsibilidad para los sistemas en producción.

Por qué monitorizar contenedores Docker en producción

Cuando ejecutamos aplicaciones aisladas dentro de contenedores, tenemos la falsa ilusión de que los recursos son infinitos o de que el sistema operativo se encarga de todo por sí solo. En la práctica, un único contenedor mal configurado puede consumir toda la memoria disponible en la máquina anfitriona y derribar los servicios vecinos. Para evitar este tipo de sorpresas desagradables, necesitamos herramientas de observabilidad capaces de mirar dentro del ecosistema de virtualización ligera y decirnos exactamente qué está pasando. Tal como hacemos al monitorear la salud de discos duros mecánicos con análisis predictivo, necesitamos datos claros y constantes para actuar antes de que el problema se convierta en una caída de servicio.

Entendiendo el papel de cAdvisor y Prometheus

Prometheus es un sistema de monitorización de código abierto que recopila métricas de varios orígenes en formato de texto y las almacena en una base de datos temporal altamente optimizada. Sin embargo, Docker por sí mismo no expone sus estadísticas internas en un formato nativo que Prometheus pueda entender directamente por defecto. Ahí es donde entra cAdvisor (Container Advisor), una herramienta desarrollada por Google que se ejecuta como un contenedor ligero, lee el uso de recursos directamente desde el núcleo de Linux y traduce todo al formato que Prometheus sabe recolectar y analizar fácilmente.

Configurando la recolección de métricas de CPU y memoria

Para comenzar a recopilar los datos, necesitamos configurar el archivo de configuración de Prometheus, conocido como prometheus.yml, agregando un trabajo que apunte a la dirección donde cAdvisor está exponiendo las métricas de los contenedores. En la práctica, Prometheus visita esta dirección periódicamente, realiza un escaneo rápido y guarda el historial de consumo de procesamiento y uso de RAM de cada contenedor activo en la máquina. Esto nos da una visión quirúrgica de qué servicio está exigiendo más esfuerzo al procesador y cuáles están a punto de agotar su límite de memoria.

Extrayendo métricas de E/S de disco en tiempo real

Además del procesamiento y la memoria, la lectura y escritura en disco (E/S) suelen ser los mayores cuellos de botella en aplicaciones modernas basadas en bases de datos o colas de mensajes. cAdvisor expone métricas específicas que muestran cuántos bytes son leídos y escritos por segundo en cada contenedor en ejecución en la infraestructura. Rastrear estas métricas evita que los discos se saturen por operaciones excesivas de escritura, permitiéndote redimensionar volúmenes o optimizar consultas antes de que el almacenamiento quede comprometido. Para complementar esta implementación en entornos de producción, consulte también nuestros análisis técnicos sobre Cómo calibrar osciloscopios y sondas para circuitos rápidos y Cómo reducir jitter en redes industriales con switches.

Creando reglas de alerta personalizadas en Alertmanager

Recopilar datos atractivos en gráficos coloridos no sirve de mucho si nadie los está mirando en el momento en que ocurre la falla. Es por eso que combinamos Prometheus con Alertmanager, un componente responsable de gestionar, agrupar y enviar notificaciones a través de canales como correo electrónico, Slack o Telegram. Definimos reglas lógicas en Prometheus —por ejemplo, disparar un aviso si el uso de memoria de un contenedor supera el ochenta por ciento durante más de cinco minutos— y Alertmanager garantiza que el ingeniero de guardia reciba la alerta de inmediato.

Monitorear la infraestructura de contenedores con Prometheus y Alertmanager transforma la gestión de sistemas de una postura reactiva a un enfoque totalmente preventivo. Al mapear el comportamiento de la CPU, la memoria y el disco, tu equipo gana la tranquilidad necesaria para escalar servicios con seguridad y mantener el entorno estable bajo cualquier volumen de tráfico.