Installation de Centreon-Engine

Installation de Centreon Engine

Cet article va vous permettre d’installer le nouvel ordonnanceur, fork de Nagios. Il est réalisé par l’équipe de Centreon. La version que je présente est la version 1.00 sortie le 30 juin 2011. Cette version n’est pas équipée d’une interface WEB comme Nagios, nous utiliserons Centreon pour créer nos fichier de configuration et visualiser les résultats. Centreon ne sera pas installé sur la machine mais nous utiliserons notre maquette comme indiqué dans cet article et nous réaliserons une architecture distribuée. le plugin CentCore doit être fonctionnel sur le serveur Centreon.
Le but de cet article n’est pas de vous expliquer le fonctionnement de Centreon Engine mais de vous aider à réaliser une installation fonctionnelle sous Debian 6. De nombreuses modifications seront nécessaires pour rendre compatible l’interaction entre Centreon et le moteur Centreon Engine. Toutefois, il se peut qu’il y ait des erreurs ou des améliorations à faire. Dans ce cas, n’hésitez pas à me le faire savoir.

Préparation de l’hôte pour Centreon Engine

Nous utiliserons la distribution Squeeze de Debian (version 6) indispensable pour voir la version 2.8 de cmake (pré requis pour Centreon Engine). Un accès internet est indispensable pour télécharger les derniers paquets Debian. Nous partirons d’une VM Debian fonctionnelle ou d’une machine physique, connectée au réseau. L’adresse IP de cette machine sera 172.16.209.230.

Installation de ssh

Afin de travailler dans de bonnes conditions et d’utiliser les fonctions copier/coller de Putty ou d’une session Terminal, il est nécessaire d’installer un serveur ssh. Connecter vous en root sur le serveur Debian, et saisissez la commande suivante :

apt-get install ssh

Il se peut que l’installation échoue si l’installation de Debian est trop ancienne par rapport aux nouveaux patchs de sécurisation, dans ce cas saisissez les commandes suivantes afin de mettre le serveur Debian à jour :

apt-get update
apt-get upgrade

Installation des pré-requis

Nous allons procéder à l’installation des différents paquets nécessaire à Centreon Engine.
Voici les paquets pour l’installation de Nagios et Centreon :

apt-get install sudo bsd-mailx lsb-release build-essential cmake qt4-dev-tools zlib1g-dev gsoap libconfig-inifiles-perl libperl-dev snmp snmpd libnet-snmp-perl libsnmp-perl postfix ntp libgnutls-dev libssl-dev libkrb5-dev libldap2-dev libsnmp-dev gawk libwrap0-dev libmcrypt-dev smbclient fping gettext dnsutils
et en détail l’installation des mêmes paquets debian.
Les paquets divers

apt-get install sudo bsd-mailx lsb-release

Les compilateurs

apt-get install build-essential cmake qt4-dev-tools zlib1g-dev

Service Web

apt-get install gsoap

Perl

apt-get install libconfig-inifiles-perl libperl-dev

SNMP

apt-get install snmp snmpd libnet-snmp-perl libsnmp-perl

Serveur Messagerie

apt-get install postfix

Ne pas saisir de configuration.
Serveur NTP

apt-get install ntp

Ensuite editer la configuration

vi /etc/ntp.conf

Ajouter les serveurs ntp de votre choix le cas échéant

server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org

Redémarrer le serveur

/etc/init.d/ntp restart

 

Installation de Centreon Centengine

Préparation de l’utilisateur et groupe. Pour assurer le maximum de compatibilité avec Centreon, nous utiliserons le groupe nagios et l’utilisateur nagios.
Création du groupe nagios

groupadd -g 6000 nagios

Création de l’utilisateur nagios

useradd -g 6000 -g nagios -d /usr/local/centengine -c "Centengine Admin" nagios

 

Compilation Centengine

Récupération des sources Centreon Engine
Récupérer les sources sur le site de Centreon en anglais car actuellement seul celui-ci et copier les fichiers par l’intermédiaire d’un client sftp dans le dossier, par exemple, /usr/local/src.
Décompression du fichier

tar -xzf centreon-engine-1.0.0.tar.gz
cd centreon-broker-1.0.0

Configuration, compilation et installation:
Positionnez-vous dans le dossier build

