Si tienes un sitio web, una aplicación web o incluso algunos servicios funcionando en casa, probablemente ya te enteraste de que algo estaba caído de la peor manera posible: te lo dijo un cliente o un familiar. Para entonces, quizá llevaba horas sin funcionar.
El monitoreo de disponibilidad (uptime) resuelve eso. Una herramienta de monitoreo revisa tus sitios y servicios a toda hora y te avisa en el momento en que algo deja de responder, muchas veces antes de que alguien más lo note. Hay muchos servicios de pago que hacen esto, pero si prefieres mantener el control de tus datos y evitar otra suscripción mensual, Uptime Kuma es una de las mejores herramientas que puedes ejecutar tú mismo.
Esta guía explica qué es Uptime Kuma y por qué vale la pena usarlo, y luego te lleva paso a paso por la instalación, la creación de tus primeros monitores, la configuración de alertas, la publicación de una página de estado y la protección de tu instalación.
¿Qué Es Uptime Kuma?
Uptime Kuma es una herramienta de monitoreo gratuita, de código abierto y autoalojada (self-hosted). La instalas en un servidor que tú controlas, abres su panel web y le indicas qué vigilar: un sitio web, una API, un servidor, una base de datos, un contenedor de Docker y mucho más. Revisa cada uno con la frecuencia que elijas y te notifica cuando algo se cae, y otra vez cuando vuelve a funcionar.
A menudo se describe como una alternativa autoalojada a servicios como UptimeRobot o Pingdom. La diferencia es que todo (tus monitores, tu historial y tu configuración de alertas) vive en tu propio hardware.
Qué Puede Monitorear Uptime Kuma
Uptime Kuma admite una gran variedad de tipos de monitor. Los que usarás con más frecuencia son:
- HTTP(s): comprueba que un sitio web o una API responda con un código de estado exitoso.
- HTTP(s) – Keyword: comprueba que una página cargue y que contenga (o no contenga) un texto específico. Ideal para detectar un sitio que técnicamente carga pero muestra una página de error.
- HTTP(s) – JSON Query: comprueba un valor dentro de la respuesta JSON de una API.
- TCP Port: comprueba que un servicio esté escuchando en un puerto determinado, como SSH en el 22 o un servidor de correo en el 587.
- Ping: comprueba que un equipo responda al ping ICMP.
- DNS: comprueba que un dominio resuelva al registro que esperas.
- Docker Container: comprueba que un contenedor en un host de Docker esté en ejecución.
- Push: lo contrario de una revisión normal. Tu script o tarea programada (cron) “se reporta” con Uptime Kuma, y recibes una alerta si deja de hacerlo. Perfecto para respaldos y tareas programadas.
- Bases de datos: MySQL/MariaDB, PostgreSQL, Microsoft SQL Server, MongoDB y Redis.
También hay monitores para servidores de juegos, MQTT, gRPC, RADIUS, Kafka y más, además de monitores de tipo Group que agrupan revisiones relacionadas.
¿Por Qué Usar Uptime Kuma? Sus Beneficios
- Es gratuito y de código abierto. Sin suscripción, sin cobro por monitor y sin funciones bloqueadas detrás de un plan de pago. Puedes agregar tantos monitores como soporte tu servidor.
- Tus datos son tuyos. Las URL que monitoreas, los tiempos de respuesta y el historial de incidentes se quedan en tu servidor y no en el de un tercero.
- Intervalos de revisión rápidos. Las revisiones pueden ejecutarse hasta cada 20 segundos. Muchos planes gratuitos de servicios alojados te limitan a intervalos de 5 minutos.
- Alertas donde las quieras. Uptime Kuma admite más de 90 servicios de notificación, entre ellos correo electrónico, Telegram, Discord, Slack, Microsoft Teams, Pushover, ntfy, Gotify y webhooks genéricos.
- Páginas de estado públicas. Comparte con tus clientes o usuarios una página limpia y con tu marca que muestre el estado de tus servicios, y recibe menos correos preguntando “¿se cayó el sitio?”.
- Alertas de vencimiento de certificados SSL. Recibe un aviso antes de que venza un certificado HTTPS, en lugar de enterarte por una advertencia del navegador.
- Monitorea servicios privados. Los servicios alojados solo pueden revisar lo que es accesible desde internet. Uptime Kuma, al ejecutarse dentro de tu red, también puede vigilar servidores internos, bases de datos y el equipo de tu laboratorio casero.
- Una interfaz moderna y fácil de usar. Todo se configura desde el panel web. No necesitas editar archivos de configuración para agregar un monitor.
- Es ligero. Funciona sin problemas en un VPS pequeño o en una Raspberry Pi.
¿Dónde Deberías Ejecutarlo?
Antes de instalarlo, piensa dónde vivirá Uptime Kuma, porque un monitor no puede avisarte de una caída que también lo afecta a él. Si Uptime Kuma se ejecuta en el mismo servidor que tu sitio web y ese servidor se cae, ambos se caen juntos y no recibirás ninguna alerta.
Algunas buenas opciones:
- Para monitorear sitios web públicos: ejecútalo en un VPS pequeño y económico de un proveedor distinto al que aloja tus sitios.
- Para monitorear un laboratorio casero o una red interna: ejecútalo en un dispositivo siempre encendido dentro de esa red, como una Raspberry Pi, un NAS o un servidor doméstico.
- Para hacer ambas cosas: mucha gente ejecuta una instancia en cada lugar y hace que cada una monitoree a la otra.
Lo Que Necesitarás
- Un servidor Linux, un VPS o una Raspberry Pi. Uptime Kuma también funciona en Windows y macOS, pero esta guía usa Linux.
- Docker instalado en ese equipo (recomendado). Si eres nuevo en Docker, empieza con Docker para Principiantes.
- Almacenamiento local para los datos de Uptime Kuma. Los sistemas de archivos en red como NFS no son compatibles, porque pueden dañar su base de datos.
- (Opcional) Un nombre de dominio si quieres acceder al panel o a una página de estado en una dirección como
status.example.com.
Paso 1: Instala Docker
Si todavía no tienes Docker, el script oficial lo instala en la mayoría de las distribuciones de Linux:
curl -fsSL https://get.docker.com | sh
Como con cualquier script que ejecutas directamente en tu terminal, puedes descargarlo y leerlo primero si lo prefieres. Después, confirma que Docker funciona:
docker --version
docker compose version
Paso 2: Instala Uptime Kuma con Docker Compose
Docker Compose guarda toda tu configuración en un solo archivo, lo que facilita actualizar, respaldar y mover Uptime Kuma más adelante. Crea una carpeta para él:
mkdir -p ~/uptime-kuma && cd ~/uptime-kuma
Crea un archivo llamado compose.yaml en esa carpeta:
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./data:/app/data
Esto es lo que hace cada parte:
image: louislam/uptime-kuma:2usa la imagen oficial y se mantiene en la versión 2.x, para que una actualización nunca te lleve de forma inesperada a una nueva versión mayor.restart: unless-stoppedinicia Uptime Kuma automáticamente después de un reinicio o de un fallo.portshace que el panel esté disponible en el puerto3001.volumesguarda todos los datos de Uptime Kuma en la carpetadata, junto a tu archivo compose, para que se conserven al actualizar el contenedor.
Inícialo:
docker compose up -d
Comprueba que esté en ejecución:
docker compose ps
¿Prefieres un Solo Comando?
Si no quieres usar un archivo compose, este comando docker run hace lo mismo:
docker run -d --restart=unless-stopped -p 3001:3001 \
-v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2
Instalación sin Docker
Uptime Kuma también puede ejecutarse directamente con Node.js. Necesitarás Node.js 20.4 o posterior y Git:
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup
npm install pm2 -g && pm2 install pm2-logrotate
pm2 start server/server.js --name uptime-kuma
PM2 mantiene el proceso en segundo plano y lo reinicia si falla. Aun así, Docker es la opción más sencilla para la mayoría de las personas, porque las actualizaciones y los respaldos son más simples.
Paso 3: Crea tu Cuenta de Administrador
Abre un navegador y ve a:
http://IP-DE-TU-SERVIDOR:3001
La primera vez, Uptime Kuma te pide elegir una base de datos. SQLite es la opción correcta para la mayoría de las instalaciones: viene incluida y no necesita configuración adicional. (MariaDB está disponible si planeas tener una cantidad muy grande de monitores).
Después, crea tu cuenta de administrador. Usa una contraseña segura y única: esta cuenta controla todo lo que Uptime Kuma puede ver y hacer.
Paso 4: Agrega tu Primer Monitor
Haz clic en Add New Monitor en la esquina superior izquierda. Vamos a configurar una revisión básica de un sitio web:
- Monitor Type: elige HTTP(s).
- Friendly Name: un nombre descriptivo, como
Mi Sitio Web. - URL: la dirección completa, por ejemplo
https://example.com. - Heartbeat Interval: cada cuánto revisar, en segundos.
60es un valor razonable. - Retries: cuántas revisiones fallidas seguidas se necesitan antes de marcar el monitor como caído. Ponerlo en
1o2evita falsas alarmas por una sola solicitud perdida. - Haz clic en Save.
En segundos, el monitor aparece en la barra lateral izquierda con una etiqueta verde de Up. Haz clic en él para ver la gráfica de tiempos de respuesta, el porcentaje de disponibilidad de las últimas 24 horas y de los últimos 30 días, y una línea de tiempo con cada revisión.
Otros Monitores Útiles
Cuando tu primer monitor esté funcionando, prueba otros tipos:
Monitor de palabra clave: elige HTTP(s) – Keyword, escribe tu URL y define como palabra clave un texto que solo aparezca cuando la página carga correctamente (como el texto del pie de página de tu sitio). Así detectas páginas que cargan pero muestran un error de base de datos.
Monitor de puerto TCP: elige TCP Port, escribe un nombre de host y un puerto (por ejemplo, el
22para SSH o el3306para MySQL) y sabrás si el servicio deja de escuchar.Monitor push para respaldos: elige Push y Uptime Kuma te dará una URL única. Agrega una solicitud a esa URL al final de tu script de respaldo:
/usr/local/bin/backup.sh && curl -fsS "https://kuma.example.com/api/push/AbC123xyz?status=up&msg=OK"Si el respaldo falla, o deja de ejecutarse por completo, el aviso nunca llega y Uptime Kuma te alerta.
Vigila tus Certificados SSL
En los monitores HTTPS, abre la sección Advanced del monitor y activa Certificate Expiry Notification. Uptime Kuma te avisará cuando el certificado esté por vencer, para que una renovación automática que falló sin hacer ruido no deje tu sitio fuera de línea.
Paso 5: Configura las Notificaciones
Un monitor no sirve de mucho si solo te enteras de las caídas cuando revisas el panel. Ve a Settings → Notifications y haz clic en Setup Notification.
Elige el tipo de notificación y completa sus datos. Algunas opciones populares:
- Correo electrónico (SMTP): escribe el servidor de correo, el puerto, el usuario y la contraseña. Muchos proveedores de correo exigen una contraseña específica para aplicaciones.
- Telegram: crea un bot con @BotFather en Telegram y pega el token del bot y tu chat ID.
- Discord o Slack: crea un webhook entrante en tu servidor o espacio de trabajo y pega la URL del webhook.
- ntfy: un servicio de notificaciones push sencillo y de código abierto que puedes usar en su versión alojada o autoalojar. Solo elige un nombre de tema (topic) y suscríbete a él en la app de ntfy.
Haz clic en Test para comprobar que el mensaje llega y luego guarda. Vale la pena conocer dos opciones que aparecen al final del formulario:
- Default enabled agrega automáticamente esta notificación a cada monitor nuevo.
- Apply on all existing monitors la agrega a todos los monitores que ya creaste.
Puedes asignar varias notificaciones al mismo monitor; por ejemplo, Discord para las alertas del día a día y el correo electrónico como respaldo.
Paso 6: Crea una Página de Estado Pública
Las páginas de estado permiten que tus usuarios o clientes vean si tus servicios funcionan sin tener que contactarte. Haz clic en Status Pages → New Status Page, ponle un nombre y un identificador para la URL (slug) y haz clic en Next.
En el editor puedes:
- Agregar una descripción, un logotipo y un mensaje en el pie de página.
- Hacer clic en Add Group para organizar los monitores en secciones como “Sitios Web” y “Correo”.
- Agregar monitores a cada grupo. Solo aparecen en la página los monitores que elijas; todo lo demás sigue siendo privado.
- Publicar un mensaje de incidente durante una caída para mantener informados a los visitantes.
Haz clic en Save y tu página estará disponible en http://IP-DE-TU-SERVIDOR:3001/status/tu-slug. Con un proxy inverso (lo vemos más abajo), también puedes darle su propio dominio, como status.example.com.
Paso 7: Programa Ventanas de Mantenimiento
Cuando planeas desconectar un servicio para actualizarlo, no quieres recibir una avalancha de alertas. Ve a Maintenance y crea una ventana de mantenimiento. Elige los monitores afectados y define un horario: una ventana única o una programación recurrente, como todos los domingos a las 2 AM.
Durante una ventana de mantenimiento, los monitores afectados muestran el estado azul Maintenance en lugar de Down, no se envían alertas y tu página de estado informa a los visitantes que la interrupción está planeada.
Cómo Proteger tu Instalación de Uptime Kuma
Uptime Kuma sabe mucho sobre tu infraestructura, así que protégelo:
- Activa la autenticación de dos factores. Ve a Settings → Security y activa la 2FA en tu cuenta. Consulta ¿Qué Es la Autenticación de Dos Factores? si nunca la has usado.
- No expongas el puerto 3001 directamente. Si necesitas el panel fuera de tu red, colócalo detrás de un proxy inverso con HTTPS (ver abajo), o mantenlo privado y accede a él con Tailscale. Tailscale es especialmente útil aquí: tu panel queda completamente fuera de internet, pero aun así puedes revisarlo desde tu teléfono en cualquier lugar.
- Ten cuidado con el socket de Docker. Para monitorear contenedores de Docker, montas
/var/run/docker.sockdentro del contenedor de Uptime Kuma. Cualquier cosa con acceso a ese socket tiene, en la práctica, control total del host de Docker, así que hazlo solo si lo necesitas y móntalo en modo de solo lectura (:ro). - Mantenlo actualizado. Las actualizaciones incluyen correcciones de seguridad además de nuevas funciones.
Colócalo Detrás de un Proxy Inverso
Un proxy inverso como Nginx, Caddy o Nginx Proxy Manager te permite acceder a Uptime Kuma en un dominio como https://kuma.example.com con un certificado TLS gratuito. El único requisito al que debes prestar atención: el panel de Uptime Kuma depende de WebSockets, así que tu proxy debe dejarlos pasar.
Con Caddy, los WebSockets funcionan automáticamente y HTTPS se configura solo:
kuma.example.com {
reverse_proxy localhost:3001
}
Con Nginx, incluye los encabezados de actualización de WebSocket:
server {
listen 443 ssl;
server_name kuma.example.com;
# aquí van las líneas ssl_certificate y ssl_certificate_key
location / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
Cuando el proxy funcione, puedes cambiar la línea ports de tu archivo compose a "127.0.0.1:3001:3001" para que el puerto 3001 solo sea accesible desde el propio servidor.
Actualizaciones y Respaldos
Actualizar una instalación con Docker Compose requiere dos comandos, ejecutados desde tu carpeta ~/uptime-kuma:
docker compose pull
docker compose up -d
Como la etiqueta de la imagen está fijada en 2, esto descarga la versión 2.x más reciente. Cuando salga una nueva versión mayor, lee sus notas de la versión antes de cambiar la etiqueta.
Todos los datos de Uptime Kuma (monitores, historial, configuración y notificaciones) viven en la carpeta data. Para respaldarla, detén el contenedor un momento para que no se esté escribiendo en la base de datos, copia la carpeta y vuelve a iniciarlo:
docker compose stop
tar -czf uptime-kuma-backup-$(date +%F).tar.gz data
docker compose start
Guarda el respaldo en un lugar distinto al propio servidor. Para restaurarlo, vuelve a colocar la carpeta data en su lugar y ejecuta docker compose up -d.
Solución de Problemas Comunes
El panel no carga. Comprueba que el contenedor esté en ejecución con docker compose ps y revisa los registros con docker compose logs uptime-kuma. Asegúrate también de que tu firewall permita el puerto 3001 (por ejemplo, sudo ufw allow 3001/tcp).
El panel carga pero muestra “Cannot connect to the socket server”. Tu proxy inverso no está dejando pasar las conexiones WebSocket. Agrega los encabezados Upgrade y Connection que se muestran arriba.
Un monitor cambia una y otra vez entre activo y caído. Aumenta Retries para que una sola respuesta lenta no cuente como una caída, o sube el Request Timeout en la configuración del monitor.
Un monitor aparece caído, pero el sitio funciona en tu navegador. Es posible que el servidor donde corre Uptime Kuma no pueda llegar al sitio, por ejemplo por la configuración de DNS, un firewall o porque el sitio bloquea solicitudes que vienen de direcciones IP de centros de datos. Haz una prueba desde el propio servidor de Uptime Kuma con curl -I https://example.com.
Las notificaciones nunca llegan. Usa el botón Test en la configuración de la notificación y revisa el mensaje de error. En el caso del correo, verifica el puerto SMTP y si tu proveedor exige una contraseña para aplicaciones.
Conclusión
Uptime Kuma te ofrece el tipo de monitoreo que antes requería un servicio de pago (revisiones rápidas, alertas en las apps que ya usas, avisos de vencimiento de SSL y páginas de estado públicas bien diseñadas) gratis y en hardware que tú controlas. La instalación con Docker toma unos diez minutos, y agregar un monitor, unos treinta segundos.
Empieza poco a poco: agrega tu sitio web más importante, conecta una notificación y déjalo funcionar. Cuando veas que detecta su primera caída antes que nadie, vas a querer agregar todo lo demás: tus APIs, tus bases de datos, tus respaldos y el resto de tu laboratorio casero.
