Files
gilles 6cd910dbc0 feat(agent-scan-network): MQTT + configs exemples + ROADMAP Phase 6
- mqtt.rs : publication résumé scan sur sentinelmesh/<host>/network/scan
- Config MQTT dans les deux agents (enabled: false par défaut)
- ROADMAP Phase 6 complète : SSE, historique, Prometheus, MQTT 

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 06:32:57 +02:00

3.3 KiB

Roadmap SentinelMesh

Phase 1 — Architecture & Backend

  • Structure du dépôt
  • Workspace Cargo
  • Backend Axum skeleton
  • Base SQLite + migrations (agents, devices, metrics, events)
  • Endpoints API v1 complets (/agents, /network, /metrics, /events, /widgets)
  • Spec OpenAPI générée sur /api-docs/openapi.json

Phase 2 — Découverte réseau

  • agent-scan-network MVP : ping sweep TCP, ARP (/proc/net/arp), OUI
  • Détection services par scan de ports TCP (SSH, HTTP, HTTPS, SMB, MQTT, Docker, Proxmox, HA…)
  • API JSON locale de l'agent (GET /devices)
  • Push vers le backend (/api/v1/network)
  • Enregistrement automatique de l'agent au démarrage
  • Subnet configuré : 10.0.0.0/22
  • widget-network-scan Glance (tuile + popup) — reporté Phase 4
  • Résolution DNS inverse (PTR) — Phase 2+

Phase 3 — Métriques système

  • agent-metric : CPU/RAM/réseau/charge (1s via sysinfo)
  • agent-metric : disques, températures hwmon, SMART smartctl (30min)
  • agent-metric : DMI/hardware/BIOS depuis /sys (boot + toutes les 30min)
  • Événement boot envoyé au démarrage
  • API locale sur :9101 (GET /metrics)
  • Push vers /api/v1/metrics et /api/v1/events
  • widget-agent-metrics Glance — Phase 4

Phase 4 — Widgets Glance

  • widget-network-scan : liste équipements (état, IP, hostname, vendor, services, tri online/offline)
  • widget-agent-metrics : barres CPU/RAM/disque/température par agent, code couleur (ok/warn/crit)
  • CSS custom (sentinelmesh.css) : badges, barres de progression, points de statut
  • Page Glance exemple complète (glance-page-example.yaml)
  • Backend widgets enrichi : mac, ports, offline count, net_rx/tx_bps
  • Popups détaillés — nécessite widget extension (serveur HTTP séparé) — Phase 4+
  • Icônes locales par type d'équipement — Phase 4+
  • Favoris / personnalisation par équipement — Phase 4+

Phase 5 — Déploiement & Distribution

  • install/install.sh : script complet (détection arch, téléchargement, config, systemd, enregistrement)
  • install/uninstall.sh : désinstallation propre
  • Docker Compose production (healthcheck, réseau, volumes nommés)
  • docker-compose.dev.yml : profil développement
  • Dockerfiles agents multi-arch (amd64, arm64, armv7 Raspberry Pi)
  • .gitea/workflows/ci.yaml : check + clippy + fmt + tests sur push/PR
  • .gitea/workflows/release.yaml : build multi-arch + release Gitea sur tag v*

Phase 6 — Extensions

  • SSE (Server-Sent Events) : GET /api/v1/stream — events metrics et network en temps réel
  • Historique métriques : GET /api/v1/history/{agent_id}?hours=N, rétention 7 jours
  • Prometheus : GET /metrics — format text/plain, compatible Grafana/Prometheus
  • MQTT agent-metric : publication realtime/medium/events (rumqttc, QoS 0/1)
  • MQTT agent-scan-network : publication résumé scan réseau
  • Topics MQTT : sentinelmesh//metrics/realtime|medium et network/scan
  • Home Assistant integration via MQTT discovery — futur
  • PostgreSQL — futur (SQLite suffisant en homelab)
  • WebSocket bidirectionnel — futur
  • InfluxDB / Grafana direct — Prometheus couvre le besoin via scraping