Se rendre au contenu

La gestion des Traps SNMP avec Zabbix

La gestion des traps SNMP (Simple Network Management Protocol) est une fonctionnalité puissante de Zabbix qui permet de recevoir et d'analyser des événements provenant de périphériques réseau comme des routeurs, commutateurs, imprimantes, ou tout autre équipement compatible avec le protocol SNMP en version 1, 2 et 3. 

Cet article vous guidera à travers la configuration et les bonnes pratiques pour gérer efficacement les traps SNMP dans Zabbix.


Qu’est-ce qu’un trap SNMP ?

Un trap SNMP est une notification envoyée par un périphérique réseau à un gestionnaire SNMP (comme Zabbix). Contrairement au polling SNMP où le gestionnaire interroge régulièrement les équipements pour obtenir des données, un trap est un message asynchrone envoyé directement par l'équipement lorsqu'un événement se produit, comme :

  • Une panne matérielle
  • Un dépassement de seuil (température, charge CPU, etc.)
  • Une alerte critique, comme la perte de connexion d'un lien réseau


Pourquoi utiliser les traps SNMP dans Zabbix ?

Les traps SNMP permettent de réagir rapidement aux événements critiques, car ils sont envoyés en temps réel.

De plus, ils réduisent la charge réseau et système, car il n'est pas nécessaire d'effectuer un polling constant pour surveiller certains états.


Étapes pour configurer les traps SNMP dans Zabbix

1. Préparer votre serveur/proxy pour les traps SNMP

Zabbix repose sur des outils tiers pour recevoir les traps SNMP.

Voici les étapes pour les configurer :

a. Installer les outils nécessaires

Sur votre serveur ou proxy Zabbix, commencez par installez snmptrapd, un démon qui écoute les traps SNMP :

sudo apt install snmptrapd

b. Configuration de snmptrapd

Modifiez le fichier de configuration /etc/snmp/snmptrapd.conf pour y ajouter :

authCommunity log,execute,net public traphandle default /usr/bin/perl /usr/share/zabbix/snmptrap/zabbix_trap_receiver.pl

⚠️

Il faudra modifier la configuration authCommunity "public"pour la remplacer par votre communauté SNMP

Cela indique que les traps SNMP doivent être redirigés vers le script zabbix_trap_receiver.pl, inclus dans l’installation de Zabbix.

c. Activer et démarrer snmptrapd

sudo systemctl enable --now snmptrapd


2. Configurer Zabbix pour recevoir les traps SNMP

a. Activer le support SNMP dans Zabbix

Assurez-vous que le support SNMP est activé dans Zabbix. Cela nécessite que le proxy ou le serveur Zabbix soit compilé avec l’option --with-net-snmp ou que vous ayez installé Zabbix avec les packages fournis par l'éditeur.

Modifier le fichier de configuration du serveur ou proxy Zabbix pour activer la partie Trap SNMP

StartSNMPTrapper=1
SNMPTrapperFile=/var/lib/zabbix/snmptraps/snmptraps.log 

Créer le répertoire de gestion des traps /var/lib/zabbix/snmptraps:

mkdir -p /var/lib/zabbix/snmptraps

Créer le fichier de log pour stocker les traps: 

touch /var/lib/zabbix/snmptraps/snmptraps.log

Modifier les droits sur le fichier

chown Debian-snmp:Debian-snmp /var/lib/zabbix/snmptraps/snmptraps.log

Ajouter l'utilisateur zabbix dans le groupe Debian-snmp pour avoir accès en lecture

usermod -aG Debian-snmp zabbix

Redémarrer le service zabbix-proxy

sudo systemctl restart zabbix-proxy


3. Test de réception d'un trap

Envoyer un trap de test depuis le proxy avec la communauté du public:

snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.4' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.4 s "eth0"

Vérifier que le trap est reçu et enregistrer dans le fichier /var/lib/zabbix/snmptraps/snmptraps.log :

2024-11-16T11:11:13+0100 ZBXTRAP 127.0.0.1
UDP: [127.0.0.1]:55504->[127.0.0.1]:162
DISMAN-EVENT-MIB::sysUpTimeInstance = 55
SNMPv2-MIB::snmpTrapOID.0 = IF-MIB::linkUp.0.33
IF-MIB::linkUp = "eth0"
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 = "public"
SNMPv2-MIB::snmpTrapEnterprise.0 = IF-MIB::linkUp


4. Configurer un hôte pour recevoir des traps

  1. Créer ou modifier un hôte dans Zabbix.
  2. Ajouter une interface SNMP dans la configuration de l’hôte.
  3. Configurer les templates adaptés à l'équipement. Vous pouvez créer un template dédié pour recevoir et interpréter les traps.

c. Définir un item pour les traps

Ajouter un item SNMP trap à votre hôte :

  • Type : SNMP trap
  • Key : Utilisez une clé descriptive (par exemple, snmp.trap)
  • Type d'information : Texte (le contenu du trap sera enregistré comme une chaîne de caractères)


3. Décoder et filtrer les traps SNMP

Les traps SNMP bruts peuvent être difficiles à interpréter. Pour simplifier leur gestion :

a. Utiliser les MIBs

Les fichiers MIB (Management Information Base) permettent de traduire les identifiants numériques (OID) en noms lisibles par l'humain.

Installer les MIBs spécifiques à votre équipement pour décoder facilement les traps.


4. Simuler la réception d'un trap SNMP

Envoyer un trap test depuis le proxy avec la communauté public:

snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.4' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.4 s "eth0"

Vérifier dans Zabbix la réception du trap.


5. Configuration des déclencheurs

Vous pouvez ajouter des déclencheurs pour alerter lorsqu'une certaine chaîne de caractère est présente dans les données du trap reçu.


Bonnes pratiques pour la gestion des traps SNMP

  • Limiter les traps inutiles : Configurez vos périphériques pour n’envoyer que les traps pertinents, afin d'éviter la surcharge de votre système.
  • Tester les traps : Utilisez un outil comme snmptrap pour envoyer des traps de test et valider votre configuration :

    snmptrap -v 2c -c public localhost '' .1.3.6.1.6.3.1.1.5.3

  • Archiver les traps : Configurer logrotate pour conserver l'historique des traps importants à des fins de diagnostic.
  • Surveiller le démon snmptrapd : Assurez-vous que le service est toujours opérationnel, car il est essentiel pour la réception des traps.


Conclusion

La gestion des traps SNMP dans Zabbix permet de recevoir des alertes en temps réel, réduisant ainsi les délais de réaction aux problèmes critiques. En suivant ces étapes, vous pouvez configurer Zabbix pour une surveillance SNMP efficace et adaptée à vos besoins.

La Fonctionnalité "désactivation automatique des ressources perdues" de Zabbix 7.0