Monitoriza tu web con Uptime Kuma: del despliegue al primer aviso de caída

Despliega Uptime Kuma en Zenavo desde la plantilla, añade comprobaciones para tu web y tu API, configura avisos por Telegram o correo, verifica los avisos de caída y recuperación y haz copia de seguridad del volumen.

Este artículo también está disponible en English, 简体中文, 繁體中文, 日本語 y Bahasa Indonesia.

Cuando una web o una API ya está en producción, es mejor que te avise un monitor en cuanto falle algo o esté a punto de caducar un certificado, en vez de enterarte por un usuario.

Uptime Kuma es una herramienta ligera y de código abierto para monitorizar tus propios servicios: comprueba HTTP(s), palabras clave, puertos TCP, DNS y caducidad de certificados, incluye páginas de estado públicas y soporta decenas de canales de aviso (Telegram, Slack, Discord, correo, webhooks y más). En esta guía usamos la plantilla de Uptime Kuma de Zenavo para ir desde el despliegue hasta recibir el primer aviso real.

Dónde conviene desplegarlo

Antes de empezar, piensa en qué servidor vas a poner Uptime Kuma:

  • En el mismo servidor que tus aplicaciones: sirve para empezar. Si se cae un contenedor o va a caducar un certificado, te avisará; pero si se cae el servidor entero o pierde la red, el monitor caerá con él.
  • En otro servidor pequeño independiente: lo recomendable en producción. Uptime Kuma consume muy poca memoria, y tenerlo separado garantiza que te llegue el aviso aunque el servidor principal se quede completamente sin conexión.

Despliega desde la plantilla

Primero conecta un servidor Linux a Zenavo, abre la plantilla de Uptime Kuma, elige el servidor y despliega.

Actualmente la plantilla configura:

Ajuste Valor o finalidad
Imagen louislam/uptime-kuma:1
Puerto HTTP 3001
Volumen /app/data: aquí se guardan la base de datos SQLite, los monitores, el historial y las credenciales de aviso

En la pestaña Red del servicio uptime-kuma, asocia un dominio como status.example.com al puerto 3001, añade en el DNS un registro A que apunte al servidor y espera a que esté listo el HTTPS. Los pasos están en Dominios y HTTPS.

En cuanto esté activo el dominio, abre la web y crea la cuenta de administrador. La primera persona que abre la página puede elegir el usuario y la contraseña de administrador, así que hazlo enseguida.

Añade tu primer monitor

Al entrar, haz clic arriba a la izquierda en Añadir nuevo monitor (Add New Monitor). Una buena configuración inicial:

Campo Recomendación
Tipo de monitor HTTP(s) para una web o API normal; HTTP(s) - Palabra clave si quieres comprobar que la respuesta contiene un texto concreto
Nombre Pon el entorno y qué comprueba, por ejemplo Producción - Portada o API - /healthz
URL La dirección https:// completa a la que entran los usuarios
Intervalo de latido 60 segundos
Reintentos 2 o 3, para que un microcorte de red puntual no te despierte de madrugada
Aviso de caducidad de certificado Actívalo para que te avise entre 7 y 14 días antes de que caduque el certificado TLS

Si tu aplicación usa base de datos, además de la portada conviene añadir un monitor a un endpoint de salud como /healthz que compruebe también la conexión a la base de datos.

Configura las notificaciones y haz un simulacro real

Abre Ajustes → Notificaciones (Notifications) en el menú de perfil de arriba a la derecha, o haz clic en Configurar notificación al editar un monitor:

  1. Elige tu canal habitual (Telegram, Slack, Discord, correo SMTP, webhook, etc.) y rellena el token o los datos de acceso.
  2. Haz clic en Probar (Test) y confirma que recibes el mensaje de prueba en el móvil o en el correo.
  3. Activa Habilitado por defecto (Default enabled), o marca ese canal dentro del propio monitor, y guarda el monitor (es muy habitual pulsar Probar, ver que llega el mensaje y olvidarse de activarlo en el monitor y guardar).

Para comprobar que el aviso llega cuando hay una caída de verdad, haz una prueba con un servicio de ensayo:

  1. Añade un monitor para un servicio de prueba que no tenga tráfico real y espera a que salga en verde (Up).
  2. Detén ese servicio de prueba en Zenavo, espera entre 1 y 3 minutos (según el intervalo y los reintentos) y comprueba que el monitor pasa a rojo (Down) y te llega el aviso de caída.
  3. Vuelve a iniciar el servicio de prueba y confirma que también recibes el aviso de recuperación (Up).

Página de estado pública (opcional)

Si quieres publicar una página de estado para tus usuarios del estilo status.example.com/status/main, entra en Páginas de estado (Status Pages) en la barra superior, crea una y añade solo los servicios que quieras mostrar al público. No incluyas paneles internos, bases de datos ni nombres de servicios privados.

Copias de seguridad y actualizaciones

Los monitores, las claves de notificación y el historial de disponibilidad están en el volumen /app/data. Puedes hacer copia de seguridad desde la pestaña Copias de seguridad y restauración del servicio uptime-kuma:

  1. Detén el proyecto (la copia de un volumen requiere que el proyecto esté detenido).
  2. Crea la copia de seguridad y vuelve a iniciar el proyecto cuando termine.
  3. Descarga una copia para conservarla (incluye los tokens y webhooks de tus notificaciones, así que guárdala en un lugar seguro). Más detalles en Copias de seguridad y restauración.

La plantilla usa louislam/uptime-kuma:1 (fijada en la rama principal v1). Si más adelante actualizas a una versión mayor nueva, lee antes las notas de la versión y haz copia de /app/data; tras migrar la base de datos a una versión mayor, volver a poner la imagen antigua no suele bastar y necesitarás restaurar la copia anterior.

Preguntas frecuentes

¿El botón de prueba envía el mensaje, pero cuando se cae un servicio no me llega nada? Abre la edición de ese monitor y mira la lista de Notificaciones de la derecha: asegúrate de que el canal está marcado para ese monitor y pulsa Guardar abajo.

¿Hace falta montar el socket de Docker del servidor? No. Con comprobaciones HTTP(s) y TCP puedes vigilar casi cualquier servicio sin darle al contenedor acceso a docker.sock. Si quieres vigilar otro servicio del mismo proyecto de Zenavo por la red interna, puedes usar su dirección privada (como http://api.zenavo.internal:3000/healthz).

¿Recibo demasiadas falsas alarmas por cortes de un segundo? Sube los Reintentos (Retries) del monitor de 0 a 2 o 3 y amplía un poco el tiempo de espera para que solo avise cuando falle varias veces seguidas.

Empieza con la plantilla de Uptime Kuma: asocia tu dominio, crea el administrador, vincula tu canal de aviso y haz una prueba de caída y recuperación para quedarte tranquilo.