Vous êtes ici:

Menu


Stacks Image 8983
Centreon-Clapi fait partie intégrante de Centreon-Web depuis la version 2.7. Cet outil nous permettra de réaliser notre configuration en ligne de commande plus rapidement qu'avec l'interface Web. Néanmoins, la configuration en ligne de commande nécessite quelques compétences dans les commandes Linux.
Je vous propose de découvrir l’utilisation de cet outil, un paramétrage pour améliorer son utilisation en ligne de commande et la possibilité d'exporter les macros personnalisées.

1 Utilisation de Centreon-Clapi

Pour utiliser Centreon-Clapi, nous aurons besoin d'une session en ligne de commande. Pour les versions de Centreon-Web inférieures à 2.7.0, toutes les commandes devront être réalisées dans l'environnement de Centreon-Clapi à savoir le dossier /usr/local/centreon/www/modules/centreon-clapi/core. L'exécutable se nomme centreon et sa syntaxe est la suivante :
centreon -u UTILISATEUR CENTREON -p MOT DE PASSE -o OBJET SUPERVISEUR -a ACTION [-v] PARAMETRES
Description des paramètres
-u : c'est un utilisateur de l'interface Centreon, il doit avoir les droits nécessaires pour les actions demandés
-p : le mot de passe associé à l"utilisateur Centreon
-o : C'est le type d'objet du superviseur associé à l'action. Cela peut-être un poller, un hôte, un service, un modèle de service, etc.
-a : C'est le type d'action (ajout, suppression, modification, etc)
-v : C'est une chaîne pouvant comporter plusieurs paramètres en fonction de l'action ou le type d'objet.

Vous trouverez sur cette page, la liste des actions correspondantes aux objets de Centreon. La documentation se trouve sur le wiki de la forge de Centreon
Afin de rendre accessible la commande centreon sans devoir mettre le chemin complet, nous ajoutons celui dans la variable d'environnement PATH. Rajoutons les deux lignes dans le fichier caché .profile pour une distribution Debian.

2 Utilisez Clapi plus facilement

2.1 Centreon-Web => 2.7.0

L’intégration de Centreon-clapi dans Centreon-Web simplifie l’utilisation de cette commande.

2.1.a CES

L’intégration est automatique. La commande centreon est accessible de n’importe quel chemin.

2.1.b Debian

Pour obtenir la même chose avec Debian, il suffira de créer un lien symbolique comme ci-dessous :
ln -s /usr/share/centreon/bin/centreon /usr/bin/centreon
chown -h centreon: /usr/bin/centreon
Adaptez le chemin de centreon en fonction de votre installation.

2.2 Centreon-Web < 2.7.0

2.2.a Debian

Rajoutons les deux lignes dans le fichier caché .profile
PATH="$PATH:/usr/local/centreon/www/modules/centreon-clapi/core"
export PATH
Cette modification sera prise en compte à la prochaine ouverture de session. Vous aurez la possibilité de lancer la commande centreon de n'importe quelle emplacement dans le système de fichiers. Exemple :
root@debian7:~# centreon -u admin -p password -a pollerlist
1 Central
Return code end : 0

2.2.b CES - CentOS

Modifions la ligne dans le fichier caché .bash_profile. Le chemin ci-dessous est valable pour une distribution CES, pour une distribution CentOS réalisée par vous-même, indiquez le chemin d’installation de votre installation.
PATH=$PATH:$HOME/bin:/usr/share/centreon/www/modules/centreon-clapi/core
Cette modification sera prise en compte à la prochaine ouverture de session. Vous aurez la possibilité de lancer la commande centreon de n'importe quelle emplacement dans le système de fichiers. Exemple :
root@debian7:~# centreon -u admin -p password -a pollerlist
1 Central
Return code end : 0

2.2.c Ubuntu

Comme nous n’avons pas accès directement à l’utilisateur root, il faut utiliser une autre solution. Modifiez visudo pour faire accepter le chemin de l’extension Centreon-Clapi. Rajoutez la ligne suivante en utilisant la commande sudo visudo.
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/centreon/www/modules/centreon-clapi/core"
Cette modification sera prise en compte à la prochaine ouverture de session. Vous aurez la possibilité de lancer la commande centreon de n'importe quelle emplacement dans le système de fichiers avec sudo. Exemple :
vagrant@ubuntu:~$ sudo centreon -u admin -p password -a pollerlist
1 Central
Return code end : 0

