A travers ce script perl, vous allez découvrir comment mettre en place une stratégie de sauvegarde de votre Appliance via Centreon. Ceci est aussi pour moi l’occasion de publier mon premier article et script sur la supervision réseau, alors soyez indulgent.
Voici le premier script que je publie sur mon blog concernant la supervision d’éléments actifs ou d’Appliance. Le script est écrit en PERL et se base sur des modules PERL CPAN.
Si vous voulez découvrir PERL et les modules CPAN, je vous conseille de lire avant ce tutoriel : Découvrez les modules CPAN et le langage PERL.
N’étant pas un développeur, je pense que ce script n’est pas très optimisé et peut être grandement amélioré. N’hésiter à modifier le script et à me l’envoyer pour que je publie les modifications sur GitHub et sur mon blog.
Le principe est simple, je me connecte sur l’appliance en SSH puis j’utilise la ligne de commande suivante : copy /noconfirm running-config tftp://@ip_tftp/nom_backup.cfg pour sauvegarder la configuration vers un serveur TFTP. Il ne faut pas oublier avant de se connecter sur le serveur TFTP (dans le script la connexion s’effectue en Telnet) pour supprimer la sauvegarde précédente sinon cela ne fonctionnera pas.
Ce script utilise 3 modules CPAN : Net ::Telnet, Net ::SSH ::Expect, Net ::SNMP. Je vais expliquer quelques portions de codes. J’ai essayé de commenter au maximum le code du plugin.
Au tout début du plugin vous devez déclarer les modules CPAN et les autres fonctions que vous allez utiliser.
Ici (ci-dessus) je vérifie que tous les arguments obligatoires pour l’utilisation du plugin soient bien saisis.
Avant de lancer la sauvegarde, je vérifie s’il existe une sauvegarde sur le serveur TFTP et je la supprime le cas échéant, sinon la prochaine sauvegarde échouera. Pour cela j’utilise le module Net ::Telnet. En cas de problème de connexion Telnet ou de suppression du fichier je gère une erreur. Celle-ci sera affichée dans Centreon avec le Statut Critical et la raison de l’erreur.
Cette portion de code permet de se connecter à l’appliance en SSH, de passer en mode privilégié (mode enable) et ensuite d’exécuter la commande de sauvegarde avec la fonction exec.
Une fois la sauvegarde réalisée, je me connecte en Telnet sur le serveur TFTP et je change les droits du fichier (commande chmod) et ensuite je récupère la taille du fichier de sauvegarde. La taille me permet d’effectuer un test pour vérifier que la sauvegarde s’est bien déroulée (taille du fichier >0).
Je teste la taille du fichier puis en fonction j’affiche la sortie dans Centreon en gérant le status (Critical, OK, …).
Voilà pour ces quelques explications du code. Maintenant passons au test que vous devez effectuer avant d’intégrer le plugin dans Centreon. Je copie le plugin dans le répertoire idoine.
Pour ma part j’utilise une CES (Centreon Entreprise Server) virtualité. 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).
Chaque plugin doit avoir une aide. Vous pouvez l’afficher avec le commutateur –h, cela vous indique les arguments à passer au plugin. Comme le montre notre exemple ci-dessus.
les paramètres du plugin sont simples :
- -I : correspond à IP de l’appliance ASA VPN-SSL.
- -T: correspond à IP du serveur TFTP.
- -F: correspond au nom du fichier de sauvegarde.
Maintenant passons sous l’utilisateur nagios et testons notre plugin.
su nagios ./backup_ssh_cisco_asa_5500.pl -I 192.168.19.10 -T 1.10.8.37 -F asa_5500_backup.cfg
Notre plugin s’exécute bien. Nous pouvons maintenant l’intégrer dans Centreon.
Généralement il est préférable d’utiliser les modèles de services et d’hosts dans Centreon pour faciliter son administration. Concernant notre plugin voici les différentes étapes :
- 1°) Création de la commande d’exécution (Configuration -> Commandes -> contrôles) :
- 2°) Création d’un modèle de service (Configuration -> Services -> Modèles) :
Dans ce modèle vous devez indiquer :
- L’alias et le Nom du modèle de service (ici Backup_ASA_5500)
- La commande de vérification (déroulez la liste et sélectionner votre script, ici Backup_ASA_5500, le nom a été défini lors de la création de la commande, voir écran précédent)
- 3°) Création d’un modèle d’hôte
Les modèles d’hôtes regroupent tous les scripts de vérifications et les paramètres spécifiques à l’hôte.
Dans Macros personnalisées de l’onglet Configuration d’hôtes vous mettez toutes les variables nécessaires aux plugins et les valeurs qui leurs sont associées. Pour notre exemple, j’ai rajouté la variable TFTP avec l’adresse de mon serveur TFTP.
Dans l’onglet Relations, j’ajoute le modèle de services Backup_ASA_5500 et je clic sur Sauvegarder pour enregistrer le tout.
Maintenant nous devons appliquer les modifications de notre modèle d’Hosts à tous les hosts faisant partie de ce modèle.
Allez dans Configuration -> Hôtes, dans la liste déroulante sélectionner le groupe d’hôtes associé. Tous les hôtes s’affichent.
Cocher les hôtes pour lequel le modèle doit être appliqué. Puis sélectionner dans la liste Plus d’actions ->Changement massif.
Dans Modèle d’hôte cliquer sur Ajouter un modèle et sélectionner le modèle voulu, ici SNMP-Cisco-ASA-VPN et cocher Oui pour Créer aussi les services liés au modèle. Cliquer sur Sauvegarder pour appliquer les modifications à tous les hôtes sélectionnés.
Maintenant nous devons ajouter les paramètres spécifiques aux services, comme le nom du fichier de sauvegarde mais aussi la fréquence de backup. Par défaut les services s’exécutent toutes les 5 minutes (du moins pour ma configuration) et toutes les 3 minutes en cas de problème.
Editer la configuration du service, pour cela aller dans Configuration -> Services -> Services par hôte -> Backup_ASA_5500
J’ai choisi de sauvegarder la configuration de mon appliance une fois par semaine soit toutes les 10080 minutes (Ligne Intervalle normal de contrôle) et sur la ligne Macro Personnalisées je rajoute le nom de la variable de mon plugin pour le nom du fichier de backup (NAMEBACKUP).
Pour que le nouveau service soit pris en compte vous devez relancer le service Nagios. Pour cela aller Configuration -> Nagios puis cocher les 4 cases de la section Actions et cliquer sur Exporter.
Au bout de quelques minutes la sauvegarde doit s’effectuer et vous devriez avoir quelque chose d’identique.
Voilà pour ce premier long et éprouvant tutoriel concernant les plugins sous Centreon. J’ai essayé de détailler les étapes au maximum. Les prochains tutoriels concernant les plugins seront moins détaillés, j’expliquerai uniquement le fonctionnement du plugin.
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 :
- N’oublier pas de saisir aux lignes 19,20 et 22,23 le login et le mot de passe pour votre serveur TFTP et l’appliance VPN-SSL ASA.
- Ligne 27 vous avez la possibilité de changer le chemin du TFTP.
- Lignes 143 et 148, vous avez la possibilité de changer le texte de sortie qui s’affichera dans Centreon.
That’s All.
Bonjour,
Quelle est la question ?
Cordialement.
Script.