Solución de Problemas
groales edited this page 2025-12-05 11:46:27 +01:00

Solución de Problemas

Guía para resolver problemas comunes en Uptime Kuma.


Contenedor no Inicia

Verificar Logs

docker compose logs uptime-kuma

Error: "EACCES: permission denied"

Causa: Permisos incorrectos en volumen.

Solución:

# Opción 1: Cambiar permisos desde host
sudo chown -R 1000:1000 /var/lib/docker/volumes/uptime-kuma_data

# Opción 2: Desde contenedor
docker compose run --rm uptime-kuma chown -R 1000:1000 /app/data

Error: "Database locked"

Causa: Múltiples contenedores intentando acceder a kuma.db.

Solución:

# Listar todos los contenedores uptime-kuma
docker ps -a | grep uptime-kuma

# Detener todos
docker stop $(docker ps -a -q --filter name=uptime-kuma)

# Eliminar duplicados
docker rm $(docker ps -a -q --filter name=uptime-kuma)

# Reiniciar limpio
docker compose up -d uptime-kuma

Error: "Cannot find module..."

Causa: Imagen corrupta o actualización fallida.

Solución:

# Eliminar imagen y volver a descargar
docker compose down
docker rmi louislam/uptime-kuma:2
docker compose pull
docker compose up -d

No se Puede Acceder a la Interfaz

Error 502 Bad Gateway (Traefik)

Verificar contenedor activo:

docker compose ps
# Debe mostrar: Up

Verificar red proxy:

docker network inspect proxy | grep uptime-kuma
# Debe aparecer el contenedor

Verificar labels de Traefik:

docker inspect uptime-kuma | grep -A 10 Labels
# Verificar:
# - traefik.enable=true
# - loadbalancer.server.port=3001
# - rule=Host(`...`)

Verificar logs de Traefik:

docker logs traefik | grep uptime-kuma

Error 502 Bad Gateway (NPM)

Verificar Forward Port: Debe ser 3001, no 80.

Verificar hostname: Debe ser uptime-kuma (nombre del contenedor).

Verificar red: Ambos contenedores deben estar en red proxy.

docker network inspect proxy | grep -E "uptime-kuma|nginx-proxy-manager"

Certificado SSL no se Genera

Verificar DNS:

nslookup uptime.example.com
# Debe devolver la IP de tu servidor

Verificar puertos abiertos:

# En el host
ss -tlnp | grep :80
ss -tlnp | grep :443

Verificar logs de Let's Encrypt (Traefik):

docker logs traefik 2>&1 | grep -i "letsencrypt\|acme"

Monitores Reportan "Down" Incorrectamente

Falsos Positivos

Ajustar configuración:

  1. Editar monitor
  2. Aumentar Retries: de 3 a 5
  3. Aumentar Heartbeat Interval: de 60 a 120 segundos
  4. Aumentar Timeout: de 48 a 60 segundos
  5. Save

Verificar desde Contenedor

Probar conectividad desde dentro del contenedor Uptime Kuma:

# HTTP
docker compose exec uptime-kuma wget -O- https://example.com

# Ping
docker compose exec uptime-kuma ping -c 4 example.com

# DNS
docker compose exec uptime-kuma nslookup example.com

# TCP Port
docker compose exec uptime-kuma nc -zv example.com 443

Error: "Invalid URL"

Causa: URL mal formada.

Correcto:

  • https://example.com
  • https://example.com:443
  • https://example.com/path

Incorrecto:

  • example.com (falta protocolo)
  • https:// (falta dominio)

Error: "Keyword not found"

Causa: La página no contiene el keyword esperado.

Verificar:

# Descargar página y buscar keyword
docker compose exec uptime-kuma wget -qO- https://example.com | grep "keyword"

Si no aparece:

  • El keyword es incorrecto
  • La página cambió
  • La página requiere autenticación

Notificaciones no Funcionan

Telegram

Error: "Bad Request: chat not found"

Causa: Chat ID incorrecto.

Solución:

  1. Obtener Chat ID correcto:
    • Usuario: Número positivo (123456789)
    • Grupo: Número negativo (-987654321)
  2. Usar @userinfobot para verificar ID

Error: "Unauthorized"

Causa: Bot token inválido.

Solución:

  1. Verificar token con @BotFather
  2. Enviar /mybots → Seleccionar bot → API Token

Discord

Error: "Unknown Webhook"

Causa: Webhook eliminado o URL incorrecta.

Solución:

  1. Verificar webhook existe en Discord
  2. Regenerar webhook si es necesario

Email (SMTP)

Error: "EAUTH: authentication failed"

Causa: Usuario/password incorrecto.

Gmail:

Outlook/Office365:

  • Usar autenticación moderna (OAuth2) no soportada
  • Alternativa: Usar SMTP relay externo (SendGrid, Mailgun)

Error: "ETIMEDOUT"

Causa: Firewall bloquea puerto SMTP.

Solución:

# Verificar conectividad
docker compose exec uptime-kuma nc -zv smtp.gmail.com 587

WebSockets no Funcionan

Síntomas

  • Interfaz no se actualiza en tiempo real
  • Necesitas refrescar página (F5) para ver cambios
  • Consola del navegador (F12) muestra: WebSocket connection failed

Traefik

Traefik soporta WebSockets automáticamente. Si hay problemas:

Añadir headers explícitos (raro):

labels:
  - traefik.http.middlewares.uptime-ws.headers.customrequestheaders.Connection=Upgrade
  - traefik.http.middlewares.uptime-ws.headers.customrequestheaders.Upgrade=websocket
  - traefik.http.routers.uptime-kuma.middlewares=uptime-ws

NPM

Verificar checkbox:

  • Websockets Support DEBE estar habilitado

Si está habilitado y no funciona:

  1. Editar Proxy Host
  2. AdvancedCustom Nginx Configuration:
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    

Base de Datos Corrupta

Síntomas

  • Error al iniciar: SQLITE_CORRUPT
  • Monitores desaparecen
  • Datos inconsistentes

Verificar Integridad

docker compose exec uptime-kuma sqlite3 /app/data/kuma.db "PRAGMA integrity_check;"

Si devuelve algo diferente a "ok", la base de datos está corrupta.

Intentar Reparar

# Dump y recrear
docker compose exec uptime-kuma sqlite3 /app/data/kuma.db ".dump" > kuma-dump.sql
docker compose exec uptime-kuma sqlite3 /app/data/kuma-new.db < kuma-dump.sql

# Reemplazar
docker compose stop uptime-kuma
docker compose cp kuma-new.db uptime-kuma:/app/data/kuma.db
docker compose start uptime-kuma

Restaurar desde Backup

Si reparación falla:

docker compose stop uptime-kuma
docker compose cp ./backup/kuma-latest.db uptime-kuma:/app/data/kuma.db
docker compose start uptime-kuma

Status Page no Carga

Error 404

Causa: Slug incorrecto en URL.

Verificar:

  1. Status Pages → Ver slug configurado
  2. URL debe ser: https://uptime.example.com/status/{slug}

Status Page Pública no Accesible

Verificar configuración:

  1. Editar Status Page
  2. Public debe estar habilitado
  3. Save

CSS Personalizado no Aplica

Limpiar cache:

  • Chrome/Edge: Ctrl + Shift + R
  • Firefox: Ctrl + F5

Logs de Depuración

Habilitar Logs Detallados

Uptime Kuma no tiene modo verbose nativo, pero puedes:

# Ver logs en tiempo real con timestamps
docker compose logs -f --timestamps uptime-kuma

# Ver logs de Docker daemon
journalctl -u docker -f | grep uptime-kuma

Exportar Logs

# Últimas 1000 líneas
docker compose logs --tail=1000 uptime-kuma > uptime-kuma-logs.txt

# Todos los logs
docker compose logs uptime-kuma > uptime-kuma-full-logs.txt

Performance y Recursos

Alto Uso de CPU

Causa: Demasiados monitores con interval muy bajo.

Solución:

  1. Aumentar Heartbeat Interval de monitores no críticos
  2. Reducir número de monitores
  3. Usar monitor DNS o Ping en lugar de HTTP para checks simples

Alto Uso de RAM

Causa: Retención de datos muy larga + muchos monitores.

Solución:

  1. SettingsGeneralKeep Data: Reducir de 180 a 90 días
  2. Vacuumar base de datos:
    docker compose exec uptime-kuma sqlite3 /app/data/kuma.db "VACUUM;"
    

Base de Datos Muy Grande

Verificar tamaño:

docker compose exec uptime-kuma ls -lh /app/data/kuma.db

Reducir tamaño:

# Reducir retención en Settings
# Luego vacuumar
docker compose exec uptime-kuma sqlite3 /app/data/kuma.db "VACUUM;"

Soporte

Si ninguna solución funciona:

  1. GitHub Issues: https://github.com/louislam/uptime-kuma/issues
  2. Discord: https://discord.gg/uptime-kuma
  3. Reddit: r/UptimeKuma

Al reportar:

  • Versión de Uptime Kuma
  • Logs completos (docker compose logs uptime-kuma)
  • Configuración relevante (sin contraseñas)
  • Pasos para reproducir el problema