cd build

Préparer la configuration de la compilation avec cette commande.

cmake -DWITH_USER=nagios -DWITH_GROUP=nagios -DWITH_PREFIX=/usr/local/centengine .
Ne pas oublier le point à la fin séparé par un espace. Vous devriez obtenir ceci à la fin

-- Configuration Summary
-- ---------------------
-- 
--     Version:                 1.0.0beta
--     Embedded Perl:           No
--     Unit test:               No
--     Extra Compilation Flags: 
--     Prefix:                  /usr/local/centengine
--     Binary Directory:        /usr/local/centengine/bin
--     Configuration Directory: /usr/local/centengine/etc
--     Library Directory:       /usr/local/centengine/lib/centreon-engine
--     Var Directory:           /usr/local/centengine/var
--     Check Result Directory:  /usr/local/centengine/spool/checkresults
--     Temporary Directory:     /tmp
--     Startup Script:          No
--     User:                    nagios
--     Group:                   nagios
--     Deb Package Creation:    No
--     RPM Package Creation:    No

Compiler les fichiers et faire l’installation de Centreon Engine.

make
make install

Démarrage de Centreon Centengine automatique
Le script de démarrage automatique doit être copié manuellement à partir des fichiers exemples.

cp /usr/local/src/centreon-broker-1.0.0/scripts/centengine.sh /etc/init.d/centengine

Modifier le fichier pour nos besoins.

### BEGIN INIT INFO
# Provides: centengine
# Required-Start: $local_fs
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and stop Centreon Engine
### END INIT INFO

prefix=/usr/local/centengine
var_dir=/usr/local/centengine/var
binary=/usr/local/centengine/bin/centengine
config_file=/usr/local/centengine/etc/nagios.cfg
status_file=$var_dir/status.dat
retention_file=$var_dir/retention.dat
command_file=$var_dir/centengine.cmd
lock_file=$var_dir/centengine.lock
pid_file=$var_dir/centengine.pid
user=nagios
group=nagios
timeout=300

Lancez la commande

update-rc.d centengine defaults

 

Installation des plugins Nagios

 

Ajout des paquets supplémentaires

 

apt-get install libgnutls-dev libssl-dev libkrb5-dev libldap2-dev libsnmp-dev gawk libwrap0-dev libmcrypt-dev smbclient fping gettext dnsutils
Configuration de Samba Workgroup : COMMUN, ne pas utiliser les paramètres Wins

Récupération des plugins

 

cd /usr/local/src
wget http://puzzle.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

 

Décompression

 

tar -xzf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15

 

Compilation et installation

 

./configure –with-nagios-user=nagios –with-nagios-group=nagios –prefix=/usr/local/centengine –enable-perl-modules –with-openssl=/usr/bin/openssl
make
make install

 

Installation de NDOutils

 

Télechargement du paquet

 

cd /usr/local/src
wget http://surfnet.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz

Décompressez NDOutils et allez dans le répertoire

tar -xzf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9

Optionnel, optimisation de NDOutils par l’équipe de Centreon, télécharger le patch

wget http://svn.centreon.com/trunk/ndoutils-patch/ndoutils1.4b9_light.patch

Appliquer le patch

patch -p1 -N < ndoutils1.4b9_light.patch
patching file include/common.h
patching file src/ndo2db.c
patching file src/ndomod.c

 

Compilation et installation

Lancez la compilation de NDOutils

./configure --prefix=/usr/local/centengine/ --disable-mysql --disable-pgsql
make

Après avoir compilé les binaire et librairies, nous ne copierons que le module ndomod. Nous allons l’installer dans le répertoire de Centengine. Le fichier de configuration sera copié aussi et les droits pour l’utilisateur nagios seront appliqués.

cp src/ndomod-*.o /usr/local/centengine/bin/
cp config/ndomod.cfg-sample /usr/local/centengine/etc/ndomod.cfg
chmod 774 /usr/local/centengine/bin/ndo*
chown nagios:nagios /usr/local/centengine/bin/ndo*
chmod 774 /usr/local/centengine/etc/ndomod.cfg
chown nagios:nagios /usr/local/centengine/etc/ndomod.cfg

Mettre les droits à nagios sur tous le dossier et sous-dossier centengine

cd /usr/local
chown -R nagios:nagios centengine

 

