Importer votre configuration avec un fichier CSV

Création du fichier CSV
En premier lieu, remplir le CSV sous cette forme
<nom d'hôte>;<désignation de l'hôte>;<IP hôte>;<Templates d'hôte séparés par |>;<Instance>;<hostgroup>;<macro1>;<valeur1>;<macro2>;<valeur2>;<macro3>;<valeur3>
Certaines valeurs sont optionnelles comme le hostgroup et les macros. Voici un exemple de fichier CSV
test1;server test1;172.16.209.5;generic-active-host-custom|OS-Linux-SNMP-custom;Central;linux
test2;server test2;172.16.209.6;generic-active-host-custom|OS-Linux-SNMP-custom|App-DB-MySQL-custom;Central;linux;MYSQLPASSWORD;centreon;MYSQLPORT;3306;MYSQLUSERNAME;centreon
test3;server test3;172.16.209.7;generic-active-host-custom;poller1;linux
Vous remarquerez que nous ne sommes pas obligés de remplir tous les champs macros si nous ne les utilisons pas.
Script d'importation
Voici un script très simple pour importer vos hôtes avec l'API Clapi.
#!/bin/bash
CLAPI=/usr/share/centreon/bin/centreon
INPUT=/root/import.csv
USER=admin
PASS=password
OLDIFS=$IFS
IFS=$';'
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read host lblhost ip template instance hostgroup macro1 valeur1 macro2 valeur2 macro3 valeur3
do
#echo $host
$CLAPI -u $USER -p $PASS -o HOST -a ADD -v "$host;$lblhost;$ip;$template;$instance;$hostgroup"
if [[ ! -z "$macro1" ]]
then
$CLAPI -u $USER -p $PASS -o HOST -a SETMACRO -v "$host;$macro1;$valeur1"
fi
if [[ ! -z "$macro2" ]]
then
$CLAPI -u $USER -p $PASS -o HOST -a SETMACRO -v "$host;$macro2;$valeur2"
fi
if [[ ! -z "$macro3" ]]
then
$CLAPI -u $USER -p $PASS -o HOST -a SETMACRO -v "$host;$macro3;$valeur3"
fi
$CLAPI -u $USER -p $PASS -o HOST -a APPLYTPL -v "$host"
done < $INPUT
IFS=$OLDIFS
On vérifie la validité des valeurs de macro pour éviter des erreurs de commande. Je me suis limité à trois macros mais on peut facilement en rajouter. La dernière commande CLAPI (APPLYTPL) permet d'ajouter les services associés aux templates d'hôtes.
Vérification de la configuration
Après l'importation, nous constaterons l'ajout de nos hôtes dans la configuration.

Les macros personnalisées sont aussi ajoutées

Variantes avec l'utilisation des macros SNMP host_snmp_community et host_snmp_version
Un lecteur m'a fait la remarque qu'il serait judicieux d'ajouter les paramètres SNMP pour chaque hôte nouvellement créé. Ces deux macros se gèrent avec la commande clapi SETPARAM. Il faut donc trouver une autre solution pour le fichier CSV. Voici donc ma solution, il y en a certainement d'autres, je rajoute les valeurs community et valeur avant l'ajout des macros supplémentaires. Ces deux paramètres sont optionnels s'il n'y a pas de macros additionnelles sinon il ne faudra pas oublier de les insérer même si les valeurs sont nulles (ajout de points-virgules seul).
Création du nouveau fichier CSV
Remplir le CSV sous cette forme
<nom d'hôte>;<désignation de l'hôte>;<IP hôte>;<Templates d'hôte séparés par |>;<Instance>;<hostgroup>;<SNMP Community>;<SNMP Version>;<macro1>;<valeur1>;<macro2>;<valeur2>;<macro3>;<valeur3>
Certaines valeurs sont optionnelles comme le hostgroup et les macros. Voici un exemple de fichier CSV
test1;server test1;172.16.209.5;generic-active-host-custom|OS-Linux-SNMP-custom;Central;linux;
test2;server test2;172.16.209.6;generic-active-host-custom|OS-Linux-SNMP-custom|App-DB-MySQL-custom;Central;linux;public;2c;MYSQLPASSWORD;centreon;MYSQLPORT;3306;MYSQLUSERNAME;centreon
test3;server test3;172.16.209.7;generic-active-host-custom;poller1;linux;public;1
Nouveau script d'importation
Voici la modification du script.
#!/bin/bash
CLAPI=/usr/share/centreon/bin/centreon
INPUT=/root/import.csv
OLDIFS=$IFS
IFS=$';'
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read host lblhost ip template instance hostgroup community version macro1 valeur1 macro2 valeur2 macro3 valeur3
do
# add host
$CLAPI -u admin -p password -o HOST -a ADD -v "$host;$lblhost;$ip;$template;$instance;$hostgroup"
# add community and version SNMP if not empty
if [[ ! -z "$community" ]]
then
$CLAPI -u admin -p password -o HOST -a SETPARAM -v "$host;host_snmp_community;$community"
fi
if [[ ! -z "$version" ]]
then
$CLAPI -u admin -p password -o HOST -a SETPARAM -v "$host;host_snmp_version;$version"
fi
# add macro if not empty
if [[ ! -z "$macro1" ]]
then
$CLAPI -u admin -p password -o HOST -a SETMACRO -v "$host;$macro1;$valeur1"
fi
if [[ ! -z "$macro2" ]]
then
$CLAPI -u admin -p password -o HOST -a SETMACRO -v "$host;$macro2;$valeur2"
fi
if [[ ! -z "$macro3" ]]
then
$CLAPI -u admin -p password -o HOST -a SETMACRO -v "$host;$macro3;$valeur3"
fi
#apply template
$CLAPI -u admin -p password -o HOST -a APPLYTPL -v "$host"
done < $INPUT
IFS=$OLDIFS
Deux nouveaux tests ont été rajoutés pour ajouter ou nom les macros host_snmp_community et host_snmp_version.
Il ne restera plus qu'a appliquer la configuration pour ajouter vos nouvelles machines.
Créons une nouvelle commande Clapi

Exemple pratique de Centreon-Clapi

Lire plus…
Les Downtimes avec CLAPI


Migrez vos FAN...
Aujourd'hui, nous allons procéder à une migration de FAN vers Centreon 3.4. Je préfère vous avertir tout de suite que mon exemple est un cas d'école et ne reflétera pas la réalité de votre supervision. J'aimerais vous donner simplement quelques pistes pour migrer votre supervision. L'article évoluera certainement en fonction de mon temps et de vos réflexions, s'il y en a bien sûr 😉.

Centreon élimine les traces de Nagios

Mise à jour Centreon-Web 2.7x vers 2.8
Cela ne pose pas de problème lors de la mise à jour 2.7x vers 2.8x sur votre serveur Central. Par contre, avec une architecture distribuée, après votre mise à jour sur le serveur Central, il ne faudra pas oublier de redémarrer votre service centcore.
service centcore restart
En effet, si vous ne faites pas cette opération après la mise à jour, vous ne pourrez plus mettre à jour vos pollers tant que vous n'aurez pas redémarré ce service ou le serveur Central. La génération des fichiers passent par le service centcore, il faudra donc réactualiser le chemin en redémarrant son processus.
Clapi version 2.8x
Autre changement logique, l'objet nagiosCFG n'existe plus dans Centreon-Clapi. L'export dans la version 2.7x :
NAGIOSCFG;ADD;Centreon Engine CFG 1;Central;Centreon Engine
NAGIOSCFG;setparam;Centreon Engine CFG 1;log_file;/var/log/centreon-engine/centengine.log
NAGIOSCFG;setparam;Centreon Engine CFG 1;cfg_dir;/etc/centreon-engine
NAGIOSCFG;setparam;Centreon Engine CFG 1;temp_file;/var/log/centreon-engine/centengine.tmp
NAGIOSCFG;setparam;Centreon Engine CFG 1;status_file;/var/log/centreon-engine/status.dat
NAGIOSCFG;setparam;Centreon Engine CFG 1;use_check_result_path;0
NAGIOSCFG;setparam;Centreon Engine CFG 1;nagios_user;centreon-engine
NAGIOSCFG;setparam;Centreon Engine CFG 1;nagios_group;centreon-engine
NAGIOSCFG;setparam;Centreon Engine CFG 1;enable_notifications;1
NAGIOSCFG;setparam;Centreon Engine CFG 1;execute_service_checks;1
NAGIOSCFG;setparam;Centreon Engine CFG 1;accept_passive_service_checks;1
NAGIOSCFG;setparam;Centreon Engine CFG 1;execute_host_checks;2
NAGIOSCFG;setparam;Centreon Engine CFG 1;accept_passive_host_checks;2
…
Il est remplacé par l'objet INSTANCE. L'export dans le version 2.8x :
INSTANCE;ADD;Central;127.0.0.1;22
INSTANCE;setparam;Central;localhost;1
INSTANCE;setparam;Central;is_default;0
INSTANCE;setparam;Central;ns_activate;1
INSTANCE;setparam;Central;ns_status;0
INSTANCE;setparam;Central;init_script;/etc/init.d/centengine
INSTANCE;setparam;Central;init_system;systemv
INSTANCE;setparam;Central;monitoring_engine;CENGINE
INSTANCE;setparam;Central;nagios_bin;/usr/sbin/centengine
INSTANCE;setparam;Central;nagiostats_bin;/usr/sbin/centenginestats
INSTANCE;setparam;Central;nagios_perfdata;/var/log/centreon-engine/service-perfdata
….
Et je terminerai pas une préconisation lors de vos mises à jour majeures d'infrastructure, les pollers doivent avoir la même version (Central et pollers distants). Bonne supervision !
Vérifiez vos commandes de services

Attention, c'est une première version, donc ce script est certainement perfectible. Rectification : protégez le nom de service avec des double-quotes si celui-ci comporte des espaces.

Nouveaux scripts pour centreon-clapi

J'ai rajouté deux scripts permettant de réaliser une première configuration avec une encapsulation de template comme dans mes exemples de configuration. Le premier, delete_config.sh, à utiliser avec parcimonie, permet le nettoyage de sa configuration : suppressions des hôtes, services, templates et commandes. voici son utilisation :
/usr/share/centreon/examples/clapi/delete_config.sh admin password
Le deuxième, create_conf.sh, utilisé conjointement avec le fichier de configuration example_central.conf, permet l'installation d'un exemple de configuration comme l'image ci-dessous. Voici la ligne de commande :
/usr/share/centreon/examples/clapi# /usr/share/centreon/examples/clapi/create_conf.sh admin password /usr/share/centreon/examples/clapi/example_central.conf

Exporter les macros avec Centreon-Clapi


Un lot de nouveautés pendant les vacances
Reposez-vous bien pendant vos vacances, car à votre retour, un lot de nouveautés vous attend. Tout d'abord la nouvelle version de Centreon-engine 1.4.4 avec son mode unique de rechargement à chaud, à tester de toute urgence ! Ne pas oublier de mettre à jour Centreon-clib et Centreon-connector. Ensuite Centreon-Clapi 1.6.0 qui assure enfin la compatibilité pour Centreon 2.5.x. Sans oublier les articles du blog de Centreon, toujours excellents et de bon conseil.J'en profite pour vous annoncer les mises à jour prochaines de mon livre ibooks "L'atelier de Kermith" sur iTunes et de mon livre au format epub "Le petit atelier de Kermith" sur Itunes et Google Play.
Une rentrée qui s'annonce bien
UP ! le temps de poster qu'une nouvelle version de Centreon 2.5.2 est mise en ligne ! Beaucoup de correction de bug et quelques améliorations, à suivre...
Création de macros personnalisées avec Clapi

Depuis que la nouvelle version 2.4 est arrivée, les commandes Clapi sont complètement opérationnelles. Nous allons pouvoir gérer pleinement nos macros personnalisées. Dans mes exemples de configuration, j'utilise ces fameuses macros personnalisées pour gérer mes templates. Pour la création, les commandes CLAPI fonctionnent sans problème, mais pour modifier une macro, il faut récupérer l'ID, le nom de la macro ne suffit pas. De plus il n'existe pas de commande pour réaliser cette opération.MAJ 11/04/2014 : Le précédent script avait un bug avec des noms de préfixe identique comme par exemple $_SERVICEMODE$ et $_SERVICEMODE_MYSQL$. Le script ne faisait pas la distinction entre ces deux chaines et donc ne désactivait pas la macro lots de l'exécution du script. Je vous propose cette version corrigée.. Lire plus…
Dépoussiérage d'articles

Et pour finir une astuce pour indiquer la bonne version de Centreon-Clapi 1.5.2
Mise à jour Centreon-Engine et Clapi
Décidemment, c'est la rentrée chez Centreon 

Pilotez Centreon en ligne de commande
Gestion des traps en architecture distribuée

Les mises à jour continuent !

Pour chercher un article, vous pouvez utiliser la page Orientation. Prochain article en préparation NSCA et Vagrant, bonne lecture

Création de macros personnalisées avec Clapi
Depuis que la nouvelle version 2.4 est arrivée, les commandes Clapi sont complètement opérationnelles. Nous allons pouvoir gérer pleinement nos macros personnalisées. Dans mes exemples de configuration, j'utilise ces fameuses macros personnalisées pour gérer mes templates. Pour la création, les commandes CLAPI fonctionnent sans problème, mais pour modifier une macro, il faut récupérer l'ID, le nom de la macro ne suffit pas. De plus il n'existe pas de commande pour réaliser cette opération.MAJ 11/04/2014 : Le précédent script avait un bug avec des noms de préfixe identique comme par exemple $_SERVICEMODE$ et $_SERVICEMODE_MYSQL$. Le script ne faisait pas la distinction entre ces deux chaines et donc ne désactivait pas la macro lots de l'exécution du script. Je vous propose cette version corrigée.. Lire plus…
Trouvez vos commandes check envoyées par Centreon-Engine
Lors de mes installations, je me suis confronté au manque d'interface pour rechercher un dysfonctionnement de mes plugins. En effet, l'interface de Centreon n'offre pas beaucoup de choix pour l'affichage des logs. Nagios, quant à lui, offre une interface efficace comme le montre l'image ci-dessous :
Nous allons voir que malgré une absence d'interface sur Centreon, le Broker de celui-ci nous offre beaucoup plus de renseignements. Lire plus…
Comment déployer une configuration en quelques minutes
Il est possible d'utiliser le script create_conf pour restaurer une configuration.

Affichage partiel d'une création de configuration avec Clapi
