Saltar a contenido

Uptime Kuma

Monitorización de disponibilidad de servicios (HTTP, ping, DNS, push).

Resumen

Uptime Kuma corre en k3s y sustituye al Uptime Kuma legacy de lebron, parado el 2026-10-29 por falta de recursos (ADR 0005). Migró los 69 monitores existentes desde kuma.db (54 activos hoy). El acceso está protegido por SSO de Authentik (grupo admins); el propio login de Kuma está desactivado.

Estado

Campo Valor
Estado Operativo
Argo CD Application uptime-kuma
Namespace uptime-kuma

Despliegue

Campo Valor
Método Manifests nativos
Chart / imagen louislam/uptime-kuma:2.5.8
Origen clusters/luka/config/uptime-kuma/
Config en el repo clusters/luka/apps/uptime-kuma/ y clusters/luka/config/uptime-kuma/

Red

Campo Valor
Service uptime-kuma (ClusterIP)
IP —
Puertos 80 → 3001
URL interna https://uptime.local.gorkarevilla.com
URL externa https://uptime.gorkarevilla.com (túnel cloudflared homelab)
TLS interno: cert-manager wildcard *.local.gorkarevilla.com; externo: Cloudflare edge

Acceso y usuarios

  • Usuarios/roles: SSO de Authentik, grupo admins. El login propio de Kuma está desactivado. Hay dos providers proxy (uptime-kuma externo y uptime-kuma-internal): en forward_single el outpost selecciona el provider por host y la cookie es host-only, así que cada hostname tiene su sesión.
  • Break-glass: kubectl -n uptime-kuma port-forward deploy/uptime-kuma 3001:3001. La ruta interna no es un acceso de emergencia independiente: el login se sirve desde https://auth.gorkarevilla.com, por lo que si cae Internet/el túnel sigue haciendo falta el port-forward.
  • Credenciales: las de administración de Kuma viven solo en kuma.db; la API key de métricas está en el Secret uptime-kuma-metrics (ns monitoring), creado a mano porque VKS aún no sincroniza Secure Notes. Pendiente moverlo a Vaultwarden. Nunca el secreto en claro aquí.

Configuración

  • 1 réplica con strategy: Recreate (SQLite en PVC, no admite escritura concurrente).
  • TZ=Europe/Madrid.
  • Settings → Reverse Proxy → Trust Proxy: Yes.
  • Providers proxy de Authentik en modo forward_single (externo e interno); rutas /outpost.goauthentik.io en ambos hostnames. Paths sin autenticar: status pages, badges, push monitors y assets.
  • Los monitores de tipo Docker del legacy no funcionan (no hay docker.sock en k3s): los 7 Docker quedaron pausados tras la migración. Los monitores de Frigate están pendientes de reactivar tras su migración (2026-10-30).
  • El monitor Influxdb (https://influxdb.gorkarevilla.com) se eliminó el 2026-10-31 al retirar el servicio (ADR 0007). Se borró de kuma.db con la app parada; queda copia previa en /app/data/kuma.db.bak-2026-10-31.
  • Los monitores Kavita (id 22) y Audiobookshelf (id 24) se eliminaron el 2026-10-31 al retirar el stack books (legacy). Se borraron de kuma.db con la app parada (cascade de heartbeats/notificaciones/tags); copia previa en /app/data/kuma.db.bak-2026-10-31-books.
  • El monitor Open Webui (AI) (id 56) se eliminó el 2026-10-31 al retirar Open WebUI (legacy); misma operación y copia previa en /app/data/kuma.db.bak-2026-10-31-books.
  • Los monitores Shlink WebClient (id 26), Shlink Backend (id 27) y Grocy (id 48) se eliminaron el 2026-10-31 al retirar el stack utils (legacy); copia previa en /app/data/kuma.db.bak-2026-10-31-utils.

Almacenamiento

  • PVC uptime-kuma-data, 2Gi, ReadWriteOnce, storageClassName: longhorn, protegido del prune de Argo (Prune=false,Delete=false). Contiene /app/data/kuma.db (monitores, histórico, notificaciones y usuarios).

Dependencias

  • Depende de: k3s, Longhorn, Traefik, cert-manager, Authentik, cloudflared.
  • Usado por: Homepage (enlace directo).

Backup y recuperación

  • Sin backup automático todavía. La copia original de kuma.db se conserva en lebron; pendiente incluirlo en la estrategia 3-2-1.

Monitorización

  • Prometheus: ServiceMonitor uptime-kuma en clusters/luka/config/servicemonitors/uptime-kuma.yaml, endpoint http://uptime-kuma.uptime-kuma.svc.cluster.local/metrics (HTTP Basic con la API key de Kuma), intervalo 30s.
  • Métricas: monitor_status, monitor_response_time. Sin dashboard ni alertas propios por ahora.

Referencias

Notas / TODO

  • Sustituir los monitores Docker por alertas de Prometheus/kube-state-metrics.
  • Backup del PVC y de kuma.db.
  • Dashboard de Grafana y alertas de disponibilidad.
  • Drift conocido: el Secret uptime-kuma-metrics (ns monitoring) se creó a mano porque VKS no sincroniza los Secure Notes (incidente). Moverlo a Vaultwarden cuando se resuelva.