docs Monitorización

Monitorización

Métricas en vivo e históricas, logs persistentes y con búsqueda, alertas por umbral y escaneo de vulnerabilidades de imágenes.

Métricas de contenedores

La pestaña Monitoring de cada aplicación, base de datos, stack de Compose y servidor de juegos muestra cuatro gráficas:

  • CPU Usage — media con una envolvente de picos. Se mide como docker stats, así que un contenedor que use varios núcleos puede superar el 100%
  • Memory Usage — bytes en uso frente al límite de memoria del contenedor
  • Disk Usage — la capa escribible del contenedor más sus volúmenes (se muestrea cada 5 minutos, porque es costoso de calcular para Docker)
  • Network — tráfico entrante y saliente como tasa (bytes/s)

Cada contenedor en ejecución se muestrea cada 30 segundos y los valores más recientes se envían a los dashboards abiertos por Socket.IO. En un stack de Compose, las gráficas muestran el total de todos sus contenedores en ejecución. Si el servicio tiene alertas abiertas, un banner sobre las gráficas las muestra.

Histórico de métricas

Las muestras se agregan en PostgreSQL cada minuto, así que las gráficas conservan el histórico entre reinicios. Elige un rango sobre las gráficas: 1h, 6h, 24h, 7d o 30d. Los rangos de hasta 24 horas usan resolución de 1 minuto, y los rangos más largos usan resolución de 1 hora.

ResoluciónSe conserva duranteVariable de entorno
1 minuto48 horasMETRICS_RAW_RETENTION_HOURS
1 hora90 díasMETRICS_HISTORY_RETENTION_DAYS

Logs

La pestaña Logs tiene dos modos:

  • Live — muestra en tiempo real stdout y stderr del contenedor en ejecución
  • History — busca en los logs almacenados por texto, nivel (error, warn, info, debug, fatal) y rango de tiempo, con 100 líneas por página

Los logs se recopilan de todos los contenedores en ejecución de forma continua, tenga o no alguien la pestaña abierta. Se conservan durante 7 días. Establece LOG_RETENTION_DAYS para cambiarlo. Antes de almacenar una línea, DeployKit elimina secretos como tokens con un prefijo conocido (ghp_, sk-, …), cabeceras Bearer y Basic, pares password= y secret= , claves de AWS y cadenas hexadecimales largas. Las líneas de más de 8 KB se truncan. El nivel del log es una estimación a partir del texto de la línea, así que no confíes en él para nada crítico.

Logs de build

La salida del build y del despliegue se transmite al dashboard durante un despliegue y se almacena con cada registro de despliegue. Se aplica la misma redacción de secretos.

Alertas

La página Alerts de la barra lateral muestra los eventos de alerta y las reglas que los generan. Haz clic en New rule para crear una regla con estos ajustes:

CampoOpciones
ServicioUna aplicación o una base de datos
MétricaCPU %, Memory %, Net RX, Net TX
CondiciónMayor que / Menor que
UmbralUn número entero de 0 a 100
Canal de notificaciónIn-app, Slack (URL de incoming webhook) o Webhook (cualquier URL)
Cooldown1–1440 minutos, 15 por defecto
  • Cada regla se comprueba con cada muestra de 30 segundos. Cuando se supera el umbral, DeployKit registra un evento y envía una notificación. No vuelve a dispararse para esa regla hasta que pase el cooldown.
  • Un evento se resuelve automáticamente con la primera muestra que vuelve a estar dentro del umbral. Usa "Show resolved" para ver eventos pasados.
  • Cada alerta aparece como un toast en el dashboard, sea cual sea el canal que elijas. Slack y Webhook además envían la alerta a esa URL. El cuerpo del webhook tiene el evento "alert.fired".
  • Ver las alertas no requiere ningún rol especial. Los Operators pueden crear, editar y desactivar reglas. Solo los admins pueden eliminarlas.

Cada regla de alerta tiene su propio canal. Las reglas de alerta no usan los canales de notificación del proyecto descritos en Notificaciones, que gestionan los eventos de despliegue y backup.

Nota: Las reglas de Net RX/TX comparan el contador total de bytes del contenedor desde que arrancó, no una tasa. Como los umbrales llegan solo hasta 100, una regla de red "Mayor que" se dispara casi de inmediato. Usa reglas de CPU y memoria para obtener alertas útiles.

Escaneo de vulnerabilidades

DeployKit puede escanear cada imagen construida en busca de CVEs conocidos con Trivy. El escaneo se ejecuta tras el build y antes de desplegar el contenedor. El escaneo es informativo: un escaneo que encuentra problemas, falla o agota el tiempo nunca bloquea el despliegue.

  • Valor global por defecto: SCAN_ENABLED=true activa el escaneo para todas las apps. Si la variable no está definida, el escaneo está desactivado. El .env.example de ejemplo la establece en true.
  • Por app: pestaña General → Security Scanning → "Use server default", "Always scan" o "Never scan".
  • Resultados: una insignia de severidad en cada despliegue de la pestaña Deployments, y un informe completo en la pestaña Security. El informe muestra los recuentos de Critical, High, Medium, Low y Unknown, además de cada CVE con su paquete, versión instalada y versión corregida. Puedes filtrar por severidad y buscar por CVE, paquete o título.
  • Trivy se ejecuta como un contenedor temporal aquasec/trivy. Su base de datos de vulnerabilidades se cachea en el volumen deploykit-trivy-cache, así que solo el primer escaneo la descarga.

Sobrescrituras opcionales: TRIVY_IMAGE (por defecto aquasec/trivy:latest), TRIVY_CACHE_VOLUME (por defecto deploykit-trivy-cache) y TRIVY_TIMEOUT_SECONDS (por defecto 300).

Solo servidor local: las métricas, alertas, logs persistentes y escaneos de vulnerabilidades funcionan actualmente solo para servicios que se ejecutan en el propio daemon de Docker del host de DeployKit. En los despliegues a un servidor remoto, el escaneo se marca como skipped.

Terminal interactivo

La pestaña Terminal abre un shell interactivo en tu contenedor en ejecución desde el navegador. Usa xterm.js sobre Socket.IO, así que puedes depurar y resolver problemas sin SSH.

Estado del contenedor

Cada aplicación muestra su estado actual:

Running

El contenedor está en marcha

Building

Despliegue en curso

Idle

Nunca desplegada

Stopped

El contenedor fue detenido

Error

Falló el último build o despliegue