Dans ce troisième tutoriel, nous allons voir les bonnes pratiques pour créer une sonde dans Centreon. Nous allons commencer simplement par créer une sonde qui fait un ping d’un équipement et nous remonte comme information le délai de latence (RTA) et le pourcentage de paquets perdu.
Sommaire de l'article
- 1 Installation des plugins Pack de Nagios.
- 2 Création d’une commande de monitoring avec Fping.
- 3 Création d’un modèle de service Generic-Service
- 4 Création d’un modèle d’hôte Generic-Host.
- 5 Création d’un modèle de service.
- 6 Création d’un modèle d’hôte.
- 7 Création d’un Hôte.
- 8 Appliquer un modèle à un groupe d’hôte.
- 9 Vérifications.
- 10 Conclusion.
Installation des plugins Pack de Nagios.
Maintenant que votre serveur Centreon est prêt, vous devez utiliser des plugins pour superviser vos hôtes. Hormis les quelques plugins installés avec le Pack Manager vous n’avez pas grand-chose.
En installant les plugins Nagios vous allez avoir une bibliothèque importante pour bien débuter dans la supervision. Les plugins sont des petits programmes ou script en Python, Perl, BASH, Powershell, ….
Tout d’abord vous devez télécharger la dernière version des plugins Nagios depuis ce lien : Plugin Nagios pour Centreon
Récupérer l’archive des plugins Nagios avec la commande wget.
# wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
Le chemin par défaut des plugins Nagios est /usr/local/nagios/libexec/. Avant de pouvoir les utiliser nous allons devoir installer un certain nombre de dépendances et activer le dépôt EPEL.
yum install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils epel-release yum install -y perl-Net-SNMP yum install -y postgresql-devel yum install -y libdbi-devel yum install -y openldap-devel yum install -y mariadb-devel mariadb-libs yum install -y bind-utils yum install -y samba-client yum install -y qstat yum install -y fping yum install -y openssh-clients yum install -y lm_sensors
Maintenant il faut compiler et installer les plugins Nagios :
./configure make make install
Enfin il suffit de faire un ls /usr/local/nagios/libexec/ pour voir tous les plugins à disposition.
Création d’une commande de monitoring avec Fping.
Pour réaliser notre première commande de supervision, nous allons utiliser fping qui permet de vérifier si un équipement répond au ping.
Tout d’abord, il faut aller dans Configuration -> Collecteurs -> Ressources afin de s’assurer que le chemin pour les plugins Nagios est bien configuré, si non il faut le rajouter. Pour ma part le chemin n’était pas présent dans la configuration.
Pour rajouter un chemin, cliquer sur Ajouter.
- 1 : Nom votre variable qui nous servira à appeler le chemin où sont stockés les plugins dans nos commandes.
- 2 : Indiquer le chemin où son stocké les plugins Nagios.
- 3 : Sélectionner Central.
- 4 : Saisir une légende.
- 5 : Cliquer sur Sauvegarder pour créer la nouvelle ressource.
Je vous conseille avant d’exécuter la commande Fping, directement sur votre serveur Centreon.
La commande s’exécute correctement.
# su centreon-engine
Pour créer notre contrôle nous devons aller dans Configuration -> Commande -> Contrôles -> Ajouter
La création d’une commande peut paraitre fastidieuse au premier abord mais une fois que vous avez créé un modèle, il suffira de dupliquer celui-ci et l’adapter au besoin.
- 1 : Nom de commande, saisir le nom du contrôle. Il faut essayer d’être précis dans la dénomination. Vous pouvez mettre en place un système de nommage. Je vous conseille de le faire dès le début. Quand vous aurez plusieurs dizaines de scripts vous serez content que tout soit classé.
- 2 : Type de commande cocher Vérification.
- 3 : Ligne de commande, c’est la partie la plus délicate, vous devez utiliser en premier la ressource créée plus haut pour indiquer le chemin du plugin à utiliser. Puis vous devez utiliser les variables comme $HOSTADDRESS$ pour récupérer l’adresse IP au niveau du modèle de l’hôte. Ensuite il faudra peupler les différentes options. Je vous conseille de commencer les variables soit par $_HOST… (variable déclarée au niveau du modèle de l’HOST) ou $_SERVICE… (variable déclarée au niveau du modèle du service).
- 4 : Description des macros, ici vous pouvez expliquer à quoi corresponde chaque variable.
- 5 : Connecteurs, afin d’optimiser les requêtes de contrôles vous pouvez sélectionner un connecteur pour les scripts en PERL ou bien qui se base sur une connexion SSH. Attention toutefois tous les scripts ne supportent pas ces connecteurs. Je vous conseille quand même de les utiliser, cela soulage grandement les ressources de votre serveur.
- 6 : Modèle de graphique, Sélectionner un modèle de graphique si besoin pour avoir de belles courbes pour votre contrôle.
- 7 : Commentaire, vous expliquer ce que fait le plugin tout simplement. Penser à vos collègues.
- 8 : Cliquer sur Sauvegarder pour créer votre contrôle.
Création d’un modèle de service Generic-Service
Ce modèle un peu spécial servira de base à tous vos services et hôtes. Il contiendra toutes les informations concernant les Options d’ordonnancement des services comme les périodes de contrôle, le nombre de contrôle avant validation de l’état, intervalle normal de contrôle ainsi que les options de notifications….
Pour créer ce service il faut aller dans Configuration -> Services -> Modèles -> Ajouter
- 1 : Par habitude je nomme ce service Generic-Service, je trouve que ce nom lui va bien puisqu’il contiendra toutes les informations communes à tous nos services.
- 2 : Période de contrôle, sélectionner la valeur qui vous convient, me concernant je mets toujours 24×7.
- 3 : Nombre de contrôle avant validation de l’état, Centreon va vérifier 3 fois le statut du service afin de changer son état CRITICAL, WARNING, OK, UNKNOWN.
- 4 : Intervalle normal de contrôle, chaque service d’un hôte sera vérifié toutes les 5 minutes.
- 5 : Intervalle non-régulier de contrôle, Centreon va vérifier toutes les minutes le service de l’hôte en cas de problème.
- 6 : Sauvegarder le nouveau service.
- 1 : Pour l’instant je ne gère pas les notifications que ce soit par mail ou pas SMS donc j’ai coché Non. Le jour où je voudrais une notification j’ai juste à modifier ce service pour que les nouveaux paramètres s’appliquent à tout le monde.
- 2 : Période de notification, même si je ne gère pas les notifications j’ai choisi une période pour éviter les warnings dans les compilations.
Tous les paramètres sont modifiables en fonction de vos besoins. J’ai mis ceux que j’utilise depuis de nombreuses années sans problème particulier.
Création d’un modèle d’hôte Generic-Host.
Idem que ci-dessus mais appliqué aux hôtes. Seule petit changement nous allons lui appliquer une commande de vérification (un ping) pour savoir si l’hôte est toujours présent sur le réseau ou non. C’est cette commande qui nous permettra de connaitre les hôtes défaillants.
Pour notre modèle générique pour les hôtes, il faut aller dans Configuration -> Hôtes -> Modèles -> Ajouter puis compléter la fiche comme ci-dessous.
Création d’un modèle de service.
Maintenant nous devons créer un modèle de service (qui s’appuiera sur notre Service-Generic). Dans les bonnes pratique Centreon conseille d’utiliser les modèles.
Il faut aller dans Configuration -> Services -> Modèles.
Cette étape est assez simple.
- 1 : Alias et Nom, définissez le nom de votre service en fonction de vos conventions de nommage. Je rappelle qu’il est important de mettre en place dès le début une convention de nommage pour s’y retrouver au bout de quelques années de supervision.
- 2 : Modèle, sélectionner dans la liste Generic-Service qui appliquera tous les paramètres communs à vos scripts.
- 3 : Commande de vérification, sélectionner votre script de vérification, créer plus haut.
Création d’un modèle d’hôte.
Maintenant nous devons créer un modèle d’hôte, qui regroupera tous les services à superviser pour ces hôtes. J’ai créé un modèle d’hôte par type d’équipement. Par exemple un modèle pour les switchs Cisco, pour les NAS-QNAP, pour les onduleurs, …
- 1 : Nom et Alias, définissez un nom pour le modèle d’hôte. Ce modèle permettra d’appliquer tous les services à superviser pour une catégorie d’hôte bien particulière, ici les NAS-QNAP.
- 2 : Modèles, sélectionner le modèle Generic-Host, qui contient toutes les informations communes aux hôtes notamment concernant les options d’ordonnancement et les notifications.
- 3 : Arguments, c’est ici que l’on paramètrera les options des plugins. Il faudra saisir les saisir et rentrer des valeurs.
- 1 : Sélectionner les services qui devront être utilisés sur cet hôte (c’est ici que l’on sélectionne les éléments à monitorer pour un hôte
- 2 : Catégorie d’hôtes parents, je vous conseille grandement de créer des catégories pour vos hôtes afin de les regrouper par ensemble. Lorsque vous aurez des centaines d’hôtes à gérer, il suffira de sélectionner une catégorie pour appliquer un modèle d’hôte et tous les hôtes seront mis à jour en quelques secondes. Imaginer que vous devez rajouter un service à superviser sur vos switchs Cisco par exemple le NTP. Il suffira de sélectionner la catégorie switch Cisco et d’appliquer le modèle et vos 300 switchs auront le nouveau service NTP de monitorer.
Création d’un Hôte.
Dans Centreon, l’hôte est l’élément de base. Sa création est très simple.
Allez dans Configuration -> Hôtes -> Ajouter
- 1 : Nom et alias, ici vous devez saisir le nom de l’hôte selon votre convention de nommage, puis dans Alias généralement je précise le lieu. Je trouve cela assez pratique pour retrouver rapidement des éléments.
- 2 : Adresse IP/DNS, vous pouvez saisir soit l’adresse IP de l’hôte soit son nom. Si vous ne connaissez pas son nom, cliquer sur résoudre. S’il est déclaré dans votre DNS, Centreon affichera son nom.
- 3 : Surveillé depuis le collecteur, par défaut c’est le Central. Mais dans une architecture distribuée cela peut-être un collecteur spécifique.
- 4 : Modèle, choisissez Generic-Host pour toutes les options communes de l’hôte notamment les options d’ordonnancement et les notifications.
- 1 : Groupes d’hôtes parents, sélectionner les groupes d’hôtes dont votre hôte dépend. Je vous conseille de le faire car cela sera plus facile pour retrouver, trier vos hôtes. Cela peut aussi être pratique pour afficher les graphiques.
- 2 : Catégorie d’hôtes parents, idem que ci-dessus.
- 3 : Hôtes parents, cela peut être pratique en réseau notamment. Lorsqu’un switch dépend d’un autre, d’indiquer qui est le père. Cela peut paraître anodin. Imaginer un switch de pied de bâtiment sur lequel est relier 30 switchs d’extrémités, si le pied de bâtiment tombe Centreon affichera alors 30 alertes, alors que si le parent est renseigné pour tous les switchs d’extrémités Centreon ne générera qu’une seule alerte pour le switch de pied de bâtiment. Cette astuce facilite grandement la lecture de vos alertes en cas de grosse panne pour identifier immédiatement l’élément en cause.
Appliquer un modèle à un groupe d’hôte.
Maintenant que vous avez défini tous vos modèles, hôtes, services, … il est temps d’appliquer un modèle à vos groupes d’hôtes.
Aller dans Configuration -> Hôtes -> Sélectionner un groupe d’hôtes pour appliquer votre modèle.
Cela affichera tous les hôtes du groupe NAS-QNAP que vous avez créé. Puis sélectionner ceux qui doivent avoir le modèle NAS-QNAP.
Ensuite dans la liste Plus d’actions, sélectionner Changement massif.
- 1 : Modèles, sélectionner le modèle à appliquer à vos hôtes sélectionnés. Ici se sera NAS-QNAP.
- 2 : Créer aussi les services liés aux modèles, sélectionner Oui.
- 3 : Cliquer sur Sauvegarder pour appliquer les modifications.
Pour que Centreon prenne en compte les modifications, il faut aller dans Collecteurs -> Configurer les collecteurs -> Exporter la configuration.
- 1 : Cocher toutes les cases sauf Commande exécutés post-generation.
- 2 : Méthode, sélectionner Recharger et cliquer sur Exporter.
Explications :
Au sein de la page de génération de la configuration, plusieurs options sont disponibles :
- Générer les fichiers de configuration : Génère les fichiers de configuration de l’ordonnanceur dans un répertoire temporaire. Cette configuration est générée à partir des objets configurés via l’interface web.
- Lancer le déboggage du moteur de supervision (-v) : Permet à l’ordonnanceur de vérifier la configuration générée.
- Déplacer les fichiers générés : Déplace les fichiers de configuration du répertoire temporaire vers le répertoire de l’ordonnanceur.
- Redémarrer l’ordonnanceur : Redémarre l’ordonnanceur afin d’appliquer les nouveaux fichiers de configuration.
- Commande exécutée post-génération : Exécute la commande post-génération paramétrée au niveau de la configuration de l’ordonnanceur
Si tout reste en vert, vous avez gagné. Sinon traiter les erreurs. Par moment des warning peuvent apparaitre mais cela n’empêche pas de générer la configuration.
Vérifications.
Afin de s’assurer que votre hôte est bien supervisé, il faut aller dans Supervision -> Détails des statuts -> Hôtes. Vous devriez voir apparaitre votre hôte avec le statut UP.
Puis aller dans Supervision -> Détails des statuts -> Services -> Statut du service (sélectionner Tous)
La liste des services monitorés pour cet hôte doivent apparaitre. Il peut être utile de patienter un peu si vous gérer beaucoup d’hôtes où de services dans votre infrastructure avant de les voir apparaitre.
Conclusion.
Vous avez fait le plus dur. Mais si cette étape peut paraitre insurmontable vous avez de bonnes bases pour ajouter des services et des hôtes grâce aux modèles et créer une sonde dans Centreon. Il suffit juste maintenant de dupliquer les hôtes, modèles pour les modifier rapidement et les appliquer à vos matériels.
That’s All.