Monitoreo para sistemas de IA locales
Qué cubre este artículo sobre monitoreo
- Por qué el monitoreo es indispensable para sistemas de IA.
- Qué métricas tienen sentido para GPU, CPU, RAM y servicios.
- Cómo trabajan juntos Prometheus, Grafana y Docker Stats.
- Cómo construir alertas y paneles para Ollama y agentes.
- Obstáculos típicos y mejores prácticas.
Introducción: monitoreo para sistemas de IA locales
Quien opera sistemas de IA locales necesita saber qué sucede en segundo plano. Un modelo que de repente responde lentamente, un contenedor que se bloquea o una GPU que se sobrecalienta son problemas que conviene detectar a tiempo. El monitoreo recopila datos sobre hardware, servicios y solicitudes, y los muestra en paneles o alertas.
Los sistemas de IA se comportan de manera distinta a las aplicaciones web clásicas. Tienen picos de carga, tiempos de respuesta prolongados y gran consumo de memoria. Un servidor que utiliza el 20 por ciento de la capacidad con solicitudes de texto puede llegar rápidamente al límite al generar imágenes. Sin monitoreo, estos patrones pasan desapercibidos.
¿Por qué necesito monitoreo?
El monitoreo es más que una característica opcional. Es la base para operaciones estables. Sin datos sobre CPU, GPU, RAM, red y servicios, permaneces en modo reactivo. Solo cuando algo se vuelve visiblemente lento o falla, actúas. Con monitoreo, identificas cuellos de botella antes de que afecten a los usuarios.
Ventajas concretas:
- Alerta temprana: notificaciones cuando la carga es alta, los servicios fallan o el almacenamiento está lleno.
- Control de costos: visualiza consumo de energía, uso de GPU y utilización de recursos.
- Análisis de errores: logs y métricas muestran por qué un servicio se bloqueó.
- Optimización: identifica qué modelos o cargas de trabajo consumen recursos.
- Planificación: toma decisiones sobre upgrades con base en datos.
Monitoreo explicado brevemente
El monitoreo se compone de varios niveles:
- Métricas: valores numéricos a lo largo del tiempo, por ejemplo porcentaje de uso de CPU.
- Logs: salidas de texto de aplicaciones y sistemas.
- Trazas: datos de flujo de solicitudes individuales a través de múltiples servicios.
- Paneles: representación gráfica de métricas.
- Alertas: notificaciones cuando se exceden umbrales.
Para escenarios de servidor doméstico o pequeña oficina, las métricas y logs suelen ser suficientes. Las trazas son interesantes en sistemas de agentes distribuidos.
¿Para quién es el monitoreo?
- Operadores de servidores domésticos que quieren estabilidad.
- Desarrolladores que ejecutan servicios de IA de forma permanente.
- Equipos que desean evitar caídas y cuellos de botella.
- Usuarios que quieren controlar costos de GPU y consumo de energía.
Términos importantes en torno al monitoreo
- Prometheus: sistema de código abierto para recopilar y almacenar métricas.
- Grafana: herramienta de visualización para paneles.
- Exporter: pequeños ayudantes que preparan métricas de servicios para Prometheus.
- Node Exporter: recopila métricas de hardware y sistema en Linux.
- cAdvisor: proporciona métricas para contenedores Docker.
- Time Series: series de tiempo de valores medidos.
- Alertmanager: envía alertas desde Prometheus.
Métricas importantes para IA local
Métricas de hardware
- Uso de CPU: qué porcentaje del procesador utiliza.
- Temperatura de CPU: especialmente importante bajo carga sostenida.
- Uso de RAM: memoria total y disponible.
- Uso de GPU: carga de cálculo de la tarjeta gráfica.
- Uso de VRAM: memoria de video ocupada.
- Temperatura de GPU: crítica durante entrenamiento y con modelos grandes.
- Uso de disco: el tamaño de modelos y datos crece rápidamente.
- Tráfico de red: especialmente relevante con conexiones en la nube.
Métricas de servicio
- Ollama en ejecución: ¿está activo el proceso?
- Tiempo de respuesta de API: ¿cuánto tarda una solicitud?
- Estado de contenedor: ¿se ejecutan los contenedores Docker?
- Tasa de errores: ¿cuántas solicitudes fallan?
- Carga de modelo: qué modelos están cargados y cuánto tiempo se ejecutan.
- Longitud de respuesta: cuántos tokens genera el modelo.
Métricas de aplicación
- Número de solicitudes por hora: muestra picos de uso.
- Tiempo de espera en cola: importante en operación multiusuario.
- Tasa de éxito: con qué frecuencia se genera un resultado significativo.
- Consumo de memoria por workspace: para AnythingLLM, Open WebUI y sistemas RAG.
Ejemplo práctico: configurar Prometheus y Grafana
1. Instalar Prometheus
Con Docker puedes iniciar Prometheus rápidamente:
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
restart: unless-stopped
volumes:
prometheus_data:
prometheus.yml define los objetivos:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['node-exporter:9100']
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8080']
2. Node Exporter para métricas de hardware
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
ports:
- "9100:9100"
restart: unless-stopped
3. cAdvisor para contenedores Docker
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
privileged: true
devices:
- /dev/kmsg:/dev/kmsg
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker:/var/lib/docker:ro
ports:
- "8080:8080"
restart: unless-stopped
4. Grafana para paneles
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
restart: unless-stopped
volumes:
grafana_data:
Después de iniciar, accede a http://localhost:9090 para Prometheus y http://localhost:3000 para Grafana.
Monitoreo para Ollama
Ollama no ofrece métricas incorporadas en Prometheus. Sin embargo, puedes monitorear estos valores:
- Estado del proceso: ¿se ejecuta Ollama?
- Llamadas de API:
curl http://localhost:11434/api/tagsmuestra modelos cargados. - Consumo de recursos: cAdvisor muestra CPU y RAM del contenedor Ollama.
- Métricas de GPU: NVIDIA DCGM o
nvidia-smiproporcionan VRAM y carga de GPU.
Para GPUs NVIDIA, se recomienda el exportador NVIDIA DCGM o escribir en scripts nvidia-smi en un archivo que Prometheus lea.
Configurar alertas de forma sensata
Las alertas deben sonar solo cuando hay problemas reales. Demasiadas alarmas hacen que las ignores. Ejemplos de umbrales sensatos:
- RAM por encima del 90 por ciento: riesgo de OOM-Kill.
- Temperatura de GPU por encima de 85 grados: riesgo de limitación térmica o daño.
- Ollama no alcanzable: servicio caído.
- Disco por encima del 85 por ciento: riesgo de falta de espacio.
- Tiempo de respuesta de API por encima de 30 segundos: modelo o hardware sobrecargado.
Obstáculos típicos en el monitoreo
- Demasiadas métricas: no recopiles todo, solo lo relevante.
- Sin retención: Prometheus almacena por defecto solo 15 días. Configura períodos más largos si es necesario.
- Etiquetas faltantes: sin etiquetas no puedes diferenciar contenedores o servicios.
- Intervalos de scrape muy altos: consultar con frecuencia sobrecarga el sistema.
- Alertas sin escalada: ¿quién recibe notificaciones y cómo?
- Solo visual: los paneles solos no ayudan en caídas nocturnas.
Enlaces e información adicional
- BotServ.de Conceptos básicos de Docker
- BotServ.de Monitoreo de Proxmox
- Prometheus
- Grafana
- NVIDIA DCGM
FAQ: Monitoreo para sistemas de IA locales
¿Necesito monitoreo para una mini computadora individual? Para pruebas puras no es obligatorio. Tan pronto como la máquina se ejecuta permanentemente u hospeda múltiples servicios, vale la pena.
¿Cuánto cuesta Prometheus y Grafana? Ambos son de código abierto y gratuitos. Solo hay costos por hardware, energía y almacenamiento.
¿Puedo mostrar logs con Grafana? Sí, con Loki. Permite recopilar y buscar logs centralmente.
¿Con qué frecuencia debe Prometheus consultar datos? 15 a 60 segundos es lo común. Más corto sobrecarga el sistema, más largo hace difíciles de detectar picos.
¿Es Grafana necesario si tengo Prometheus? No, pero Grafana hace los datos mucho más legibles y ofrece paneles.
¿Puedo ejecutar monitoreo en Docker? Sí, Prometheus, Grafana, cAdvisor y Node Exporter están disponibles como contenedores.
Fuentes y lecturas adicionales
- Prometheus: https://prometheus.io/
- Grafana: https://grafana.com/
- cAdvisor: https://github.com/google/cadvisor
- Node Exporter: https://github.com/prometheus/node_exporter
Resumen: monitoreo para sistemas de IA locales
El monitoreo es esencial para sistemas de IA locales estables. Prometheus recopila métricas, Grafana las visualiza, las alertas notifican sobre problemas. Lo importante son CPU, RAM, GPU, VRAM, estado de contenedores y tiempos de respuesta de API. Con unos pocos contenedores crearás un sistema de monitoreo sólido. Quien detecta cuellos de botella y caídas temprano evita sorpresas y puede optimizar deliberadamente.


