Script PERL Centreon permettant de récupérer l’atténuation d’un module optique

Script PERL Centreon permettant de récupérer l’atténuation d’un module optique

Découvrez comment optimiser votre supervision réseau avec un script Perl Centreon conçu pour surveiller en temps réel l’atténuation d’un module optique sur un châssis Cisco 6500.

La stabilité d’une boucle WDM est essentielle pour garantir la performance et la fiabilité d’un réseau. C’est pourquoi j’ai développé ce script personnalisé : il permet de récupérer précisément la puissance reçue par les modules optiques de votre cœur de réseau. Grâce à cette solution, vous pouvez anticiper les problèmes, éviter les pertes de signal et assurer un suivi efficace de l’état de vos équipements.

Dans cet article, je vous guide pas à pas dans l’intégration de ce script à Centreon, une plateforme reconnue pour la supervision des infrastructures IT. Vous y trouverez toutes les explications nécessaires pour l’installation, la configuration et l’exploitation de ce script.

Que vous soyez administrateur réseau ou passionné de monitoring, ce tutoriel vous apportera une solution clé en main pour améliorer la surveillance de votre réseau optique. Prêt à optimiser votre supervision ? Suivez le guide !

L’atténuation d’un module optique, qu’est-ce que c’est ?

L’atténuation d'un module optique désigne la diminution de la puissance du signal lumineux lorsqu’il traverse une fibre optique.

L’atténuation d’un module optique désigne la diminution de la puissance du signal lumineux lorsqu’il traverse une fibre optique. Ce phénomène est inévitable et peut être causé par divers facteurs, notamment l’absorption des matériaux, la diffusion de la lumière et les pertes aux connexions et soudures.

L’atténuation est généralement mesurée en décibels (dB) et joue un rôle critique dans la performance des réseaux de télécommunications. Une atténuation excessive peut entraîner une dégradation du signal, affectant la transmission des données et pouvant engendrer des erreurs, voire une perte complète de la communication. Une gestion efficace de l’atténuation est donc essentielle pour garantir la qualité du signal et la fiabilité du réseau.

Dans les réseaux optiques, une atténuation contrôlée est nécessaire pour éviter une puissance de signal trop élevée, qui pourrait saturer les récepteurs optiques et provoquer des distorsions. C’est pourquoi des atténuateurs optiques, fixes ou variables, sont souvent utilisés pour ajuster la puissance du signal aux niveaux optimaux.

De plus, une mauvaise gestion de l’atténuation peut entraîner des conséquences importantes, notamment une portée de transmission réduite, une augmentation du taux d’erreurs binaires (BER) et des dysfonctionnements dans les équipements actifs du réseau. Par exemple, une atténuation insuffisante peut endommager les composants optiques sensibles, tandis qu’une atténuation excessive peut rendre le signal inutilisable à destination.

Pour optimiser la performance des modules optiques, il est crucial d’évaluer et de contrôler l’atténuation tout au long du réseau.

Cela implique l’utilisation de dispositifs de mesure comme les réflectomètres optiques (OTDR), qui permettent d’identifier les pertes sur la fibre et d’optimiser l’installation des connexions. Les opérateurs doivent également choisir des composants de haute qualité, minimiser le nombre de jonctions et assurer un entretien régulier des fibres optiques pour réduire les pertes. En somme, une bonne gestion de l’atténuation garantit une transmission efficace des données et une meilleure longévité des infrastructures réseau.

Voici un tableau présentant les différents types de fibres optiques, classés en multimode et monomode, ainsi que leurs atténuations maximales typiques :

Explications :

  • Les fibres multimodes (OM1 à OM5) sont utilisées pour des distances courtes (jusqu’à quelques centaines de mètres). L’atténuation est plus élevée aux longueurs d’onde courtes (850 nm) mais diminue à 1300 nm. OM3, OM4 et OM5 sont optimisées pour les transmissions à haut débit (10G, 40G, 100G).
  • Les fibres monomodes (OS1 et OS2) sont conçues pour des transmissions longue distance. OS1 est destinée aux environnements internes, tandis qu’OS2 est optimisée pour les longues distances avec une atténuation plus faible.

Une bonne gestion de l’atténuation est essentielle pour garantir des performances optimales en fonction du type de fibre et de l’application.

