Volver a la wiki

Sonda de servicios internos desde OPS (servicios-check)

Descripción

servicios-check es una sonda de monitoreo que vigila servicios internos solo-NetBird — aquellos que no son alcanzables desde internet y, por tanto, que UptimeRobot y el widget de Servidores del workspace no pueden vigilar. El widget de Servidores solo sabe si la máquina está encendida (API Hetzner); esta sonda mide si el servicio responde.

Qué cubre

Targets alcanzables únicamente por NetBird/localhost (o, en el caso de los runners, solo dentro de la propia máquina OPS) — lista canónica y códigos esperados: el array TARGETS del propio script — esta tabla se quedó en 4 durante s263→s284):

TargetURLPropósito
prod-webhttp://100.96.156.31:8000/Web de PROD (vista interna, sin Cloudflare)
prod-vmhttp://100.96.156.31:8428/backend-healthVictoriaMetrics (almacén de métricas) — hasta el 25-09-2026 era /health (ver abajo)
prod-alertmanagerhttp://100.96.156.31:9093/backend-healthAlertmanager de PROD, directo — hasta el 25-09-2026 este target medía por error el Alertmanager de STAGE (ver abajo)
stage-alertmanager (desde 25-09-2026)http://100.96.254.204:9093/backend-healthAlertmanager de STAGE (el que antes media por error “prod-alertmanager”)
stage-webhttp://crearack-staging.netbird.cloud:8000/Web de STAGE (pausó su monitor público en s222)
stage-mirrorhttp://100.96.254.204:8090/Espejo DR del workspace
dokploy-stagehttp://crearack-staging.netbird.cloud:3000/Panel Dokploy de STAGE
dokploy-prodhttp://100.96.156.31:3000/Panel Dokploy de PROD
forgejohttp://127.0.0.1:3000/Forgejo local (repositorio espejo)
dca-webhttp://100.96.6.166/Web de Channel Assistance (DCA)
estacion-sshtcp://100.96.253.233:22Estación de trabajos 24/7 (pc-ia-claude) — chequeo TCP
runner-ci-1 (01-09-2026)unit://actions.runner.CreaRackSL.crearack-ops-1.serviceRunner 1 del CI (ejecuta los tests de cada PR) — sondeo systemd local
runner-ci-2 (01-09-2026)unit://actions.runner.CreaRackSL.crearack-ops-2.serviceRunner 2 del CI (ejecuta los tests de cada PR) — sondeo systemd local

Por qué /backend-health desde el 25-09-2026 (mega-auditoría B-45)

Desde esa fecha los puertos 8428 (VictoriaMetrics) y 9093 (Alertmanager) de NetBird pasan por vmauth ([[decision—20260925—vmauth-auth-netbird-b45]]), que pide usuario y contraseña. vmauth contesta / y /health con 200/401 aunque el servicio real esté caído — la sonda se habría quedado ciega justo cuando más falta hace. /backend-health sí llega al servicio de detrás (502 si cae). Commit f90cb92.

Lógica de detección

Integración

Cron: /etc/cron.d/servicios-check ejecuta cada 5 minutos.

Vigilancia: el cron-heartbeat incluye una entrada servicios-check que monitorea el log de la sonda y genera alertas si la propia sonda falla (ventana 1 hora). El heartbeat es el meta-monitor de los automatismos.

Alertas: usa send_maintenance_email (tool MCP del workspace → infra@esfericlabs.com) con contexto completo:

Ubicación en ops

Instalación y prueba

# Copiar script a OPS
scp servicios-check.sh root@crearack-ops.netbird.cloud:/opt/servicios-check/
chmod +x /opt/servicios-check/servicios-check.sh

# Dry-run (imprime estado, no sella ni envía)
/opt/servicios-check/servicios-check.sh --dry-run

# Prueba de alerta (envía email de PRUEBA a infra@)
/opt/servicios-check/servicios-check.sh --test-alert

Probada E2E el 11-08: 4 de 4 servicios respondiendo + email de prueba verificado en infra@ y archivado por el filtro en la carpeta Infra de Edu.

Historicidad

Relación con AUTOMATISMOS.md

La sonda entra en la tabla de Automatismos ejecutados periódicamente por cron en public/supercontext/AUTOMATISMOS.md como:

| servicios-check | /opt/servicios-check/servicios-check.sh | cada 5 min | sonda de servicios INTERNOS solo-NetBird...

Es un automatismo de clase B (vigilancia + alertas, sin cambios de estado en BD).

Véase también

Subir