Enterarse por un cliente de que su sitio lleva una hora caído es la peor forma de descubrir una interrupción. Uptime Kuma es una herramienta de monitorización gratuita y autoalojada que comprueba sitios web, puertos, ping y DNS con una frecuencia de entre unos segundos y unos minutos, le avisa antes de que caduquen los certificados SSL, publica una página de estado y envía alertas a Telegram, al correo electrónico y a decenas de canales más. Esta guía la instala con Docker, la coloca detrás de Nginx con HTTPS y configura las notificaciones de Telegram.
Instale Docker y Docker Compose como se describe en nuestra guía de instalación de Docker. Uptime Kuma necesita muy pocos recursos: 1 núcleo de CPU y entre 512 MB y 1 GB de RAM son más que suficientes para unos cientos de monitores.
La interfaz web escucha en el puerto 3001. Vincularla a 127.0.0.1 la mantiene fuera de internet hasta que Nginx con HTTPS esté delante.
docker run -d --name uptime-kuma --restart=always \
-p 127.0.0.1:3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:1
docker ps --filter name=uptime-kuma
curl -I http://127.0.0.1:3001
La etiqueta :1 sigue la rama estable de larga duración. Consulte las versiones publicadas del proyecto en GitHub antes de pasar a una versión principal más reciente, porque las actualizaciones de versión principal pueden migrar la base de datos.
Apunte un subdominio como status.example.com al servidor de monitorización, emita un certificado (consulte SSL gratis con Certbot o acme.sh) y configure el proxy hacia el contenedor. Uptime Kuma usa WebSockets, así que las cabeceras de upgrade son obligatorias.
server {
listen 443 ssl;
http2 on;
server_name status.example.com;
ssl_certificate /etc/letsencrypt/live/status.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/status.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
nginx -t && systemctl reload nginx
Abra https://status.example.com y cree la cuenta de administrador de inmediato; el primer visitante de la página de configuración se convierte en el administrador.
Un intervalo de comprobación de 60 segundos con 2 o 3 reintentos es un buen equilibrio: las caídas reales se notifican en pocos minutos y un solo paquete perdido no le despierta de madrugada. En los monitores HTTP, active Certificate Expiry Notification para recibir avisos sobre los certificados SSL antes de que caduquen.
Cree un bot y averigüe el ID del chat al que deben llegar las alertas.
# 1. In Telegram, talk to @BotFather, send /newbot and copy the token
# 2. Send any message to your new bot (or add it to a group and post there)
# 3. Read the chat ID from the bot's updates
curl -s "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates" | grep -o '"chat":{"id":-\?[0-9]*'
En Uptime Kuma, abra Settings → Notifications → Setup Notification, elija Telegram, pegue el token del bot y el ID del chat, haga clic en Test y active Default enabled y Apply on all existing monitors. Los ID de los chats de grupo empiezan por un signo menos.
En Status Pages puede publicar una página pública que muestre el estado de los monitores seleccionados, lo que resulta útil para sus clientes y para su propio equipo. Puede servirla en su propio dominio y añadir avisos de mantenimiento durante los trabajos programados.
# Back up the data volume (monitors, history, settings)
docker run --rm -v uptime-kuma:/data -v "$PWD":/backup alpine \
tar czf /backup/uptime-kuma-$(date +%F).tgz -C /data .
# Update to the latest release of the same major version
docker pull louislam/uptime-kuma:1
docker rm -f uptime-kuma
docker run -d --name uptime-kuma --restart=always \
-p 127.0.0.1:3001:3001 -v uptime-kuma:/app/data louislam/uptime-kuma:1
Aumente los reintentos a 3 y el intervalo entre reintentos a entre 30 y 60 segundos. Así, un monitor solo se marca como caído tras varios fallos consecutivos.
El servidor o su firewall descartan ICMP. Use en su lugar un monitor TCP Port o HTTP.
Uptime Kuma mide desde el lugar donde se ejecuta. Para conocer la experiencia desde China, ejecute una segunda instancia en un servidor con buenas rutas hacia China, como un servidor CN2 GIA en Hong Kong, o use las herramientas de prueba de red desde varias ubicaciones.
¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor, la versión del sistema operativo, el comando que ejecutó y la salida completa del error para que podamos localizar el problema más rápido.