Le script Centreon PERL permet de superviser le POE sur les switchs Cisco.
Grâce à ce script, vous pouvez surveiller la consommation des périphériques POE sur le commutateur et déclencher des alertes si nécessaire. Comme d’habitude, vous trouverez ce script ainsi que diverses mises à jour et correctifs dans mon référentiel Github à : Tutoriel rapide Github (n’hésitez pas à vous abonner).
Tout d’abord, un petit rappel sur POE.
cette Alimentation par Ethernet (POE) autorisé à passer Tension 48V (jusqu’à 12 W de puissance ou plus de 25 W de POE+) et 100 Mbit/s ou 1 Gbit/s de données. Cette technologie distribue deux (ou plus) des quatre paires de fils contenues dans un câble UTP ou STP pour alimenter certains appareils sur un réseau Ethernet, tels que les téléphones IP, les disques durs réseau, les imprimantes, les caméras IP ou le point d’accès Wi-Fi.
Un câble Ethernet se compose de quatre paires de fils.Lorsqu’une connexion est établie à 100 Mbits, les données ne sont transférées que sur deux paires, c’est-à-dire Fils 1, 2, 3 et 6; les deux autres paires inutilisées, les fils 4, 5.7 et 8, peut être utilisé pour transporter du courant.Dans la plupart des cas, POE est à 1.2 et un autre fil à 3,6 avec des données.
Options de script PERL.
Le script utilise 2 modules CPAN : réseau :: SSH :: attendre (J’utilise ce module au lieu de Net::SSH::Perl ou Perl::SSH2 car j’ai beaucoup moins de problèmes avec les connexions SSH ou le passage en mode activé, et ce module est meilleur pour émettre plusieurs commandes dans la même session) et Réseau ::SNMP.
J’utilise toujours le même modèle pour mes scripts. Alors avant de commencer le traitement, je vérifie que toutes les options sont saisies :
- variable $opt_host Permet d’indiquer l’adresse IP du switch à surveiller
- variable $opt_command Vous permet de définir les commandes CLI à exécuter sur les commutateurs Cisco. Pour récupérer les informations POE dont nous avons besoin ici, nous utiliserons la commande suivante :
#show power inline | Exclure non applicable (exclure n/a permet de ne pas afficher les ports qui n’utilisent pas POE pour améliorer la vitesse de traitement des scripts, en particulier sur les commutateurs à 7 cartes et 48 ports) - variable $opt_w Autoriser la définition des valeurs en watts pour afficher les avertissements dans Centreon
- variable $opt_c Permet de définir des valeurs en watts pour afficher les valeurs critiques dans Centreon
- variable $opt_user et $opt_password Vous permet de saisir un identifiant et un mot de passe pour vous connecter au commutateur.Pour éviter d’utiliser ces identifiants dans Centreon, les valeurs peuvent être définies dans le script Ligne 82 l’utiliser et Ligne 85 pour le mot de passe.
scripts PERL.
Nous allons maintenant examiner les parties les plus intéressantes du code du plugin.
- 98 à 104 : Paramètres requis pour se connecter à un périphérique Cisco 4500 à l’aide du module Net::SSH::Expect
- 106 : Connectez-vous à l’appareil.
- 111 : Nous utilisons cette astuce pour afficher le résultat complet d’une commande sans –MORE-
- 112 : Nous exécutons la commande sur le commutateur.
- 116 : Dans cette boucle, nous lisons chaque ligne de retour de la commande placée.
- 119 : Dans ce cas, on rétablira la puissance totale disponible sur le switch, qui se situe à Lignes disponiblesEnsuite, nous mettons chaque mot de cette rangée dans un tableau. Le délimiteur est un espace (ligne 121).
- 127 : Dans ce cas, nous avons récupéré 2 valeurs, le nombre d’appareils POE connectés au switch et la puissance consommée.
- 137 : Nous avons réactivé la valeur par défaut d’affichage des résultats des commandes sur le commutateur, qui est de 24 lignes.
- 150 à 159 : On vérifie le résultat de la variable $poe_consommation Déclencher une alarme dans Centreon si la puissance consommée dépasse notre limite.
- 162 : Nous construisons le graphe de suivi avec 2 valeurs de puissance totale et de puissance consommée. Nous pouvons personnaliser notre graphique avec la valeur maximale.
- 163 : Le résultat de la commande est affiché dans Centreon, incluant le nombre d’appareils connectés, la puissance totale disponible, la puissance consommée et son pourcentage pour une lecture rapide des résultats
Pour moi j’utilise CES virtualisé (Centreon Enterprise Server)Le répertoire où je dois copier le plugin est le suivant : /usr/lib/nagios/plugins.
Avant d’intégrer le plugin dans Centreon, je le lance toujours sur mon serveur pour vérifier que tout fonctionne. Les scripts sont exécutés par l’utilisateur du moteur centreon.
Vérification du fonctionnement du plugin.
Vérification #1 : Je m’assure que le plugin n’a pas d’erreurs de programmation en affichant l’aide
Vérification #2 : Je teste le plugin sur l’appareil souhaité, avec des valeurs réelles et un utilisateur exécutant le script sous Centreon.
#su centreon-engine #./check_ssh_cisco4500_poe -H 192.168.2.65 -k « sh power inline | exclure n/a » -w 1520 -c 2130
Ajouter des commandes à l’interface Centreon.
attention! ! ! Lors de la création de commandes dans Centreon, j’utilise des macros comme options de plugin. Normalement, toutes les options sont dans le modèle au niveau de l’hôte, mais pour cela, j’ai défini la variable $opt_command au niveau du modèle hôte, et les avertissements et les seuils seraient définis au niveau du service, car chaque commutateur peut avoir une puissance différente.
Ceci est implémenté au niveau de la commande :
ajouter avant le nom de la variable _héberger Indique que ce paramètre est au niveau HOST, et _Servir Indique que ces paramètres seront renseignés au niveau du service.
Dans mon modèle de switch Cisco, on retrouve dans une macro personnalisée la commande à exécuter sur le switch :
Si vous souhaitez en savoir plus sur la création de sondes, suivez ce tutoriel : Utiliser des macros pour créer des commandes dans Centreon
Une fois le plugin exécuté, vous l’aurez dans Centreon :
Prenons ce type de graphique comme exemple :
Merci de laisser un commentaire si vous modifiez et/ou utilisez le plugin, c’est toujours un plaisir.
Améliorations des plugins.
Voici une petite liste des améliorations à apporter :
- N’oubliez pas de taper en dur dans le plugin si vous n’avez pas indiqué le login et le mot de passe via les options Lignes 82 et 85
- En plus d’utiliser SSH, vous pouvez également utiliser SNMP pour récupérer ces valeurs et augmenter la vitesse de vos scripts.En fait, il faut environ 1 minute pour obtenir le résultat en utilisant cette méthode
- Nous pouvons éviter d’entrer la commande en option et la mettre directement dans le script, car avec le recul, cela n’a pas beaucoup de sens.
N’oubliez pas de récupérer le dépôt Github du script à l’adresse suivante : Tutoriel rapide Github (n’hésitez pas à vous abonner).
c’est tout.
Stay connected