Le but de ce script est de remonter le nombre de visio en cours sur un équipement Cisco SX20. Actuellement la MIB fournit par Cisco ne contient aucune information intéressante. Nous sommes donc obligé de nous connecter en SSH sur la visio et récupérer le résultat d’une commande.
Tout d’abord quelques informations sur l’équipement Cisco SX20.
Le Cisco TelePresence SX20 transforme chaque écran plat en un système de visioconférence haute définition flexible et performant. Le SX20 rend possible une vidéo Full-HD jusqu’à 1080p et du partage de contenu jusqu’à 1080p. Il combine un codec performant et une caméra Full-HD dotée un zoom optique x12. L’option de dual display permet d’utiliser un écran supplémentaire et fait du SX20 une solution complète et efficace, rapide à implémenter et facile à utiliser.
Passons maintenant à la description du script.
Vu qu’il n’existe pas d’OID pour récupérer le nombre d’appel en cours sur la Visio, nous devrons utiliser le module CPAN Net::SSH::Expect pour se connecter sur la visio, exécuter une commande et récupérer le résultat pour ensuite l’interpréter.
La commande Cisco pour voir le nombre d’appel en cours sur la Visio est :
#xstatus SystemUnit State NumberOfActiveCalls
Avec un appel en cours :
Intéressons-nous maintenant au script PERL :
Le plugin utilise 2 modules CPAN NET ::SNMP et NET ::SSH ::EXPECT (pour la connexion SSH sur l’équipement et l’exécution de commande).
Avant de commencer le traitement, je vérifie que toutes les options obligatoires soient saisies :
- $opt_host : permet de saisir l’adresse IP de l’équipement à surveiller.
- $opt_command : permet de saisir la commande à exécuter sur la visio pour récupérer le nombre d’appel en cours.
- $opt_w : permet de saisir une valeur de Warning pour le nombre d’appel en cours.
- $opt_c : permet de saisir une valeur de Critical pour le nombre d’appel en cours.
- 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.
- Ligne 83 à 88 : Passage des paramètres obligatoires (IP, login, password, …) pour la connexion SSH sur l’équipement.
- Ligne 92 : Connexion via le module NET ::SSH :EXPECT sur la visioCisco.
- Ligne 95 : Exécution de la commande sur la visio Cisco
- Ligne 98 : Nous lisons ligne par ligne les résultats de la commande.
- Ligne 99 : Dans la variable $searchstring nous indiquons la chaine de caractères qui fera matcher la ligne pour récupérer le nombre d’appels en cours.
- Ligne 103 : Une fois la ligne récupérée, nous mettons le contenu de celle-ci dans un tableau. Le caractère de séparation etant un espace.
- Ligne 106 : Nous récupérons la valeur de la 4ème position dans le tableau qui correspond au nombre d’appel en cours. (On part de 0)
Le retour de la commande se fait sur 3 lignes, celle qui nous intéresse contient la chaine NumberOfActiveCalls :.
- Ligne 110 à 116 : test la valeur récupérée pour affecter le bon statut au service.
- Ligne 119 : Ferme la connexion SSH sur l’équipement.
- Ligne 122 : Affiche le résultat dans l’interface web de 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 à cette adresse : https://quick-tutoriel.com/script-perl-pour-la-sauvegarde-dune-appliance-cisco-asa-5500/.
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 centreon-engine.
Chaque plugin doit avoir une aide. Vous pouvez l’afficher avec le commutateur –h, cela vous indique les arguments à passer au plugin.
#su centreon-engine # ./check_ssh_telepresence_activecall.pl –h
Ce qui donne par exemple :
./check_ssh_telepresence_activecall.pl -H 192.168.100.18 -k "xstatus SystemUnit State NumberOfActiveCalls" -w1 -c2
Une fois le plugin intégré dans Centreon vous aurez ceci :
Avec ce plugin vous aurez un aperçu des visios en cours dans votre entreprise.
Vu que je ne suis pas un spécialiste de la programmation en PERL, ce script peut sûrement êtres optimisé. Si vous modifiez et/ou utiliser le plugin merci de laisser un petit commentaire cela fait toujours plaisir.
That’s All.