Skip to content
BotServBotServ
MonitoreoPrometheusGrafanaDockerOllamaAuto-hospedajeOperaciones

Monitoreo para sistemas de IA locales

Monitoreo para Ollama, Docker, hardware y servicios de IA. Métricas, herramientas, alertas y mejores prácticas.

S

schutzgeist

6 min read
Monitoreo para sistemas de IA locales

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/tags muestra modelos cargados.
  • Consumo de recursos: cAdvisor muestra CPU y RAM del contenedor Ollama.
  • Métricas de GPU: NVIDIA DCGM o nvidia-smi proporcionan 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

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

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.

Volver al blog
Share:

Entradas relacionadas