232 lines
7.9 KiB
Markdown
232 lines
7.9 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)
|
|
- **Suivi des utilisateurs Amadea** : statut en temps reel (Actif / Inactif / Deconnecte), derniere action, nombre d'actions sur 24h, graphique d'activite horaire
|
|
- **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
|
|
- Chemin du dossier de logs Amadea
|
|
- Seuils de statut utilisateurs (actif / inactif)
|
|
- 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, logs Amadea)
|
|
└── alerts.json # Historique des alertes
|
|
```
|
|
|
|
### Structure des sources (developpement)
|
|
|
|
```
|
|
supervision\
|
|
├── app.py # Application Flask, routes
|
|
├── monitor.py # Surveillance CPU/RAM/disques/processus
|
|
├── user_monitor.py # Suivi utilisateurs Amadea (parsing logs)
|
|
├── alerter.py # Envoi d'alertes email
|
|
├── config_manager.py # Persistance configuration JSON
|
|
├── templates\ # Pages HTML Jinja2
|
|
├── static\ # CSS
|
|
└── tests\ # Tests unitaires (pytest)
|
|
```
|
|
|
|
> **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% |
|
|
| Chemin logs Amadea | `C:\ProgramData\ISoft\Amadea Web 8 x64\data\logs` |
|
|
| Statut Actif si | derniere action < 5 minutes |
|
|
| Statut Inactif si | derniere action < 30 minutes |
|
|
|
|
### 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.
|
|
|
|
---
|
|
|
|
## Suivi des utilisateurs Amadea
|
|
|
|
L'onglet **Utilisateurs** affiche en temps reel les utilisateurs connectes a Amadea Web 8 x64.
|
|
|
|
### Fichiers de logs lus
|
|
|
|
| Fichier | Role |
|
|
|---------|------|
|
|
| `awevents_JJ-MM-AA_N.txt` | Source principale : actions utilisateurs, deconnexions explicites |
|
|
| `isoft_JJ-MM-AA_N.txt` | Complement : evenements de session |
|
|
|
|
Seuls les fichiers du jour courant sont lus (les fichiers des jours precedents zipes sont ignores pour le tableau temps reel). Le graphique "7 derniers jours" utilise les fichiers `.txt` non zipes s'ils sont disponibles.
|
|
|
|
### Regles de statut
|
|
|
|
| Statut | Condition |
|
|
|--------|-----------|
|
|
| **ACTIF** | Derniere action < 5 min (configurable) |
|
|
| **INACTIF** | Derniere action entre 5 et 30 min (configurable) |
|
|
| **DECONNECTE** | Derniere action > 30 min ou deconnexion explicite detectee |
|
|
|
|
### Configuration du chemin des logs
|
|
|
|
Dans **Configuration > Chemin des logs Amadea**, renseignez le chemin complet du dossier contenant les fichiers `awevents_*.txt` et `isoft_*.txt`.
|
|
|
|
Valeur par defaut : `C:\ProgramData\ISoft\Amadea Web 8 x64\data\logs`
|
|
|
|
---
|
|
|
|
## 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` |
|
|
| Onglet Utilisateurs vide ou erreur | Verifier le chemin des logs dans Configuration et s'assurer que le service Amadea tourne |
|
|
| Tous les utilisateurs affiches DECONNECTE | Normal si aucune activite recente — verifier que les fichiers `awevents_*.txt` du jour sont bien presents dans le dossier configure |
|