Commande Cisco : show interface nom_interface transceiver

La commande show interface nom_interface transceiver sur les équipements Cisco permet d’obtenir des informations détaillées sur les modules optiques SFP, SFP+, QSFP utilisés sur une interface spécifique. Parmi ces informations, on retrouve les valeurs de puissance d’entrée et de sortie du signal, ce qui permet d’évaluer l’atténuation.

Fonctionnement de la commande

La commande est exécutée en mode privilégié (enable mode) sur un switch ou un routeur Cisco équipé de modules optiques. Elle s’utilise comme suit :

Switch# show interface <nom_interface> transceiver
Switch# show interface GigabitEthernet1/0/1 transceiver

L’exécution de cette commande fournit une sortie ressemblant à ceci :

La commande show interface nom_interface transceiver sur les équipements Cisco permet d'obtenir des informations détaillées sur les modules optiques SFP, SFP+, QSFP utilisés sur une interface spécifique.

Les principales mesures affichées sont :

Comment interpréter les valeurs de l'atténuation d'un module optique ?

Calcul de l’atténuation

L’atténuation est la différence entre la puissance d’émission (Output Power) et la puissance de réception (Input Power) :

L’atténuation est la différence entre la puissance d’émission (Output Power) et la puissance de réception (Input Power)

Interprétation des résultats

  • Atténuation normale : L’atténuation est conforme aux spécifications du type de fibre utilisé (cf. tableau précédent). Elle doit être en accord avec les valeurs typiques attendues pour la distance parcourue.
  • Atténuation trop élevée (ex. > 10 dB pour une courte distance) : Problèmes possibles tels que des connecteurs sales, des soudures mal réalisées, une fibre trop longue ou une mauvaise qualité de la fibre.
  • Atténuation trop faible ou négative : Cela peut indiquer une puissance de réception trop élevée, risquant de saturer le récepteur. Un atténuateur optique peut être nécessaire.
  • Input Power en dehors des seuils : Si la puissance reçue dépasse les valeurs de seuil (Threshold Low ou Threshold High), cela peut provoquer des erreurs de transmission.

Bonnes pratiques pour la gestion de l’atténuation

  • Vérifier les connecteurs et les nettoyer régulièrement.
  • Utiliser un OTDR pour mesurer les pertes sur la fibre.
  • Vérifier la compatibilité des modules SFP avec la distance et le type de fibre.
  • Utiliser des atténuateurs optiques si la puissance du signal est trop élevée.

Cette commande est donc essentielle pour diagnostiquer des problèmes de transmission optique et garantir une qualité de signal optimale sur un réseau Cisco.

Comme d’habitude vous retrouverez ce script et les différentes mises à jour et correctifs sur mon dépôt Github à cette adresse : https://github.com/quick-tutoriel (n’hésitez pas à vous abonner) :

A ma connaissance il n’est pas possible de récupérer l’atténuation d’un module optique via les MIB Cisco. Nous allons donc utiliser un plugin qui permet d’exécuter une commande sur le châssis Cisco et interpréter le résultat de la commande pour fournir une sortie à Centreon. Le tout en SSH.

La commande Cisco utilisée pour récupérer l’atténuation d’un module fibre optique est :

#show interface nom_interface transceiver detail

attenuation_centreon_1

La ligne qui nous intéresse est la dernière et particulièrement la colonne Optical Receive Power, qui nous indique l’atténuation avec le switch d’en face. Les autres colonnes vous donnent les seuils d’alertes.

La commande utilisée dans le script sera celle-ci :

#show interface nom_interface transceiver

attenuation_centreon_2

La valeur qui nous intéresse ici est la dernière : colonne Rx Power (dBm).

Le script PERL Centreon permettant de récupérer l’atténuation d’un module optique

Après ces brèves explications passons au détail du script.

Le script PERL Centreon permettant de récupérer l’atténuation d’un module optique

Ce script utilise 2 modules CPAN : Net ::SSH ::Expect, Net ::SNMP.

Ce script utilise 2 modules CPAN : Net ::SSH ::Expect, Net ::SNMP.

