Licence pro ASS&RProductionLecture : 7 min

Superviser le réseau d'une PME avec Zabbix et Grafana

Une panne de switch n'était connue que lorsqu'un utilisateur la signalait : j'ai déployé Zabbix et Grafana pour suivre en continu les trois switches de l'entreprise et prévenir par e-mail.

Contexte
Production · PME, 3 switches (2 Cisco, 1 UniFi), VM Debian 12 sur Hyper-V
Période
Août 2026
Mon rôle
Déploiement, configuration et tests en autonomie
Outils
Zabbix 7.0 LTS · Grafana 10.4 · SNMP · MariaDB · Cisco IOS · Debian 12 · Netdata (2024)

En bref

Le problème

Les trois switches de la PME n'étaient pas supervisés : une panne n'était connue qu'une fois signalée, et personne ne voyait charge, processeur ni température.

Ce que j'ai fait

J'ai déployé Zabbix et Grafana sur une VM Debian : collecte SNMP toutes les 30 s, six panneaux, trois actions d'alerte par e-mail via Microsoft 365.

Le résultat

1 497 métriques collectées, alerte reçue en moins de 2 minutes au test de bout en bout, mené sans couper un vrai switch.

1 497métriques collectées sur 3 switches (431 + 577 + 489)
30sentre deux interrogations SNMP de chaque switch
< 2minpour recevoir l'e-mail d'alerte au test de bout en bout
6panneaux Grafana : charge, trafic, mémoire, CPU, température, erreurs

Contexte

Le réseau de l'entreprise, une PME de distribution d'une vingtaine de personnes, repose sur trois switches : un Cisco au cœur, un Cisco de distribution et un UniFi 48 ports PoE, piloté par son contrôleur. Aucun n'était supervisé.

Ce projet prolonge ma première supervision des serveurs, avec Netdata (ci-dessous), et suit la migration du cœur de réseau en 10 Gigabit, dont il surveille les liens.

Avant : Netdata, en 2024

Ma première supervision date de décembre 2024, côté serveurs. Les lenteurs se découvraient quand un utilisateur appelait : j'ai monté une VM Debian 11 avec Netdata et rattaché cinq serveurs Windows à un tableau de bord commun, avec des alertes à deux niveaux, vérifiées par une montée en charge CPU provoquée. Pour la première fois, l'état des serveurs se lisait avant qu'un utilisateur se plaigne.

Accueil Netdata avec 6 nœuds (5 en ligne, 1 hors ligne), une alerte d'avertissement sur les dernières 24 h, 12,4 k métriques, 338 graphiques et 53 alertes configurées ; noms des nœuds masqués.
Fig. 1Tableau de bord Netdata Cloud : six nœuds supervisés, 12,4 k métriques collectées et 53 alertes configurées.

Elle m'a surtout appris ce qu'il ne fallait pas refaire. Le tableau de bord local de Netdata s'ouvrait sans mot de passe, et chaque agent envoyait l'état des serveurs à Netdata Cloud, un service tiers hors de l'entreprise. Zabbix et Grafana tournent sur une VM de l'entreprise, sans confier les mesures à un service extérieur. Et les switches, eux, n'étaient toujours pas supervisés.

Ce que j'ai fait

  1. Installer la plateformeUne VM Debian 12 minimale sur Hyper-V porte Zabbix 7.0 LTS, avec MariaDB, et Grafana 10.4, qui lit Zabbix par un compte de service limité à la lecture.
  2. Préparer les CiscoInventaire des voisins par CDP depuis le switch cœur, accès SSH propre (clés RSA 2048 bits, compte local dédié), puis SNMP avec une communauté ro : Zabbix peut interroger les switches, pas les modifier.
  3. Tester avant d'ajouterChaque switch répond à snmpwalk depuis la VM avant d'entrer dans Zabbix, qui l'interroge ensuite toutes les 30 secondes.
  4. Construire le tableau de bordSix panneaux Grafana, de la charge des interfaces à la température. Le plugin Zabbix ne se chargeait pas sous Grafana 13, la version du dépôt : j'ai installé la 10.4.
  5. Alerter, puis tester sans risqueUne boîte partagée Microsoft 365 envoie les alertes, pour qu'elles arrivent dans la boîte de réception principale. Pour valider la chaîne sans couper un vrai switch : un hôte fictif, sur une adresse libre.
Voir les détails techniques

Plateforme. VM sans interface graphique : 2 vCPU, 4 Go de RAM, 40 Go de disque. Zabbix depuis le dépôt officiel, base MariaDB en utf8mb4_bin, import du schéma initial, Apache pour l'interface web, fuseau Europe/Paris. Grafana avec le plugin Zabbix 4.6.1.

ÉquipementTemplate ZabbixMétriques
Switch cœur CiscoCisco IOS by SNMP431
Switch de distribution CiscoCisco IOS by SNMP577
Switch UniFi 48 ports PoENetwork Generic Device by SNMP489
Total1 497

L'écart entre les deux Cisco vient du nombre d'interfaces découvertes. Le template Cisco relève le trafic par interface (IF-MIB), le processeur (CISCO-PROCESS-MIB), la mémoire (CISCO-MEMORY-POOL-MIB) et la température (CISCO-ENVMON-MIB). Hôtes déclarés avec une interface SNMP sur le port 161 et la communauté portée par la macro {$SNMP_COMMUNITY}.

Liste des hôtes Zabbix : trois équipements réseau avec interface SNMP active, état Activé et nombre de données collectées, plus le serveur Zabbix lui-même ; noms d'hôtes masqués.
Fig. 2Les trois switches supervisés en SNMP dans Zabbix, chacun avec plusieurs centaines d'éléments collectés.

Switch UniFi. Template générique « Network Generic Device by SNMP », découverte des interfaces forcée au lieu d'attendre son cycle d'une heure : 489 métriques (48 ports cuivre, 4 ports SFP+ et les interfaces de gestion). Processeur, mémoire et température : trois OID testés, trois refus. Je l'ai documenté comme une limite de l'équipement.

Bash · tests SNMP sur le switch UniFi

# Charge CPU (UCD-SNMP)
snmpwalk <options SNMP> <ip-unifi> 1.3.6.1.4.1.2021.10.1.3
# Processeur (HOST-RESOURCES-MIB)
snmpwalk <options SNMP> <ip-unifi> 1.3.6.1.2.1.25.3.3.1.2
# MIB privée Ubiquiti
snmpwalk <options SNMP> <ip-unifi> 1.3.6.1.4.1.41112

# Même réponse pour les trois :
# No Such Object available on this agent at this OID

Grafana 13 refuse le plugin Zabbix

Problème

Le dépôt APT installait Grafana 13 ; le plugin Zabbix 4.6.1 refusait de se charger et la source de données n'était pas reconnue. C'est le plugin qui imposait la version de Grafana.

Résolution

Désinstallation de la 13, installation manuelle du paquet .deb de la 10.4, avec la dépendance qui manquait sur Debian 12, puis du plugin avec grafana-cli.

Second accroc, peu documenté : pour un hôte ajouté après coup, le plugin affichait l'hôte sans ses métriques tant que son cache n'était pas vidé. Un redémarrage de grafana-server règle le problème. Chaque série est renommée (overrides) pour qu'on reconnaisse l'équipement sans lire un identifiant technique.

PanneauCe qu'il montreValeurs observées
Charge des interfacesDébit instantané de 6 ports clés, du vert au rouge—
Trafic des liens 10GEntrée et sortie des 3 switches (6 courbes)5 à 25 Mbit/s
MémoireJauges des 2 Cisco35,7 % (cœur), 12,4 % (distribution)
ProcesseurCourbes des 2 CiscoSous 45 %
Température4 capteurs (3 sur le cœur, 1 sur la distribution), alerte à 50 °C25 à 41 °C
Erreurs et pertesPaquets rejetés et erreurs sur les liens 10GProches de zéro