2.3 Utilisation d’un alias

Pour rendre encore plus aisé la saisie de la commande centreon, nous allons créer un alias personnalisé nommé clapi comprenant le nom d'utilisateur et le mot de passe. Nous saisirons seulement les options -o, -a et -v éventuelles.

2.3.a Debian

Modifions le fichier caché .bashrc et rajoutons la ligne suivante. Vous adapterez en fonction du nom et mot de passe de connexion.
alias clapi='centreon -u admin -p password'

2.3.b CES - CentOS

Modifions le fichier caché .bashrc et rajoutons la ligne suivante. Vous adapterez en fonction du nom et mot de passe de connexion.
alias clapi='centreon -u admin -p password'

2.2.c Ubuntu

Modifions le fichier caché .bashrc et rajoutons la ligne suivante. Vous adapterez en fonction du nom et mot de passe de connexion.
alias clapi='sudo centreon -u admin -p password'
Maintenant, il suffit de saisir les commandes clapi comme ceci.
clapi -o OBJET SUPERVISEUR -a ACTION [-v] PARAMETRES
Exemple :
clapi -o host -a show
id;name;alias;address;activate
62;supervision;serveur supervision;127.0.0.1;1
63;LVS Backup;serveur LVS;172.16.209.230;1
64;weblamp;serveur Web;172.16.209.51;1
Stacks Image 39027
Centreon-Clapi version 1.7.1 avec PHP 5.4x
L’utilisation de Clapi avec PHP 5.4x génère de nombreux messages d’alerte comme ci-dessous :
PHP Deprecated:  Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in /usr/share/centreon/www/class/centreonDB.class.php on line 242
PHP Deprecated: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in /usr/share/centreon/www/class/centreonDB.class.php on line 242
PHP Deprecated: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in /usr/share/centreon/www/class/centreonDB.class.php on line 305
PHP Strict Standards: Only variables should be assigned by reference in /usr/share/centreon/www/modules/centreon-clapi/core/class/centreonAPI.class.php on line 226
. . . .

Pour supprimer ces messages non-bloquants pour le fonctionnement de Clapi, modifiez la ligne suivante du fichier centreon se trouvant dans <BASE CENTREON>/www/modules/centreon-clapi/core/
error_reporting(E_ALL ^ E_NOTICE);

par celle-ci
error_reporting(E_ALL & ~(E_STRICT|E_NOTICE|E_DEPRECATED));
Stacks Image 46350
Centreon-Clapi version 1.8.0 avec Debian Wheezy
Après une mise à jour de votre système, vous pouvez avoir ce message d’erreur :
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/suhosin.so' - /usr/lib/php5/20100525+lfs/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0

Pour supprimer ce message non-bloquant pour le fonctionnement de Clapi, lancez la commande suivante :
dpkg -P php5-suhosin

3 Exportez votre configuration

Centreon-Clapi permet la sauvegarde de la configuration de votre infrastructure de supervision. Nous utiliserons la commande clapi ci-dessus.
clapi -e
La commande renvoie toute la configuration sur la sortie standard et pour sauvegarder celle-ci, redirigez les informations dans un fichier texte comme ceci.
clapi -e > /temp/sauvegarde.txt

3.1 Améliorez l'exportation

Comme vous pouvez le constater dans le fichier d'export, centreon-clapi n'exporte pas la configuration des macros personnalisés. Nous allons y remédier avec un petit script bash. Pour ce premier script, nous allons nous focaliser sur l'objet RESOURCECFG. Voici le script export_clapi.sh à rajouter dans votre serveur de supervision.
#!/bin/bash
# export_clapi.sh
# add RESOURCECFG and MACRO for export CLAPI
# version 1.00
# Eric Coquard
  
# Parameter
CLAPI_DIR=/usr/local/centreon/www/modules/centreon-clapi/core
USER_CENTREON=admin
PWD_CENTREON=password
STATE_OK=0
STATE_EXIST=1

###################################################################
#
#   create file export
#
##################################################################
# 
echo "{OBJECT_TYPE};{COMMAND};{PARAMETERS} add by Eric Coquard" > $1