Avant de commencer le traitement, je vérifie que toutes les options soient saisies :

  • La variable $opt_interface permettra de récupérer la ligne qui nous intéresse dans la sortie de la commande. Cette variable prendra comme valeur soit Gi pour giga soit Te pour tengiga en fonction du type d’interface sur votre switch.
  • La variable $opt_command vous permettra de saisir la commande à utiliser pour récupérer l’atténuation du port sur le switch.
  • Les variables $low_limit et $upper_limit permettent de définir les seuils d’alertes.
  • Les variables $opt_user et $opt_password permettent de saisir en dur les identifiants, si vous ne voulez pas les saisir en argument dans la ligne de commande du plugin.

Le but est de mettre chaque ligne du résultat de la commande dans un tableau (@tab) puis ensuite sélectionner la ligne qui nous interesse et récupérer dans un autre tableau (@attenuation)

Voici (ci-dessus), le bout de code qui permet de traiter la sortie de la commande. Le but est de mettre chaque ligne du résultat de la commande dans un tableau (@tab) puis ensuite sélectionner la ligne qui nous interesse et récupérer dans un autre tableau (@attenuation) uniquement les valeurs numérique et ne conserver que la dernière grâce à la commande $attenuation[-1].

Pour vous faciliter la compréhension de ce bout de code, voici le résultat de la commande $line avant la mise dans le tableau (ligne 104).

Pour vous faciliter la compréhension de ce bout de code, voici le résultat de la commande $line avant la mise dans le tableau (ligne 104).

Ensuite on sélectionne la ligne (Ligne 107 dans le code) qui commence par Te, pour récupérer les valeurs d’atténuation.

Ensuite on sélectionne la ligne (Ligne 107 dans le code) qui commence par Te, pour récupérer les valeurs d’atténuation.

Ici nous préparons la sortie des résultats pour Centreon. Par convention je prends

  • $status : pour le statut du résultat (OK, WARNING, CRITICAL, UNKNOWN)
  • $perfdata : pour les données graphiques. N’oublier pas de mettre le signe = entre la designation de la valeur et la valeur
  • $output : pour la sortie dans Centreon

Maintenant passons à l’exécution du plugin. Si vous avez des difficultés dans Centreon pour créer votre plugin, j’ai détaillé lors de mon premier tutoriel la création d’un plugin avec des modèles de services et d’hôtes avec Centreon.

Pour ma part j’utilise une CES (Centreon Entreprise Server) virtualisé. Le répertoire ou je dois copier mes plugins est le suivant : /usr/lib/nagios/plugins.
Avant d’intégrer le plugin dans Centreon je l’exécute toujours sur mon serveur pour vérifier que tout fonctionne correctement. Les scripts sont exécutés par l’utilisateur nagios (Version CES V2.1).

Vérification du script Perl avant son exécution

Chaque plugin doit avoir une aide. Vous pouvez l’afficher avec le commutateur –h, cela vous indique les arguments à passer au plugin.

Voici la commande à passer :

./check_ssh_cisco_command_transceiver -H ip_switch -C "show interface nom_interface transceiver" -I Te -L lower_limit -U upper_limit

Ce qui donne par exemple :

./check_ssh_cisco_command_transceiver -H 192.168.123.1 -C "show interface ten 1/9/6 transceiver" -I Te -L -18.4 -U 0.4

Une fois le plugin créé dans Centreon vous aurez ce genre de sortie :

Résultat du script dans centreon

Ce qui donne en graphique :

Résultat sous forme graphique dans centreon

Si vous modifiez et/ou utiliser le plugin merci de laisser un petit commentaire cela fait toujours plaisir.

Précisions concernant l’utilisation du plugin :

  • Vous pouvez forcer le login et le password dans le script si tous vos équipements Cisco utilisent le même login-password (Ligne 76 et 79 du plugin)
  • N’oublier pas de saisir dans les paramètres du plugin le type d’interface Gi ou Te
  • Pour déterminer les seuils utiliser la commande show interface nom_interface transceiver detail
  • Dans Centreon, j’exécute le plugin toutes les heures et non toutes les 5 minutes comme par défaut
  • J’ai testé le plugin sur des Catalyst 6500 et 4500
N’oubliez pas le dépôt Github pour récupérer le script, à cette adresse : https://github.com/quick-tutoriel (n’hésitez pas à vous abonner).

Signature manuelle Guillaume

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *