Centreon CLAPI : Command Line API

 

Centreon est une interface web de supervision. Une partie de l’interface web est dédiée à la supervision : voir les status des équipements supervisés, diagnostiquer plus finement un problème en analysant les graphiques, disposer d’un reporting basique de la supervision, … Une autre partie de l’interface web de Centreon est dédiée à la saisie des éléments à superviser : ajouter un équipement à superviser, déclarer un processus système à superviser, mettre en place la supervision du CPU ou de la mémoire d’un équipement, … Cette saisie se fait au travers de formulaire: un formulaire permet de saisir tous les champs nécessaires à Centreon pour superviser efficacement l’élément. Les fonctionnalités du moteur de supervision étant nombreuses (principes d’ordonnancement, de notification, groupes, contacts, …) les formulaires sont conséquents. Ils reposent sur plusieurs onglets avec de nombreux champs à saisir. La très large majorité des utilisateurs de Centreon utilise principalement 2 onglets sur les 4 disponibles. Même si les modèles/templates de supervision permettent de simplifier et d’accélérer la saisie des champs des onglets, on est très loin de l’automatisation. Par exemple, comment saisir rapidement 300 hôtes? En utilisant l’interface web, c’est très fastidieux. Surtout, cette étape est source de très nombreuses erreurs.

Heureusement, Centreon CLAPI (« Centreon Command Line API » ou « CLAPI » pour les intimes) permet d’automatiser la saisie des éléments grâce… à la ligne de commande. La bonne vieille ligne de commande qui gagnera toujours lors de la saisie de nombreuses informations redondantes. Nous allons voir dans cet article quelques fonctionnalités bien pratiques de CLAPI.

Installation sur Centreon Enterprise Server

Je pars du principe que vous avez installé Centreon Enterprise Server (« CES« ). Si ce n’est pas le cas, télécharger CES sur le site officiel de Centreon et installer la. CES, pour rappel, est une distribution Linux dédiée à Centreon : elle permet d’installer rapidement et simplement Centreon et tous les logiciels associés. Si vous avez installé CES, alors… CLAPI est déjà installé. C’est magique non? Si tel n’était pas le cas:root@ces # rpm -qa centreon-clapi
root@ces # yum update
root@ces # yum install centreon-clapi

Vérifications de base

Quelques vérifications pour s’assurer que tout fonctionne:

root@ces # ls -l /usr/share/centreon/www/modules/centreon-clapi/core/centreon
-rwxr-xr-x 1 root root 3971 jui  8 14:33 /usr/share/centreon/www/modules/centreon-clapi/core/centreon
root@ces # /usr/share/centreon/www/modules/centreon-clapi/core/centreon -u admin -p centreon -a POLLERLIST
1       Central
L’interpréteur de commande de CLAPI est le fichier « /usr/share/centreon/www/modules/centreon-clapi/core/centreon ». Celui-ci doit être exécutable pour pouvoir envoyer les commandes à Centreon. La seconde commande a permis de vérifier qu’il y avait bien au moins un poller.

Description du cas « théorique« 

Prenons un cas théorique pour expliciter l’utilisation de CLAPI. Ce cas est en réalité très pratique car c’est le cas que l’on retrouve dans de nombreux projets de supervision. Lorsqu’un projet de supervision est de taille importante, que le nombre de ressources à superviser dépasse 100, il est nécessaire d’industrialiser la configuration de la supervision. Pour cela, on réalise les actions suivantes:

  1. identification des équipements « types » : les équipements qui sont présents de nombreuses fois (exemple : « serveur Windows », « serveur Linux », « switch Cisco », …)
  2. création des modèles/templates pour superviser parfaitement ces équipements
  3. test sur un environnement restreint (3 à 4 équipements de chaque type)
  4. déploiement.

Les 3 premières étapes doivent être réalisées dans l’interface de supervision. La dernière peut être faite en ligne de commande, grâce à CLAPI. Donc, lorsqu’on utilise CLAPI, les modèles sont déjà définis et « parfaits » : il n’est plus nécessaire de revenir dessus, de les corriger. Nous allons voir maintenant comment bien se servir de CLAPI.

Utilisation de CLAPI pour le déploiement

Tout d’abord, il faut se créer un fichier sous LibreOffice Calc. Ce fichier va contenir tous les équipements à déclarer. Ensuite, un export CSV sera réalisé grâce à LibreOffice pour pouvoir le passer à un script. Ce script aura pour but de lire toutes les lignes du fichier CSV et de réaliser les appels à CLAPI pour ajouter les équipements dans la base Centreon.

Exemple de fichier LibreOffice:

