136 lines
3.8 KiB
Markdown
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
|