Vous êtes ici:

Menu

Importer votre configuration avec un fichier CSV

upgrade-centreon2602015-04-22_09-26-55_PM
Suite à une demande sur le forum Centreon, je vous propose un petit script permettant d'importer en masse vos hôtes avec un fichier CSV. Le prérequis sera un serveur Centreon bien configuré avec des templates d'hôtes. Ce mécanisme permet d'ajouter très facilement un hôte et ses services associés. Pour cet exemple, nous utiliserons un serveur Centreon avec IMP.

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.

import_csv1

Les macros personnalisées sont aussi ajoutées

import_csv2

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. Winking

Comments

Le watchdog cbwd, le meilleur ami du broker

watchdog
Depuis la nouvelle version 2.8.x de Centreon, un nouveau mécanisme est apparu pour la gestion du broker Centreon. Cet article cbwd, le watchdog de Centreon-broker vous permettra d'en apprendre un peu plus sur ce programme méconnu.


create_watchdog

Comments

LiveCode et l'API Rest de Centreon

live-code community
Pour les dévelopeur en herbe comme moi, une petite application graphique pour exploiter les API Rest de Centreon avec LiveCode. Celui est multi-plateforme et pourra aussi bien fonctionner sous Windows, Mac et Linux. Découvrez mon article API Rest de Centreon avec LiveCode.

livecode_tempsreel
Comments

Gérer le certificat NSClient pour l'API Rest

logo_nsclientSi vous avez utilisez l'API Rest de NSClient, vous avez été certainement confronté à la problématique des certificats surtout si vous avez plusieurs agents en fonctionnement. En effet, le certificat livré avec NSClient étant identique, votre navigateur, surtout la dernière version de Firefox, vous empêchera de vous connecter à vos agents NSClient.
Pour la première connexion, vous aurez droit à un message d'avertissement. Normal, me direz-vous, car celui-ci ne peut pas authentifier ce certificat. Il suffira d'ajouter une exception pour régler le problème. Mais le souci viendra lors d'une deuxième connexion à un autre agent, votre navigateur va reconnaître le même certificat mais pour un serveur différent. Votre butineur préféré conclura à une usurpation d'identité et donc à un site malveillant en vous empêchant de vous connecter comme le montre cette copie d'écran.

cert_nsclient01

Pour remédier à ce souci, je vous propose deux solutions.


Lire plus…
Comments

NSClient et l'API Rest avec les plugins Centreon

logo_nsclientL'agent NSClient a beaucoup évolué depuis la version 0.5. Celui-ci dispose d'un module Web permettant d'effectuer des requêtes API Rest. Depuis peu, un nouveau plugin Centreon a été développé pour utiliser cette méthode de connexion. Je profite de cette nouvelle fonctionnalité des plugins Centreon pour vous proposer une série d'articles autour de l'agent NSClient.
Nous commencerons par l'installation de l'agent sur CentOS et Windows.

install_nsclient

Ensuite nous aborderons l'installation du mode web de l'agent NSClient et du plugin Rest API Centreon.

web_nsclient

D'autres articles seront prévus plus tard pour l'intégration dans l'IHM Centreon et l'utilisation des divers modules de NSClient. Le dépôt Centreon-deb a été mis à jour pour pouvoir utiliser ce nouveau plugin. Pour une mise à jour :

apt-get update
apt-get install centreon-plugins

Comments
 Vous êtes ici: