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...
FAN, autrement dit Fully Automated Nagios, est un projet initié par Cédric TEMPLE, Olivier LI-KIANG-CHEONG, David HANNEQUIN et Thibault COHEN. Cette distribution CentOS a commencé en juin 2008, elle comprenait un moteur de supervision Nagios et l'interface Web Centreon ainsi que la cartographie Nagvis. La dernière version 2.4 date de 2013, malheureusement le projet n'est plus suivi et il n'est pas prévu d'autres versions. Après les dernières mises à jour appliquées, Centreon est à la version 2.4.5 et Nagios est à la version 3.4.4.
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
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
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
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
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
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