Files
supervision/README.md
Dom 61d17968a0 feat: init projet supervision — monitoring systeme Windows
Interface web Flask securisee pour surveiller CPU, RAM, disques
et processus (JVM, Nginx, Amadea Web 8 x64).
Alertes email SMTP configurables, seuils reglables, compilation
PyInstaller en .exe, installation service Windows via NSSM.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:48:35 +01:00

181 lines
5.5 KiB
Markdown

# Supervision — Monitoring Systeme Windows
Outil de surveillance systeme avec interface web securisee.
Surveille CPU, RAM, disques et processus specifiques (JVM, Nginx, Amadea Web 8 x64).
Envoie des alertes email lorsque les seuils configures sont depasses.
---
## Fonctionnalites
- **Dashboard temps reel** : CPU, RAM, disques, processus surveilles (rafraichissement auto)
- **Alertes email** : envoi automatique quand un seuil est depasse, avec cooldown anti-spam
- **Configuration complete via l'interface** :
- Seuils d'alerte (CPU, RAM, disque)
- Frequence de verification (en minutes)
- Serveur SMTP + test d'envoi integre
- Ajout/suppression de processus a surveiller
- Port de l'application
- Mot de passe administrateur
- **Securite** : authentification par login/mot de passe, rate limiting anti-bruteforce, en-tetes HTTP securises
- **Historique des alertes** consultable dans l'interface
---
## Installation rapide (executable)
### Pre-requis
- Windows 10/11 ou Windows Server 2016+
- Acces administrateur (pour le firewall et l'installation en service)
### Etapes
1. **Dezipper** `supervision_portable.zip` dans un dossier, par exemple :
```
C:\supervision\
```
2. **Lancer** l'executable :
```
C:\supervision\supervision.exe
```
3. **Ouvrir le navigateur** a l'adresse :
```
http://localhost:5000
```
4. **Se connecter** avec les identifiants par defaut :
- Identifiant : `admin`
- Mot de passe : `admin`
5. **Changer le mot de passe** immediatement dans Configuration > Mot de passe administrateur
6. **Configurer le SMTP** dans Configuration > Configuration SMTP, puis cliquer sur "Envoyer un email de test" pour valider
7. **Ajuster les seuils** si necessaire (valeurs par defaut : CPU 90%, RAM 85%, Disque 90%)
---
## Acces distant
Pour acceder a l'interface depuis une autre machine :
1. **Ouvrir le port dans le firewall Windows** (PowerShell en administrateur) :
```powershell
New-NetFirewallRule -DisplayName "Supervision Monitoring" -Direction Inbound -LocalPort 5000 -Protocol TCP -Action Allow
```
2. Acceder via : `http://<adresse-ip-du-serveur>:5000`
> **Recommandation** : pour un acces depuis internet, placer l'application derriere un reverse proxy (IIS, Nginx) avec HTTPS.
---
## Installation en tant que service Windows
Pour que Supervision demarre automatiquement avec Windows, utiliser [NSSM](https://nssm.cc/) :
1. Telecharger NSSM et le placer dans le PATH
2. Executer en administrateur :
```cmd
nssm install Supervision "C:\supervision\supervision.exe"
nssm set Supervision AppDirectory "C:\supervision"
nssm set Supervision Description "Monitoring systeme - Supervision"
nssm set Supervision Start SERVICE_AUTO_START
nssm start Supervision
```
3. Gestion du service :
```cmd
nssm start Supervision
nssm stop Supervision
nssm restart Supervision
nssm remove Supervision confirm
```
---
## Installation depuis les sources (developpement)
### Pre-requis
- Python 3.10 ou superieur
### Etapes
1. Creer l'environnement virtuel et installer les dependances :
```cmd
cd C:\supervision
python -m venv .venv
.venv\Scripts\pip.exe install -r requirements.txt
```
2. Lancer :
```cmd
.venv\Scripts\python.exe app.py
```
### Compiler en executable
```cmd
.venv\Scripts\pip.exe install pyinstaller
.venv\Scripts\pyinstaller.exe --name supervision --onedir --add-data "templates;templates" --add-data "static;static" --hidden-import flask --hidden-import flask_login --hidden-import flask_limiter --hidden-import psutil --noconfirm app.py
```
L'executable est genere dans `dist\supervision\`.
---
## Structure des fichiers
```
supervision\
├── supervision.exe # Executable principal
├── _internal\ # Dependances Python embarquees
├── templates\ # Pages HTML de l'interface
├── static\ # CSS
└── data\ # (cree au 1er lancement)
├── config.json # Configuration (seuils, SMTP, processus)
└── alerts.json # Historique des alertes
```
> **Important** : ne pas supprimer le dossier `_internal\`, il est necessaire au fonctionnement.
---
## Configuration par defaut
| Parametre | Valeur par defaut |
|--------------------------|-------------------|
| Port | 5000 |
| Intervalle de check | 1 minute |
| Cooldown entre alertes | 30 minutes |
| Seuil CPU | 90% |
| Seuil RAM | 85% |
| Seuil Disque | 90% |
### Processus surveilles par defaut
| Nom | Pattern de recherche | Alerte si arrete |
|--------------------|----------------------|------------------|
| JVM | java | Oui |
| Nginx | nginx | Non (desactive) |
| Amadea Web 8 x64 | amadea | Oui |
Tous les parametres sont modifiables depuis l'interface web.
---
## Depannage
| Probleme | Solution |
|----------|----------|
| "Le port 5000 est deja utilise" | Changer le port dans `data\config.json` ou fermer le programme qui occupe le port |
| Impossible de se connecter a distance | Verifier la regle firewall (port 5000 TCP entrant) |
| Pas d'email recu | Verifier la configuration SMTP et utiliser le bouton "Envoyer un email de test" |
| Mot de passe oublie | Supprimer `data\config.json` et relancer (reinitialise a admin/admin) |
| L'executable ne se lance pas | Verifier que le dossier `_internal\` est present a cote de `supervision.exe` |