# 
###################################################################
#
#   Export ResourceCFG
#
##################################################################
# 
#   browse ResourceCFG
#
$CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o RESOURCECFG -a show -v |
while read line
do
  ID_NAME=`echo $line | cut -d";" -f2 `
  ID_VALUE=`echo $line | cut -d";" -f3 `
  ID_COMMENT=`echo $line | cut -d";" -f4 `
  ID_ACTIVATE=`echo $line | cut -d";" -f5 `
  ID_INSTANCE=`echo $line | cut -d";" -f6 `
  if [ "$ID_NAME" != "name" ]
  then
     echo "RESOURCECFG;ADD;$ID_NAME;$ID_VALUE;$ID_INSTANCE;$ID_COMMENT" >> $1
     echo "RESOURCECFG;setparam;$ID_NAME;activate;$ID_ACTIVATE" >> $1
  fi

done

###################################################################
#
#   Export Config by Clapi
#
##################################################################
# 
$CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -e >> $1
N'oubliez pas de le rendre exécutable.
chmod +x export_clapi.sh
La syntaxe sera la suivante :
./export_clapi.sh fichier_sauvegarde.txt
Le script lit les informations de l'objet RESOURCECFG et rajoute les informations suivantes :
{OBJECT_TYPE};{COMMAND};{PARAMETERS} add by Eric Coquard
RESOURCECFG;ADD;$USER1$;/usr/local/plugins/libexec;Central|poller1;path to the plugins
RESOURCECFG;setparam;$USER1$;activate;1
RESOURCECFG;ADD;$_HOSTSNMPVERSION$;2c;Central|poller1;Custom Macro
RESOURCECFG;setparam;$_HOSTSNMPVERSION$;activate;0
RESOURCECFG;ADD;$_HOSTSNMPCOMMUNITY$;public;Central|poller1;Custom Macro
RESOURCECFG;setparam;$_HOSTSNMPCOMMUNITY$;activate;0
RESOURCECFG;ADD;$_SERVICEWARNING$;0;Central|poller1;Custom Macro
RESOURCECFG;setparam;$_SERVICEWARNING$;activate;0
RESOURCECFG;ADD;$_SERVICECRITICAL$;0;Central|poller1;Custom Macro
RESOURCECFG;setparam;$_SERVICECRITICAL$;activate;0
RESOURCECFG;ADD;$_SERVICESPEED$;0;Central|poller1;Custom Macro
RESOURCECFG;setparam;$_SERVICESPEED$;activate;0
RESOURCECFG;ADD;$_SERVICEPACKETNUMBER$;0;Central|poller1;Custom Macro
RESOURCECFG;setparam;$_SERVICEPACKETNUMBER$;activate;0
...........
Nous verrons bientôt comment exploiter ses données mais auparavant intéressons-nous aux macros des objets HOST, SERVICE, HTPL et STPL. Nous utiliserons l'action GETMACRO pour récupérer les macros personnalisées. Voici le script export_clapi2.sh complet.
Stacks Image 16788
Centreon-Clapi version 1.6.1
La fonction export de la version 1.6.1 exporte les macros pour les objets HOST, HTPL et SERVICE, adaptez donc le script en fonction de vos besoins. L'export de l'objet HTPL inclus même le paramètre password.
#!/bin/bash
# export_clapi2.sh
# add RESOURCECFG and MACRO for export CLAPI
# version 1.00
# Eric Coquard
  
# Parameter
CLAPI_DIR=/usr/local/centreon/www/modules/centreon-clapi/core
USER_CENTREON=admin
PWD_CENTREON=password
STATE_OK=0
STATE_EXIST=1

###################################################################
#
#   create file export
#
##################################################################
# 
echo "{OBJECT_TYPE};{COMMAND};{PARAMETERS} add by Eric Coquard" > $1

# 
###################################################################
#
#   Export ResourceCFG
#
##################################################################
# 
#   browse ResourceCFG
#
$CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o RESOURCECFG -a show -v |
while read line
do
  ID_NAME=`echo $line | cut -d";" -f2 `
  ID_VALUE=`echo $line | cut -d";" -f3 `
  ID_COMMENT=`echo $line | cut -d";" -f4 `
  ID_ACTIVATE=`echo $line | cut -d";" -f5 `
  ID_INSTANCE=`echo $line | cut -d";" -f6 `
  if [ "$ID_NAME" != "name" ]
  then
     echo "RESOURCECFG;ADD;$ID_NAME;$ID_VALUE;$ID_INSTANCE;$ID_COMMENT" >> $1
     echo "RESOURCECFG;setparam;$ID_NAME;activate;$ID_ACTIVATE" >> $1
  fi

done

# 
###################################################################
#
#   Export MACRO STPL
#
##################################################################
# 
#   browse STPL
#
$CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o STPL -a show -v |
while read line
do
  ID_NAME=`echo $line | cut -d";" -f2 `
  if [ "$ID_NAME" != "description" ]
  then
     $CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o STPL -a getmacro -v "$ID_NAME" |
     while read line_macro
     do
       MACRO_NAME=`echo $line_macro | cut -d";" -f1 `
       MACRO_VALUE=`echo $line_macro | cut -d";" -f2 `
       if [ "$MACRO_NAME" != "macro name" ]
       then
          echo "STPL;setmacro;$ID_NAME;${MACRO_NAME:9:$((${#MACRO_NAME}-10))};$MACRO_VALUE" >> $1
       fi
     done
  fi

done

# 
###################################################################
#
#   Export MACRO HTPL
#
##################################################################
# 
#   browse HTPL
#
$CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o HTPL -a show -v |
while read line
do
  ID_NAME=`echo $line | cut -d";" -f2 `
  if [ "$ID_NAME" != "name" ]
  then
     $CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o HTPL -a getmacro -v "$ID_NAME" |
     while read line_macro
     do
       MACRO_NAME=`echo $line_macro | cut -d";" -f1 `
       MACRO_VALUE=`echo $line_macro | cut -d";" -f2 `
       if [ "$MACRO_NAME" != "macro name" ]
       then
          echo "HTPL;setmacro;$ID_NAME;${MACRO_NAME:6:$((${#MACRO_NAME}-7))};$MACRO_VALUE" >> $1
       fi
     done
  fi

done

# 
###################################################################
#
#   Export MACRO Services
#
##################################################################
# 
#   browse Services
#
$CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o SERVICE -a show -v |
while read line
do
  ID_HOST=`echo $line | cut -d";" -f2 `
  ID_SERVICE=`echo $line | cut -d";" -f4 `
  if [ "$ID_HOST" != "host name" ]
  then
     $CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o SERVICE -a getmacro -v "$ID_HOST;$ID_SERVICE" |
     while read line_macro
     do
       MACRO_NAME=`echo $line_macro | cut -d";" -f1 `
       MACRO_VALUE=`echo $line_macro | cut -d";" -f2 `
       if [ "$MACRO_NAME" != "macro name" ]
       then
          echo "SERVICE;setmacro;$ID_HOST;$ID_SERVICE;${MACRO_NAME:9:$((${#MACRO_NAME}-10))};$MACRO_VALUE" >> $1
       fi
     done
  fi

done

# 
###################################################################
#
#   Export MACRO Hosts
#
##################################################################
# 
#   browse Hosts
#
$CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o HOST -a show -v |
while read line
do
  ID_NAME=`echo $line | cut -d";" -f2 `
  if [ "$ID_NAME" != "name" ]
  then
     $CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -o HOST -a getmacro -v "$ID_NAME" |
     while read line_macro
     do
       MACRO_NAME=`echo $line_macro | cut -d";" -f1 `
       MACRO_VALUE=`echo $line_macro | cut -d";" -f2 `
       if [ "$MACRO_NAME" != "macro name" ]
       then
          echo "HOST;setmacro;$ID_NAME;${MACRO_NAME:6:$((${#MACRO_NAME}-7))};$MACRO_VALUE" >> $1
       fi
     done
  fi

done


###################################################################
#
#   Export Config by Clapi
#
##################################################################
# 
$CLAPI_DIR/centreon -u $USER_CENTREON -p $PWD_CENTREON -e >> $1
Vous retrouvez vos macros comme l'exemple ci-dessous. Attention, si vous avez une grosse configuration, cela peut prendre du temps.
........
STPL;setmacro;Ping-Model-Service;PACKETNUMBER;4
STPL;setmacro;Ping-Lan-Model-Service;WARNING;200,20%
STPL;setmacro;Ping-Lan-Model-Service;CRITICAL;400,50%
STPL;setmacro;Ping-Wan-Model-Service;WARNING;400,20%
..........
HTPL;setmacro;generic-host;ESSAI;essai de macro
.......
SERVICE;setmacro;weblamp;Disk-local-Home;CRITICAL;20
........
HOST;setmacro;supervision;ESSAI;essai de macro
........
Nous verrons dans un prochain article comment récupérer ses informations dans une configuration.
comments powered by Disqus
 Vous êtes ici: