7cf56f24ef
- Workspace Cargo avec backend, agent-scan-network, agent-metric - Skeleton Rust pour les trois crates (Axum, Tokio, SQLx) - Documentation : README, FEATURES, ROADMAP, ARCHITECTURE, API, INSTALL - Exemples de widgets Glance (custom-api) - Script d'installation agents (squelette Phase 5) - Docker Compose + Dockerfile backend - .gitignore et CLAUDE.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Architecture SentinelMesh
Vue d'ensemble
┌─────────────────────────────────────────────────────────┐
│ Dashboards (Glance…) │
│ widget-network-scan widget-agent-metrics │
└──────────────────────┬──────────────────────────────────┘
│ /api/v1/widgets/*
┌──────────────────────▼──────────────────────────────────┐
│ Backend central (Rust/Axum) │
│ /api/v1/agents /api/v1/metrics /api/v1/network │
│ SQLite (→ PostgreSQL futur) │
└────────────┬────────────────────────┬───────────────────┘
│ push JSON │ push JSON
┌────────────▼────────┐ ┌──────────▼────────────────────┐
│ agent-scan-network │ │ agent-metric │
│ ICMP/ARP/MAC/DNS │ │ CPU/RAM/HDD/GPU/DMI/Events │
│ Détection services │ │ Multi-fréquence │
│ API JSON locale │ │ API JSON locale │
└─────────────────────┘ └───────────────────────────────┘
Principes
- Séparation stricte : collecte → centralisation → affichage. Jamais de lien direct widget ↔ agent.
- API-first : toute donnée accessible via
/api/v1/. - Agents autonomes : fonctionnent sans le dashboard, exposent leur propre API locale.
- Faiblement couplé : les widgets sont remplaçables par n'importe quel dashboard.
Flux de données
- Les agents scannent / collectent en local.
- Ils poussent les données vers le backend via HTTP JSON.
- Le backend stocke, agrège et expose via
/api/v1/. - Glance interroge les endpoints widgets (
/api/v1/widgets/*) à la fréquence de cache configurée.
Extensions futures
Les agents pourront publier directement vers : MQTT, Prometheus, InfluxDB, Home Assistant, Grafana, Node-RED.