# 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://: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.log(.gz)` | Source principale : actions utilisateurs, deconnexions explicites | | `awevents.log` | Log actif du jour (sans date dans le nom, serveur HDS) | | `isoft_JJ-MM-AA_N.log(.gz)` | Complement : evenements de session | La detection gere les deux cas du serveur HDS : log actif sans date dans le nom (`awevents.log`) et log zip en cours de journee avec date dans le nom (`awevents_26-04-13_1.log.gz`). ### Tableau temps reel (aujourd'hui) - Colonnes : Utilisateur, Statut, Derniere action, Actions (24h), Depuis - Tri : statut (actif → inactif → deconnecte), puis derniere action la plus recente en premier au sein de chaque groupe ### Graphique 7 derniers jours - Affiche le pic d'utilisateurs simultanes par jour - **Cliquer sur une barre** charge le tableau des utilisateurs de ce jour : Utilisateur, Derniere utilisation, Actions (jour), Duree de presence (premiere → derniere action) - Tri par nombre d'actions decroissant ### 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 de logs. 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 |