Préparation pour l’architecture distribuée

Passons à la configuration de l’authentification ssh. Centreon doit pouvoir lancer des commandes sur le serveur ou est installé Centreon Engine par l’intermédiaire de commande ssh. Nous autoriserons l’utilisateur nagios à se connecter sans mot de passe par l’intermédiaire d’une clé d’authentification ssh.
Sur le serveur Centreon, que l’on va appeler Central, créez la clé ssh. ne saisissez pas de passphrase, validez par entrée. Connectez-vous sur le serveur avec l’utilisateur nagios.

nagios@supervision:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/usr/local/nagios/.ssh/id_rsa): 
Created directory '/usr/local/nagios/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /usr/local/nagios/.ssh/id_rsa.
Your public key has been saved in /usr/local/nagios/.ssh/id_rsa.pub.
The key fingerprint is:
88:7d:49:82:0a:cb:7c:9a:73:69:dd:45:b0:53:bd:50 nagios@supervision
The key's randomart image is:
+--[ RSA 2048]----+
|       . .oE     |
|     .  +. .     |
|.   . .o... .    |
|oo . o +o. .     |
|.o... o S.       |
|  + o ...        |
| + + . .         |
|  +              |
|                 |
+-----------------+

Saisir un mot de passe pour l’utilisateur nagios du serveur Centengine

passwd nagios
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd : le mot de passe a été mis à jour avec succès

Ensuite, copiez la clé ssh du serveur Central vers le serveur Centengine

nagios@supervision:~$ ssh-copy-id -i .ssh/id_rsa.pub nagios@172.16.209.230

nagios@172.16.209.153's password: 
Now try logging into the machine, with "ssh 'nagios@172.16.209.153'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Vérifier de nouveau la connexion ssh, vous ne devez plus saisir de mot de passe.
Puis copiez les fichier plugins du serveur Central.

