Aller au contenu
TAAF-OPS --:-- UTC

TP 7 — Bonus : Supervision énergie polaire de Dumont d'Urville (ICS/OT)

Acte 1 · Monitoring Bonus Zabbix · SNMP · ICS/OT · Énergie polaire

Auteur : Thibaut Fontaine — Kodetis Institution : Université de la Réunion Date : 2026 Pré-requis impératif : avoir validé le TP6 Concordia.



📡 Poste SOC · La Réunion — Acte 1, bonus. Tu superviser maintenant Dumont d’Urville (Terre Adélie) — la station la plus isolée du réseau TAAF.

🎯 Objectif métier — DDU vit en autonomie énergétique : générateur diesel + parc solaire + batteries lithium. Une panne énergie = la station meurt en 72h. La supervision doit être fiable, rapide, et déclencher des alertes critiques en < 30 secondes.

DDU est traitée dans le fil rouge comme la station avancée (Acte 3). Mais pour qu’elle survive aux campagnes austral, il faut superviser son énergie au quotidien. Tu ajoutes 4 équipements industriels au Zabbix Proxy de Concordia (qui supervise aussi DDU dans ce lab pour simplifier).

  1. Différence ICS/OT vs IT : équipement industriel = polling rapide, alarmes critiques, états binaires plus que graphes
  2. MIB DSE (Deep Sea Electronics) : contrôleur générateur diesel — référence du secteur énergie industrielle
  3. MIB SMA Sunny Boy : inverter photovoltaïque — équipement renouvelable typique
  4. MIB UPS générique RFC 1628 : MIB standard pour les BMS (vs MIB vendor du TP6 pour APC)
  5. Triggers à seuil critique : alerte en < 30s

Tu réutilises la stack TP6 telle quelle. Les devices DDU sont déjà simulés dans le snmpsim qui tourne sur la VM concordia. Il te suffit d’ajouter 4 hosts dans Zabbix.


Reprends ta session de la VM concordia. La stack du TP6 doit toujours tourner :

Fenêtre de terminal
cd ~/zabbix-lab/zabbix-proxy-lab
make status

Tu dois voir 3 containers running + les 4 devices Concordia + 4 devices DDU listés.

2.2 — Vérifier que les devices DDU répondent en CLI

Section intitulée « 2.2 — Vérifier que les devices DDU répondent en CLI »
Fenêtre de terminal
snmpget -v2c -c genset-ddu localhost:1161 SNMPv2-MIB::sysName.0
# → TAAF-DDU-GEN-01.univ-taaf.internal
snmpget -v2c -c inverter-ddu localhost:1161 SNMPv2-MIB::sysName.0
# → TAAF-DDU-INV-01.univ-taaf.internal
snmpget -v2c -c bms-ddu localhost:1161 SNMPv2-MIB::sysName.0
# → TAAF-DDU-BMS-01.univ-taaf.internal
snmpget -v2c -c wattmeter-ddu localhost:1161 SNMPv2-MIB::sysName.0
# → TAAF-DDU-PWR-01.univ-taaf.internal

Si les 4 répondent → tu peux attaquer. Bonne nouvelle, tu n’as RIEN à installer en plus.

🎉 Setup express. L’avantage d’un Proxy qui peut superviser N devices.


En ICS/OT, chaque seconde compte. Un générateur qui s’éteint = 30 secondes pour basculer en secours sinon coupure. C’est différent du monitoring IT classique.

3.1 — Le générateur diesel : poll toutes les 10 secondes

Section intitulée « 3.1 — Le générateur diesel : poll toutes les 10 secondes »

Crée le host genset-ddu-01 dans Zabbix UI :

  1. ConfigurationHostsCreate host
  2. Host name : genset-ddu-01
  3. Interfaces → SNMP : IP IP_CONCORDIA, port 1161, community genset-ddu
  4. Monitored by Proxy : Proxy-Concordia
  5. Add

Ajoute 5 items custom :

ItemOIDTypeUnitUpdate interval
Engine status.1.3.6.1.4.1.39120.1.1.1.1.0int10s
Engine RPM.1.3.6.1.4.1.39120.1.1.1.2.0intrpm10s
Oil pressure.1.3.6.1.4.1.39120.1.1.1.3.0intkPa10s
Coolant temp.1.3.6.1.4.1.39120.1.1.1.4.0int°C30s
Fuel level.1.3.6.1.4.1.39120.1.1.1.5.0int%5min

