Accueil › Réalisations › Supervision Zabbix et agent IA de diagnostic
Stage de 1re année — LOXYS Solutions Informatiques

Supervision Zabbix et agent IA de diagnostic

Superviser les serveurs avec Zabbix et confier le premier diagnostic des alertes à un agent IA Flowise, qui envoie à l'administrateur un e-mail avec la cause probable et la marche à suivre.

Période01/06/2026 – fin juin 2026CadreStageTuteurThomas HulinProjet principal du stage

Contexte et objectif

Une alerte de supervision indique qu'il y a un problème, mais pas pourquoi. L'objectif était d'aller plus loin : quand Zabbix détecte une anomalie, un agent IA collecte les vraies données du serveur, analyse la situation et envoie à l'administrateur un diagnostic avec une marche à suivre, sans intervention humaine dans la boucle.

Construction pas à pas

  1. 01/06 – 05/06 — recherches sur les agents IA, machine virtuelle de test, installation de Flowise pour prendre l'outil en main.
  2. 08/06 – 10/06 — Ubuntu Server installé sur un PC physique relié au réseau ; premier agent capable de lire l'espace disque, la RAM et les températures.
  3. 11/06 – 12/06 — supervision de la base du portail captif par l'agent, puis premier test de Zabbix.
  4. 15/06 — connexion de l'agent Flowise à Zabbix.
  5. 19/06 – 22/06 — e-mail d'alerte contenant l'analyse de l'agent, puis mise en forme pour une lecture rapide.
  6. 23/06 — l'agent utilise désormais les vraies valeurs des serveurs pour un diagnostic précis.
  7. Fin juin — nouveaux tests de bout en bout : le journal des actions de Zabbix montre l'alerte envoyée à l'agent (« Sent »).

Architecture

ComposantDétail
Serveur Flowise (Ubuntu Server)Zabbix 7.0 et Flowise en Docker, API de supervision, relais mail
Serveur Database (Ubuntu Server)Portail captif, base de données, API de supervision
OPNsense 26.1.10Pare-feu supervisé par un agent Zabbix
Agent IAFlowise, Tool Agent avec le modèle llama-3.3-70b (Groq)
Scripts Python FlaskMétriques CPU, RAM, disque, température (ports 5000 et 5001), relais e-mail (port 5002)

Chaîne d'alerte

  1. L'agent Zabbix détecte un CPU au-dessus de 90 % pendant 5 minutes.
  2. L'action Zabbix déclenche un webhook (script JavaScript) qui appelle l'API Flowise.
  3. L'agent IA interroge l'API de métriques, puis se connecte en SSH au serveur concerné.
  4. Le modèle produit un diagnostic principal, des causes alternatives et une marche à suivre, en français.
  5. Le relais Flask envoie un e-mail HTML aux couleurs de LOXYS à l'administrateur.

Supervision du réseau avec Zabbix

Limite : la borne UniFi n'a pas pu être supervisée, car son contrôleur demandait un processeur compatible AVX que le serveur n'avait pas.

Habilitations : donner le minimum de droits

Compte Zabbix flowise-bot

Les alertes n'étaient jamais transmises, sans aucune erreur visible. En cherchant, j'ai trouvé que l'utilisateur flowise-bot avait la permission None sur tous les groupes d'hôtes : Zabbix bloquait les notifications en silence.

J'ai ajouté un accès en lecture seule sur les groupes Databases, LOXYS Servers et Zabbix servers, puis vérifié dans le journal des actions que les envois passaient bien à l'état « Sent ».

Compte SSH restreint flowise-diag

Donner un accès SSH à une IA sur un serveur est une décision qui doit se justifier. J'ai créé un compte dédié qui ne peut rien modifier :

MesureEffet
Aucun droit sudoPas d'administration possible
Clé Ed25519 dédiéeDistincte de la clé de l'administrateur
Commande forcée dans authorized_keysLa clé ne peut lancer qu'un script de diagnostic
no-pty, no-port-forwardingPas de shell interactif, pas de tunnel
Script en lecture seuleCPU, mémoire, disque, processus, connexions, journaux d'erreurs
Groupe admLecture des journaux système uniquement

Vérification — à la connexion, le script s'exécute, renvoie les données puis ferme la session ; aucune autre commande n'est possible. Même si l'agent ou sa clé étaient compromis, ils ne pourraient rien modifier sur le serveur.

Déploiement, tests et accompagnement

Tests d'intégration

Déploiement

Zabbix et Flowise en conteneurs Docker, scripts Python et relais mail en services systemd, agents Zabbix sur les trois hôtes.

Accompagnement

Les e-mails ont été retravaillés pour qu'un technicien comprenne le problème en quelques secondes, et j'ai rédigé une documentation technique complète de l'installation pour LOXYS.

Difficultés et solutions

ProblèmeSolution
Les outils de l'agent recevaient une entrée videSchéma des outils remis à [] directement dans la base SQLite de Flowise
L'agent inventait des valeursPrompt système strict, appel obligatoire des outils de données réelles, 5 itérations au maximum
Module fs bloqué dans le bac à sable de FlowiseClé SSH intégrée à l'outil (point à améliorer avec un coffre de secrets)
MongoDB 7 impossible sans instructions AVXRetour à l'image mongo:4.4
Agent Zabbix refusé depuis le réseau DockerPlage 172.19.0.0/16 ajoutée au paramètre Server
Webhook expiré avant la réponse de l'IADélai des scripts porté à 60 secondes
Conflit de port entre Zabbix et le portailZabbix sur 8080, portail captif sur 80
Ubuntu 26.04 absent du dépôt Zabbix par défautDépôt spécifique à cette version

Compétences mobilisées (bloc 1, épreuve E5)

1.3
Mettre en place et vérifier les niveaux d'habilitation associés à un serviceDonner à l'agent IA et au compte Zabbix uniquement les droits nécessaires, puis vérifier. Voir l'explication · Voir les preuves
1.4
Vérifier les conditions de la continuité d'un service informatiqueSuperviser les serveurs et le pare-feu pour détecter ce qui menace la continuité du service. Voir l'explication · Voir les preuves
5.1
Réaliser les tests d'intégration et d'acceptation d'un serviceTester l'intégration par des stress tests, des tests du webhook et des appels d'API. Voir l'explication · Voir les preuves
5.2
Déployer un serviceDéployer Zabbix, Flowise et les services Python sur les serveurs. Voir l'explication · Voir les preuves
5.3
Accompagner les utilisateurs dans la mise en place d'un serviceLivrer des alertes lisibles et une documentation technique pour l'équipe. Voir l'explication · Voir les preuves

Ces compétences sont reportées dans mon tableau de synthèse E5.

Preuves

Preuves : habilitations Zabbix, compte SSH restreint et e-mail finalOuvrir le PDF
Documentation technique complète (secrets masqués)Ouvrir le PDF
← Portail captif WiFi conforme au RGPDPlanning prévisionnel et bilan du réalisé →