scp /usr/local/nagios/libexec/* nagios@172.16.209.230:/usr/local/centengine/libexec/

Si vous utilisez les plugins de Centreon, n’oubliez pas de créer le dossier /var/lib/centreon/centplugins et de donner les droits en écriture à l’utilisateur Nagios. Modifier aussi le fichier centreon.conf

[GLOBAL]
DIR_NAGIOS=/usr/local/centengine/
NAGIOS_PLUGINS=/usr/local/centengine/libexec/
NAGIOS_ETC=/usr/local/centengine/etc/

et centreon.pm

use lib "/usr/local/centengine/libexec";
...
my $params_file = "/usr/local/centengine/libexec/centreon.conf";

Pour autoriser l’utilisateur Nagios du serveur Central à exécuter les commandes de l’ordonnanceur, modifiez le fichier de configuration sudo avec la commande visudo.

visudo

Ajoutez les lignes suivantes

nagios   ALL=NOPASSWD: /etc/init.d/centengine restart
nagios   ALL=NOPASSWD: /etc/init.d/centengine stop
nagios   ALL=NOPASSWD: /etc/init.d/centengine start
nagios   ALL=NOPASSWD: /etc/init.d/centengine reload
nagios   ALL=NOPASSWD: /usr/local/centengine/bin/centenginestats
nagios   ALL=NOPASSWD: /usr/local/centengine/bin/centengine *

Configuration de Centreon

CentCore doit être opérationnel sur le serveur Central.
Procédez à la nouvelle configuration dans l’ordre ci-dessous. Connectez-vous sur l’interface Web de Centreon.
Tout d’abord il faut rajouter un paramètre pour indiquer le chemin des plugins du serveur Centcore.

Menu Configuration / Nagios / Resources

Ajouter $USER3$

Le chemin des plugins de centengine est /usr/local/centengine/libexec

Menu Configuration / Commands / Miscellaneous

Dupliquez la commande Process-service-perfdata

Renomez en Process-service-perfadata_engine en remplaçant $USER$1 par $USER$3

Menu Configuration / Centreon / Pollers

Dupliquez le pollers Central et modifiez comme ci-dessous

Saisir par exemple comme nom centengine, l’IP est celle du serveur Centengine et modifier le dossier des divers paramètres (centengine à la place de nagios).

Menu Configuration / Centreon / ndomod.cfg

Dupliquez la configuration de ndomod du serveur Central et modifiez comme ci-dessous

Saisir par exemple ndo-centengine, choisissez l’instance centengine et l’IP du serveur Central. Le reste est la configuration par défaut.

Menu Configuration / Nagios / Nagios.cfg

Dupliquez la configuration du serveur Central et modifiez comme ci-dessous

Onglet Files, modifiez les paramètres encadrés, ne pas oublier d’associer le poller centengine.

Onglet Log Options

Onglet Data, il faudra modifier le script de données de performances que nous verrons plus loin.

Onglet Admin

Configuration d’un Hôte par le serveur Centengin

e
Afin de mettre les bon paramètres pour les commandes de vérifications, dupliquez chaque commandes que l’on utilisera avec le serveur Centengine et modifier le paramètre $USER1$ par $USER3$. Préfixer vos commandes par centengine.

Ensuite utilisez ces commandes dans vos templates et créez votre hôte pour le serveur Centengine

La différence se situera au niveau du paramètre Monitored from, choisissez le nouveau Poller centengine.
Il est temps d’appliquer votre configuration au serveur Centengine.

Menu / Configuration / Nagios
Sélectionnez le Poller Centengine, cochez Move Export Files et Restart Nagios avec l’option Restart

Cliquez sur Export

Les deux dernières lignes vous indiquent que les opérations se sont bien déroulées. Attendez quelques instants pour vérifier la bonne marche de votre serveur centengine.

Vérification du fonctionnement

Tout d’abord vérifiez que les fichiers de configuration ont bien été copiés dans /usr/local/centengine/etc. Vérifiez le fichier de log /usr/local/centengine/centengine.log. Vous devriez avoir ces informations :

[1310364618] Centreon Engine 1.0.0beta starting … (PID=28289)
[1310364618] Local time is lun. juil. 11 08:10:18 CEST 2011
[1310364618] LOG VERSION: 2.0
[1310364618] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1310364618] ndomod: Successfully connected to data sink. 0 queued items to flush.
[1310364618] Event broker module `/usr/local/centengine/bin/ndomod-3x.o’ initialized successfully.
[1310364618] INITIAL HOST STATE: Nagios_engine;UP;HARD;0;PING OK – Packet loss = 0%, RTA = 0.02 ms
[1310364618] INITIAL SERVICE STATE: Nagios_engine;Disk-/;OK;HARD;0;Disk OK – / TOTAL: 0.314GB USED: 0.104GB (33%) FREE: 0.210GB (67%)
[1310364618] INITIAL SERVICE STATE: Nagios_engine;Disk-/home;OK;HARD;0;Disk OK – /home TOTAL: 1.930GB USED: 0.034GB (1%) FREE: 1.896GB (99%)
[1310364618] INITIAL SERVICE STATE: Nagios_engine;Disk-/tmp;OK;HARD;0;Disk OK – /tmp TOTAL: 0.155GB USED: 0.005GB (3%) FREE: 0.150GB (97%)
[1310364618] INITIAL SERVICE STATE: Nagios_engine;Disk-/usr;OK;HARD;0;Disk OK – /usr TOTAL: 1.961GB USED: 1.499GB (76%) FREE: 0.462GB (24%)
[1310364618] INITIAL SERVICE STATE: Nagios_engine;Disk-/var;OK;HARD;0;Disk OK – /var TOTAL: 0.977GB USED: 0.442GB (45%) FREE: 0.535GB (55%)
[1310364618] INITIAL SERVICE STATE: Nagios_engine;Load;OK;HARD;0;Load average: 0.00, 0.01, 0.03.
[1310364618] INITIAL SERVICE STATE: Nagios_engine;Memory;OK;HARD;0;Total memory used : 8% ram used : 25%, swap used 0%
[1310364618] INITIAL SERVICE STATE: Nagios_engine;Memory-Swap;OK;HARD;0;Disk OK – Swap space TOTAL: 0.328GB USED: 0.000GB (0%) FREE: 0.328GB (100%)
Sur l’interface Web, le poller centengine doit vous donner cette information ci-dessous :

Et si tout va bien, vous devriez avoir les résultats des vérifications de votre hôte.

Cet article s’achève ici. Bonne configuration.

Leave a Reply

Your email address will not be published. Required fields are marked *