Host name host adress Poller hostgroups Templates
Linux1 192.168.0.1 Central Linux Linux,Apache
Linux2 192.168.0.2 Central Linux,MySQL Linux,MySQL
Linux3 192.168.0.3 Central Linux,MySQL Linux,Apache,MySQL

L’algorithmie du script est donc:

  •  pour chaque ligne CSV (sauf la première, correspondant généralement au titre)
    • Découper la ligne selon le caractère de séparation (le caractère ‘;’ dans l’exemple ci-dessus)
    • le nom de l’hôte est la première colonne
    • l’adresse de l’hôte est la deuxième colonne
    • le poller est dans la troisième colonne
    • les hostgroups sont tous dans la quatrième colonne
    • les templates d’hôte sont tous dans la cinquième colonne
    • ajouter l’hôte grâce à la commande CLAPI
  • Lister tous les pollers
  • Pour chaque poller
    • Lancer la génération des fichiers de configuration
    • Lancer le test de vérification des fichiers de configuration
    • Redémarrer le poller

C’est donc très simple et très rapide à développer.

Les commandes CLAPI

Les commandes CLAPI permettant de lancer les actions ci-dessus sont notées dans la documentation officielle de Centreon CLAPI. Je les résume ici pour faciliter la lecture de l’article.

Globalement, pour la suite de l’article :

  1. l’utilisateur s’est placé dans le répertoire « /usr/share/centreon/www/modules/centreon-clapi/core »
  2. le compte utilisateur « admin » (paramètre de l’option -u) est un compte administrateur de Centreon et il a pour mot de passe (paramètre de l’option -p) « centreon »
  3. une action est faite après l’option « -a »
  4. les arguments passés à l’action sont fournis par l’option « -v »
  5. une action est faite sur le type d’objet passé en argument à l’option « -o »

Traitement des pollers

Lister les pollers avec leur identifiant :

root@ces # ./centreon -u admin -p centreon -a POLLERLIST
1       Central

Générer la configuration d’un poller, en passant l’identifiant du poller (1 pour le poller Central) :

root@ces # ./centreon -u admin -p centreon -a POLLERGENERATE -v 1
Configuration files generated for poller 1
Return code end : 0

Tester la configuration d’un poller, en passant l’identifiant du poller :

root@ces # ./centreon -u admin -p centreon -a POLLERTEST -v 1
OK: Nagios Poller 1 can restart without problem...
Return code end : 0

Redémarrer un poller, en passant l’identifiant du poller :

root@ces # ./centreon -u admin -p centreon -a POLLERRESTART -v 1
Starting nagios: done.Return code end : 0

Ajouter un hôte

root@ces # ./centreon -u admin -p centreon -o HOST -a ADD -v "Linux1;Linux1;192.168.0.1;Linux,Apache;central;Linux" Les paramètres sont:

  • le nom de l’hôte
  • l’alias de l’hôte (remarque : je définis l’alias de l’hôte comme identique à son nom pour éviter d’alourdir le propos. Dans les faits, il est préférable de mettre un alias différent et significatif)
  • son adresse IP
  • la liste des modèles d’hôtes dont il hérite. Les membres de cette liste sont séparés par des virgules.
  • le nom du poller sur lequel il doit être attaché (le nom du poller, non son identifiant)
  • la liste des groupes d’hôtes dont il fera parti. Les membres de cette liste sont séparés par des virgules.

 

Conclusion

Centreon CLAPI permet d’accélérer grandement le déploiement. Grâce à une bonne méthode d’implémentation des modèles d’hôtes, un fichier LibreOffice Calc bien écrit et un peu de scripting, on peut accélérer grandement l’étape de déploiement. Je vous invite à voir toutes les autres commandes dans documentation officielle de Centreon CLAPI.

 

6 réflexions au sujet de « Centreon CLAPI : Command Line API »

  1. Bonjour,

    Il me semble que vous avez oublié une des commandes nécessaires au bon fonctionnement de CLAPI pour la gestion des commandes:

    root@ces # ./centreon -u admin -p centreon -a CFGMOVE -v 1

    Qui permet d’exporter les fichiers de configuration avant le restart du poller.

    Bonne journée.

  2. Bonjour,

    je viens de créer mon fichier csv. Il est formaté comme il se doit et s’intègre parfaitement lorsque je fais un import csv depuis l’interface prévus à cet effet.

    Je souhaiterais maintenant automatiser complètement les traitement. Et je voulais savoir si dans CLAPI il était possible d’ajouter en entré le fichier csv avec ligne du genre:
    ./centreon -u admin -p centreon -o HOST -a ADD -v > import_centreon.csv

    Est il possible de réaliser ce genre de commande ?

Laisser un commentaire

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