service-monitor/CLAUDE.md
reugenio e2e19da32f Fase 1: Monitor básico HTTP/TCP funcionando
- Verificación HTTP/HTTPS con std.http.Client
- Verificación TCP con resolución DNS (tcpConnectToHost)
- 5 servicios configurados: Forgejo (HTTP+SSH), Simifactu, Mundisofa, Menzuri
- Output terminal con colores y tiempos de respuesta
- Doc comments en todas las funciones públicas (estándar open source)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 20:43:34 +01:00

4.3 KiB

service-monitor - Monitor de Servicios en Zig

Última actualización: 2025-12-07

Descripción del Proyecto

Monitor que verifica periódicamente que los servicios en nuestro servidor Hetzner (Simba) estén funcionando correctamente, con notificaciones si algo falla.

Lenguaje: Zig 0.13.0

Objetivo: Herramienta de monitoreo simple y ligera, sin dependencias de servicios externos como UptimeRobot.

Servicios a Monitorear

Servidor Simba (188.245.244.244)

Servicio URL/Puerto Verificación
Forgejo https://git.reugenio.com HTTP 200
Forgejo SSH git.reugenio.com:2222 Conexión TCP
Simifactu API https://simifactu.com HTTP 200
Mundisofa https://mundisofa.com HTTP 200
Menzuri https://menzuri.com HTTP 200

Funcionalidades Planificadas

Fase 1 - Básico

  • Verificar HTTP status de URLs
  • Verificar puertos TCP abiertos
  • Output en terminal (estado actual)

Fase 2 - Monitoreo Continuo

  • Modo daemon (corre en background)
  • Intervalo configurable
  • Log de eventos

Fase 3 - Notificaciones

  • Notificación desktop (libnotify)
  • Log a archivo
  • Opcional: webhook/email

Stack Técnico

  • Zig 0.13.0 - Lenguaje principal
  • HTTP Client - std.http
  • TCP Sockets - std.net
  • Sin dependencias externas - Solo stdlib de Zig

Filosofía del Proyecto

  • Binario único, pequeño, portable
  • Puede correr en el servidor o en máquina local
  • Sin dependencias de servicios cloud externos
  • Consumo mínimo de recursos

Equipo y Metodología

Quiénes Somos

  • Usuario: Desarrollador independiente, proyectos comerciales propios
  • Claude: Asistente de programación (Claude Code)

Normas de Trabajo Centralizadas

IMPORTANTE: Todas las normas de trabajo están en:

/mnt/cello2/arno/re/recode/TEAM_STANDARDS/

Archivos clave a leer:

  • LAST_UPDATE.md - LEER PRIMERO - Cambios recientes en normas
  • NORMAS_TRABAJO_CONSENSUADAS.md - Metodología fundamental
  • QUICK_REFERENCE.md - Cheat sheet rápido
  • INFRASTRUCTURE/ - Documentación de servidores (IPs, puertos, servicios)

Protocolo de Comunicación Entre Proyectos

  1. Al iniciar conversación: Leer TEAM_STANDARDS/LAST_UPDATE.md
  2. Si modificas normas: Actualizar LAST_UPDATE.md con fecha y cambios
  3. Commits: Siempre a Forgejo (git.reugenio.com), nunca a GitHub

Control de Versiones

# Este proyecto
git remote: git@git.reugenio.com:reugenio/service-monitor.git (pendiente crear)

# Crear repo en Forgejo cuando esté listo el código inicial

Documentación del Sistema Local

El ordenador de trabajo está documentado en:

/home/re/cello/claude/claude.md
/home/re/cello/claude/docs/

Documentación del Servidor

Información detallada del servidor Simba:

/mnt/cello2/arno/re/recode/TEAM_STANDARDS/INFRASTRUCTURE/SERVIDOR_HETZNER.md

Estructura del Proyecto (Planificada)

service-monitor/
├── CLAUDE.md           # Este archivo
├── src/
│   ├── main.zig        # Punto de entrada
│   ├── checker.zig     # Lógica de verificación
│   ├── http.zig        # Cliente HTTP
│   ├── tcp.zig         # Verificación TCP
│   ├── config.zig      # Configuración de servicios
│   └── notify.zig      # Sistema de notificaciones
├── build.zig           # Sistema de build de Zig
├── services.json       # Lista de servicios a monitorear (configurable)
└── README.md           # Documentación de uso

Comandos Útiles

# Compilar
zig build

# Ejecutar verificación única
zig build run

# Modo daemon
zig build run -- --daemon --interval 60

# Release para servidor
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux

Ejemplo de Uso (Planificado)

# Verificar todos los servicios una vez
$ service-monitor check
✅ git.reugenio.com - 200 OK (45ms)
✅ git.reugenio.com:2222 - TCP OK (12ms)
✅ simifactu.com - 200 OK (89ms)
✅ mundisofa.com - 200 OK (67ms)
✅ menzuri.com - 200 OK (72ms)

# Modo watch (cada 60 segundos)
$ service-monitor watch --interval 60

Notas de Desarrollo

Esta sección se irá llenando conforme avance el proyecto


Estado: Proyecto nuevo, pendiente iniciar desarrollo (después de forgejo-cli)