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:
- Elige tu canal habitual (Telegram, Slack, Discord, correo SMTP, webhook, etc.) y rellena el token o los datos de acceso.
- Haz clic en Probar (Test) y confirma que recibes el mensaje de prueba en el móvil o en el correo.
- 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:
- Añade un monitor para un servicio de prueba que no tenga tráfico real y espera a que salga en verde (Up).
- 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.
- 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:
- Detén el proyecto (la copia de un volumen requiere que el proyecto esté detenido).
- Crea la copia de seguridad y vuelve a iniciar el proyecto cuando termine.
- 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.
Esto es lo que leen los agentes de programación, en https://zenavo.app/es-ES/blog/uptime-kuma-monitoring.md.
No se pudo cargar el Markdown. Ábrelo directamente: https://zenavo.app/es-ES/blog/uptime-kuma-monitoring.md