→ Note les intervalles différents :

  • 10s pour les valeurs critiques (RPM, pression huile — si ça déraille, il faut savoir TOUT DE SUITE)
  • 30s pour les valeurs moins urgentes
  • 5min pour les valeurs qui évoluent lentement (niveau gasoil)

3.2 — L’inverter solaire : poll toutes les 60 secondes

Section intitulée « 3.2 — L’inverter solaire : poll toutes les 60 secondes »

Crée le host inverter-ddu-01 (même méthode) avec :

ItemOIDUpdate
Inverter state.1.3.6.1.4.1.34571.2.1.1.1.060s
AC power output.1.3.6.1.4.1.34571.2.1.1.2.060s
Heatsink temp.1.3.6.1.4.1.34571.2.1.1.5.060s
Energy today.1.3.6.1.4.1.34571.2.1.3.1.05min

→ Pas besoin de poller à 10s : l’inverter ne change pas brutalement (sauf défaut massif), et l’énergie quotidienne est cumulative.

Va dans MonitoringLatest data. Sélectionne tes 2 hosts. Tu vois les Engine RPM et Oil pressure se mettre à jour bien plus souvent que les valeurs de l’inverter.

📸 Capture obligatoire #1 : Latest data avec timestamps montrant les différents intervalles.

🎉 Tu as compris le poll adaptatif. C’est une compétence ICS/OT qui te distingue.


4. Section 2 — Explorer les MIBs industrielles (25 min)

Section intitulée « 4. Section 2 — Explorer les MIBs industrielles (25 min) »

MIB vendor exotique. Tu vas devoir lire et comprendre des arbres OIDs jamais vus avant. C’est le quotidien d’un admin ICS.

Fenêtre de terminal
snmpwalk -v2c -c genset-ddu localhost:1161 .1.3.6.1.4.1.39120

Tu vois apparaître l’arbre complet de la DSE-MIB. Note ce qui revient :

.1.3.6.1.4.1.39120.1.1.1.* → Engine (moteur diesel)
.1.3.6.1.4.1.39120.1.1.2.* → Generator output (sortie électrique)
.1.3.6.1.4.1.39120.1.1.3.* → Runtime stats (heures de marche)
.1.3.6.1.4.1.39120.1.1.4.* → Alarms (alarmes critiques)

→ La structure d’une MIB vendor te dit déjà ce que le device fait.

Fenêtre de terminal
snmpwalk -v2c -c inverter-ddu localhost:1161 .1.3.6.1.4.1.34571.2

Structure similaire :

  • .1.1.* → DC side (entrée panneaux solaires)
  • .1.2.* → AC side (sortie réseau)
  • .1.3.* → Energy counters
  • .1.4.* → Faults

Différence importante :

Fenêtre de terminal
snmpwalk -v2c -c bms-ddu localhost:1161 .1.3.6.1.2.1.33

Le .1.3.6.1.2.1.33 est la branche UPS-MIB standard RFC 1628. C’est une MIB vendor-agnostique : n’importe quel constructeur de BMS qui parle cette MIB sera supervisable de la même façon.

Avantage : pas besoin d’apprendre 50 MIBs constructeur, 1 MIB standard couvre tout le monde. → Inconvénient : moins de richesse fonctionnelle qu’une MIB vendor (qui expose les particularités).

Dans un fichier mibs-comparison.md :

DeviceMIB typeNœud enterpriseOID branche racineAvantage
Switch Cisco IE-2000MIB-II standard + Cisco vendor9 (Cisco).1.3.6.1.2.1 + .1.3.6.1.4.1.9Standard MIB-II partout, Cisco enrichit
Onduleur APCPowerNet vendor318 (APC).1.3.6.1.4.1.318Très riche fonctionnellement
Générateur Deep SeaDSE-MIB vendor39120 (DSE).1.3.6.1.4.1.39120Exhaustif pour l’industriel
Inverter SMASMA vendor34571 (SMA).1.3.6.1.4.1.34571Détails PV spécifiques
BMS génériqueUPS-MIB standard RFC 1628.1.3.6.1.2.1.33Vendor-agnostique

