Files
supervision/README.md
2026-04-02 12:18:53 +02:00

7.9 KiB

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) :

    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 :

  1. Telecharger NSSM et le placer dans le PATH

  2. Executer en administrateur :

    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 :

    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 :

    cd C:\supervision
    python -m venv .venv
    .venv\Scripts\pip.exe install -r requirements.txt
    
  2. Lancer :

    .venv\Scripts\python.exe app.py
    

Compiler en executable

.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