Files
supervision/README.md
2026-04-07 15:48:56 +02:00

136 lines
3.8 KiB
Markdown

# SuperVision
Outil de supervision système avec interface web, écrit en Rust. Surveille CPU, RAM, disques et processus en temps réel, avec alertes par email et suivi des utilisateurs Amadea.
## Fonctionnalités
- **Dashboard temps réel** — CPU, RAM, disques, uptime, statut par code couleur (ok / warning / critical)
- **Surveillance de processus** — détection par pattern, alerte si processus arrêté, seuil mémoire configurable
- **Alertes email (SMTP)** — envoi automatique avec cooldown configurable pour éviter le spam
- **Suivi utilisateurs Amadea** — analyse des logs `awevents` et `isoft`, statuts actif/inactif/déconnecté, graphe d'activité horaire et hebdomadaire
- **Interface de configuration** — seuils, SMTP, processus, port, mot de passe admin, tout modifiable via l'UI
- **Service Windows** — installation en tant que service système avec démarrage automatique
## Prérequis
- [Rust](https://rustup.rs/) (édition 2021, Rust 1.75+)
- [Visual Studio Build Tools](https://visualstudio.microsoft.com/fr/visual-cpp-build-tools/) avec la charge de travail **Développement Desktop en C++**
## Générer l'exécutable
```cmd
cd SuperVisionRust
cargo build --release
```
L'exécutable est généré dans : `target\release\supervision.exe`
## Déploiement
Copier les éléments suivants dans un dossier de déploiement (ex: `C:\SuperVision\`) :
```
supervision.exe
static\
templates\
```
## Lancer l'application
### En mode console (test / debug)
```cmd
supervision.exe
```
L'interface web est accessible sur : **http://localhost:5000**
Identifiants par défaut : `admin` / `admin` — à changer immédiatement dans les paramètres.
### Changer le port
Dans les paramètres de l'interface web (`/settings`), ou en éditant `data\config.json` avant le premier lancement :
```json
{
"port": 5000
}
```
## Installation en tant que service Windows
L'invite de commande doit être lancée **en tant qu'administrateur**.
### Installer le service
```cmd
supervision.exe install
```
Le service est enregistré sous le nom `Supervision` avec un démarrage automatique.
### Démarrer / arrêter le service
```cmd
sc start Supervision
sc stop Supervision
```
Ou via le Gestionnaire des services Windows (`services.msc`).
### Désinstaller le service
```cmd
sc stop Supervision
supervision.exe uninstall
```
## Structure des données
Au premier lancement, un dossier `data\` est créé automatiquement dans le même répertoire que l'exécutable :
```
data\
config.json # Configuration complète (port, seuils, SMTP, admin...)
alerts.json # Historique des alertes (500 entrées max)
```
## Configuration SMTP
Dans l'interface web (`/settings`), section **SMTP** :
| Champ | Description |
|-------|-------------|
| Serveur | Adresse du serveur SMTP (ex: `smtp.office365.com`) |
| Port | Généralement `587` (TLS) ou `465` (SSL) |
| Utilisateur | Adresse email d'envoi |
| Mot de passe | Mot de passe ou token d'application |
| Destinataires | Emails séparés par des virgules |
Un bouton **Tester** permet de vérifier la configuration sans attendre une alerte réelle.
## Surveillance des utilisateurs Amadea
Renseigner le chemin des logs Amadea dans les paramètres (`/settings`) :
```
C:\ProgramData\ISoft\Amadea Web 8 x64\data\logs
```
SuperVision parse les fichiers `awevents_YY-MM-DD_*` et `isoft_YY-MM-DD_*` pour construire la liste des utilisateurs connectés et leur activité sur les dernières 24h.
Les seuils de statut (actif / inactif / déconnecté) sont configurables en minutes.
## Lancer les tests
```cmd
cargo test
```
## Sécurité
- Sessions HTTP sécurisées avec cookie de session
- Mots de passe stockés avec bcrypt
- En-têtes de sécurité HTTP automatiques (`X-Frame-Options`, `X-XSS-Protection`, `X-Content-Type-Options`)
- Toutes les routes (sauf `/login`) nécessitent une authentification