Centreon : EventHandler Restart de Borne Wifi / DECT automatique Cisco & Ascom

Vous est il déjà arrivé d’avoir des bornes Wifi / DECT qui perdent la connexion, sans avoir pourquoi ? Elles sont toujours alimentées par le PoE, mais semblent KO. Moi ça m’arrive de temps en temps … Pour palier à ce problème, et être proactif, j’ai écrit un petit script bash permettant de redémarrer une Borne Wifi Cisco, ou une borne DECT ASCOM, dès que son état passe en “Down” dans Centreon. Le script mérite des améliorations, mais c’est déjà une première version qui pourra sûrement vous aider ;).


L’objectif du script

  • Dès qu’un hote (Borne Wifi / DECT) passe down dans Centreon
  • Déclenchement d’un Event Handler
  • L’event Handler appelle un script qui :
    • Se connecte à mon switch
    • passe en mode config
    • effectue un shut / no shut sur le port cible du switch.
  • La borne redémarre automatiquement.

Prérequis

  • Avoir vos équipements connectés en PoE.
  • Connaître l’emplacement de vos bornes Wifi
  • Installer sshpass sur votre serveur Centreon.

Installation de sshpass :

yum install sshpass

Le Script

#!/bin/bash
# Event Handler for Restarting Cisco Wireless Antenna & ASCOM DECT antenna
# By alexnogard
# https://alexnogard.com
case "$1" in
        OK)
                ;;
        WARNING)
                ;;
        UNKNOWN)
                ;;
        DOWN)
NOW=$(date +"%m-%d-%Y")
RAND=$[ 1 + $[ RANDOM % 100000 ]]
INT=$2
echo conf t >> "temp.$NOW.$RAND"
echo interface $INT >> "temp.$NOW.$RAND"
echo shutdown >> "temp.$NOW.$RAND"
echo no shutdown >> "temp.$NOW.$RAND"
echo exit >> "temp.$NOW.$RAND"
echo exit >> "temp.$NOW.$RAND"
echo exit >> "temp.$NOW.$RAND"
sshpass -p 'VotrePassword' ssh -o StrictHostKeyChecking=no  'VotreLogin'@$3 < "temp.$NOW.$RAND"
rm "temp.$NOW.$RAND"
        ;;
esac
exit 0
  • Les variables :
    • $1 : Etat de l’host
    • $2 Interface sur laquelle est connecté notre host
    • $3 Adresse IP de notre switch
  • Le script s’exécute uniquement si le status de l’host est “DOWN”
  • Le script crée un fichier temporaire avec les lignes de commandes Cisco pour shut / no shut une interface
  • sshpass s’execute, et parse le fichier temporaire, afin d’initier un restart
  • Veuillez remplacer “VotrePassword” et “VotreLogin” par vos propres identifiants switchs ;)

Le résultat :

Intégration dans Centreon

Ajouter la commande de redémarrage des APs :

 

Ensuite, choisissez un host, allez dans l’onglet Data Processing, et renseignez les cases relatives à l’Event Handler :

Les arguments à renseigner correspondent au $2 et $3 du script à savoir :

  • l’interface ou la borne est connectée
  • l’IP du switch ou la borne est connectée

Futurs Upgrades

Il s’agit ici d’une première version. Dans les futurs upgrades je compte intégrer une recherche automatique de la borne par Mac Address, stockée en base de données, afin d’éviter de rentrer en dur l’interface ainsi que l’IP du switch sur nos hotes. Ce qui permettra de déployer ce script massivement sur toutes nos bornes Wifi / DECT rapidement.

 

Si vous avez des questions, remarques, n’hésitez pas ;)

About Alexandre Nogard

Check Also

Bash Scripting : Creation de vhosts automatisés avec Certificat Lets Encrypt

Bonjour à tous, Il y a quelques temps, j’avais posté un script bash permettant de …

Owncloud 9.X : Installation d’un certificat Let’s Encrypt – Part 2

Lets Encrypt est une autorité de certification libre, qui fournit des protocoles X.509. Il permet …

Owncloud 9.X : Installation & Configuration sur CentOs 7 et MariaDB – Part1

OwnCloud est un serveur de partage de fichiers qui vous permet de stocker votre contenu …

Leave a Reply

Your email address will not be published. Required fields are marked *