Script PERL Centreon permettant de récupérer le nombre de visio en cours sur un Cisco SX20.

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.

script_centreon_sx20_nbappel_1

script_centreon_sx20_nbappel_2

script_centreon_sx20_nbappel_3

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).

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

script_centreon_sx20_nbappel_4

Avec un appel en cours :

script_centreon_sx20_nbappel_5

Intéressons-nous maintenant au script PERL :

script_centreon_sx20_nbappel_6

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).

script_centreon_sx20_nbappel_7

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.
script_centreon_sx20_nbappel_8
  • 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

script_centreon_sx20_nbappel_9

  • 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)

script_centreon_sx20_nbappel_10

Le retour de la commande se fait sur 3 lignes, celle qui nous intéresse contient la chaine NumberOfActiveCalls :.

script_centreon_sx20_nbappel_11

  • 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

script_centreon_sx20_nbappel_12

Ce qui donne par exemple :

 ./check_ssh_telepresence_activecall.pl -H 192.168.100.18 -k "xstatus SystemUnit State NumberOfActiveCalls" -w1 -c2

script_centreon_sx20_nbappel_13

Une fois le plugin intégré dans Centreon vous aurez ceci :

script_centreon_sx20_nbappel_14

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.

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).

That’s All.

Laisser un commentaire

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