🎉 Tu maîtrises l’arborescence SNMP. Tu sais où chercher dans n’importe quel équipement.


5. Section 3 — Scénario coupure diesel ⭐ (25 min)

Section intitulée « 5. Section 3 — Scénario coupure diesel ⭐ (25 min) »

Le moment fort du TP. Tu démontres la valeur d’un monitoring ICS qui réagit en secondes.

5.1 — Créer un trigger critique sur le générateur

Section intitulée « 5.1 — Créer un trigger critique sur le générateur »

Sur le host genset-ddu-01TriggersCreate trigger :

  • Name : DDU - Générateur diesel en défaut
  • Severity : Disaster (rouge sang)
  • Problem expression : last(/genset-ddu-01/engine.status)=4
  • Recovery expression : last(/genset-ddu-01/engine.status)<>4

État 4 = Failed to start dans la DSE-MIB.

Sur ta VM concordia :

Fenêtre de terminal
# CLI :
make genset-fail
# OU console SCADA → bouton "GÉNÉRATEUR DDU → FAULT"

Attends 15-30 secondes (poll à 10s + traitement Zabbix).

Va sur MonitoringProblems. Tu dois voir :

Severity Problem Host Duration Status
DISASTER DDU - Générateur diesel en défaut genset-ddu-01 30s PROBLEM

📸 Capture obligatoire #2 : page Problems avec l’alerte Disaster qui clignote.

5.4 — Pendant ce temps, les conséquences en cascade

Section intitulée « 5.4 — Pendant ce temps, les conséquences en cascade »

Le générateur est tombé. Que se passe-t-il sur les autres équipements ? Va voir le BMS :

Fenêtre de terminal
snmpget -v2c -c bms-ddu localhost:1161 1.3.6.1.2.1.33.1.2.3.0
# → INTEGER: 92 (% charge batterie)

Le BMS continue à compenser. Si tu laisses tourner longtemps avec genset-fail actif, la batterie descend.

Fenêtre de terminal
make genset-restore

Le problem dans Zabbix passe en RESOLVED automatiquement. ~30 secondes plus tard.

📸 Capture obligatoire #3 : graph de l’engine status passant de 4 (fault) à 2 (running).

Pour bonus de bonus, déclenche un déséquilibre :

Fenêtre de terminal
make grid-imbalance

Sur le wattmètre, vois L1 = 251A vs L2 = 82A vs L3 = 64A. C’est un signal majeur en industrie (déséquilibre dangereux pour les machines triphasées).

Écris le trigger qui détecte ça (la formule à mettre dans Zabbix) :

abs(last(/wattmeter-ddu-01/current.l1) - last(/wattmeter-ddu-01/current.l2)) > 50

Et idem pour L2 vs L3, L1 vs L3.

🎉 Tu sais maintenant superviser une infra ICS critique. En entretien d’embauche, ça pèse.


Tu as supervisé du monitoring IT (Prometheus/Grafana, TPs 1-4) ET du monitoring ICS/OT (TP7). Prends 10 minutes pour comparer les deux mondes.


Tu réponds aux questions au fur et à mesure que tu avances dans le TP. Chaque section a son bloc de questions, à la fin. Tu rassembles tes réponses dans un rapport unique (PDF) avec :

  • Les 3 captures demandées dans le TP
  • Tes réponses aux 9 questions d’évaluation (1.1, 1.2, 1.3, 2.1, 2.2, 3.1, 3.2, 3.3, 3.4) + la question 4 de synthèse
  • Tes walks SNMP documentés (commandes + sorties)
  • Export de la configuration Zabbix DDU
Section TPQuestionsPoints
§1 Polling rapide vs lent1.1 + 1.2 + 1.34 pts
§2 MIBs industrielles2.1 + 2.24 pts
§3 Scénario coupure diesel ⭐3.1 + 3.2 + 3.3 + 3.48 pts
§6 Synthèse finale44 pts
Total/ 20

Format de rendu : PDF nom-prenom-promo.pdf sur Moodle.


Tu finis l’Acte 1. Direction l’Acte 2 SIEM si tu ne l’as pas déjà fait, ou directement l’Acte 3 Audit & Purple Team pour clôturer le parcours.