Alertes. Un e-mail envoyé depuis mon propre compte vers moi-même aurait été classé par Exchange hors de la boîte de réception principale ; une boîte partagée ne demande pas de licence. Le type de média Zabbix dépose les alertes directement sur la messagerie Microsoft 365 du domaine.

ActionCondition de déclenchement
Alerte CPU élevéGravité ≥ Avertissement
Alerte Switch DownGravité ≥ Haute
Alerte Température élevéeNom du déclencheur contenant « Temperature »

La première action porte mal son nom : sa condition couvre tout déclencheur de gravité Avertissement ou plus, pas uniquement le processeur. L'hôte fictif « TEST-ALERTE » utilisait le template Cisco ; l'alerte a lancé l'action « Switch Down ».

L'incident

Le contrôleur UniFi refuse la configuration SNMP

Problème

L'adresse IP du switch était déjà associée à un autre client du réseau : un équipement tiers, branché sur l'un de ses ports, qui l'avait partagée par le passé.

Résolution

Dans l'API du contrôleur, le réglage par équipement vérifie qu'une adresse n'appartient qu'à un client, pas le réglage au niveau du site. SNMP activé au niveau du site : switch provisionné sans erreur.

Résultats

Architecture de supervision : Zabbix, sur une VM Debian 12, interroge trois switches en SNMP toutes les 30 secondes, stocke les mesures dans MariaDB, alimente Grafana et envoie ses alertes par une boîte partagée Microsoft 365. Un hôte fictif sert au test de bout en bout. Switches · SNMP, 30 s Cisco · cœur 431 métriques Cisco · distribution 577 métriques UniFi 48 ports PoE 489 métriques, MIB-II VM Debian 12 sur Hyper-V MariaDB historique des mesures Zabbix 7.0 LTS collecte, déclencheurs Grafana 10.4 6 panneaux (API Zabbix) Hôte fictif de test panne simulée par ICMP Boîte partagée M365 expéditeur des alertes e-mail Équipe IT boîte de réception
Fig. 3Zabbix interroge les trois switches, stocke les mesures dans MariaDB et alimente Grafana ; ses alertes partent d'une boîte partagée Microsoft 365. En pointillés : l'hôte fictif du test de bout en bout.

Valeurs observées : mémoire à 35,7 % et 12,4 % sur les Cisco, processeur sous 45 %, températures de 25 à 41 °C pour un seuil d'alerte à 50 °C, erreurs proches de zéro. Le firmware UniFi n'expose que la MIB-II (interfaces, trafic, erreurs, durée de fonctionnement) : processeur, mémoire et température ne concernent que les Cisco.

Au test, le déclencheur « Cisco IOS: Unavailable by ICMP ping » s'est levé après trois cycles sans réponse, et l'e-mail est arrivé en moins de 2 minutes dans la boîte de réception principale. L'hôte fictif a été supprimé aussitôt après.

Tableau de bord Grafana sombre à six panneaux : jauges de charge des interfaces, courbes de trafic des liens 10G, jauges mémoire, CPU, températures entre 25 et 41 °C et erreurs proches de zéro ; noms d'hôtes masqués dans la légende CPU.
Fig. 4Tableau de bord Grafana alimenté par Zabbix : charge des interfaces 10G, trafic, mémoire (35,7 % et 12,4 %), CPU, températures et erreurs des trois commutateurs.

Ce que j'améliorerais

  • SNMPv3 dès le départ, avec authentification et chiffrement, et une liste d'accès réservée au serveur de supervision.
  • Des traps en plus de l'interrogation : la détection repose sur l'interrogation toutes les 30 secondes. J'activerais les traps utiles, comme un lien qui tombe, avec snmp-server enable traps sur les switches et un récepteur snmptrapd côté Zabbix.
  • Chiffrer dès l'installation : HTTPS sur les interfaces web de supervision, envoi des alertes chiffré.

Compétences

  • Supervision réseau avec Zabbix
  • SNMP, MIB et OID
  • Cisco IOS en ligne de commande
  • Tableaux de bord Grafana
  • Diagnostic de compatibilité
  • Tests sans risque pour la production