Vous êtes ici:

Menu


Stacks Image 1272008
Cette installation n’est plus conseillée, Centreon ne supporte plus Nagios depuis l’avènement de leur propre moteur de supervision.
Stacks Image 1281
Nagios, autrefois appelé Netsaint, est l'ordonnanceur le plus répandu dans la supervision du monde libre. Mais il existe, depuis quelque temps, d'autres alternatives comme Inciga, Shinken et bien sûr Centreon-Engine.
Le but de cet article est de vous présenter une installation complète de Nagios avec son broker associé. Celui-ci permet de faire le lien entre le moteur de supervision et d'autres outils de monitoring comme Centreon, Nagvis, etc...
L'installation s'effectuera sur une machine virtuelle Debian 6 en compilant les sources. Le dossier de base sera /usr/local mais rien ne vous empêche de choisir un autre dossier. Il est préférable d'avoir un accès au réseau Internet pour le téléchargement des paquets.
Nous utiliserons la version 3.5.1 de Nagios, pour les autres versions plus anciennes se référer aux archives que vous trouverez mon ancien site.

1 Préparation de la VM

1.1 Mise à jour et 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

1.2 Pré requis

Nous allons procéder à l’installation des différents paquets nécessaire à Nagios.
Voici les paquets pour l’installation de Nagios :
apt-get install lsb-release bsd-mailx snmp snmpd postfix apache2 build-essential php5 libgd2-xpm-dev libperl-dev ntp
Voici en détail l'installation de ces mêmes paquets.
1.2.a Détail de l'installation des paquets
Les paquets divers
apt-get install bsd-mailx lsb-release

Les compilateurs (nécessaire pour nagios)
apt-get install build-essential

Serveur Web et PHP5 (nécessaire pour activer l'interface cgi de nagios)
apt-get install apache2 php5

Perl (nécessaire pour nagios)
apt-get install libperl-dev

SNMP
apt-get install snmp snmpd

Librairies GD (nécessaire pour nagios)
apt-get install libgd2-xpm-dev

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

1.3 Préparation des utilisateurs et groupes

Création des groupes nagios
groupadd -g 6000 nagios
groupadd -g 6001 nagcmd
Le groupe nagcmd servira pour les commandes externes.
Création de l'utilisateur nagios
useradd -u 6000 -g nagios -G nagcmd -d /usr/local/nagios -c "Nagios Admin" nagios
Ajout du goupe pour apache
/usr/sbin/usermod -G nagios,nagcmd www-data

2 Installation de Nagios

2.1 Compilation

2.1.a Récupération des sources Nagios 3.5.1

cd /usr/local/src/
wget http://downloads.sourceforge.net/project/nagios/nagios-3.x/nagios-3.5.1/nagios-3.5.1.tar.gz

2.1.b Décompression du fichier

tar -xzf nagios-3.5.1.tar.gz
cd nagios

2.1.c Application du patch pour Centreon-Broker

Une anomalie a été détectée par l'équipe Centreon lorsqu'on utilise Nagios conjointement avec Centreon-broker. Si vous installez celui-ci, appliquez le patch comme ci-dessous.
Se positionnez dans le dossier /usr/local/src/nagios/base.
cd /usr/local/src/nagios/base
Créez le fichier centreon_check.patch et insérez les lignes suivantes :
--- checks.c	2013-09-03 07:35:24.955966983 +0200
+++ checks2.c 2013-09-03 07:39:09.601851965 +0200
@@ -1608,12 +1608,15 @@
broker_service_check(NEBTYPE_SERVICECHECK_PROCESSED, NEBFLAG_NONE, NEBATTR_NONE, temp_service, temp_service->check_type, queued_check_result->start_time, queued_check_result->finish_time, NULL, temp_service->latency, temp_service->execution_time, service_check_timeout, queued_check_result->early_timeout, queued_check_result->return_code, NULL, NULL);
#endif

- /* set the checked flag */
- temp_service->has_been_checked = TRUE;
-
- /* update the current service status log */
- update_service_status(temp_service, FALSE);
-
+ if(!(reschedule_check==TRUE
+ && temp_service->should_be_scheduled==TRUE
+ && temp_service->has_been_checked==TRUE)
+ || temp_service->checks_enabled==FALSE){
+ /* set the checked flag */
+ temp_service->has_been_checked=TRUE;
+ /* update the current service status log */
+ update_service_status(temp_service,FALSE);
+ }
/* check to see if the service and/or associate host is flapping */
if(flapping_check_done == FALSE) {
check_for_service_flapping(temp_service, TRUE, TRUE);
appliquez le patch
patch -p0 < centreon_check.patch
Nagios est prêt pour la compilation.
Le fichier est modifié comme le montre le résultat suivant :
patching file checks.c

2.1.d Configuration, compilation et installation

cd /usr/local/src/nagios
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagcmd --enable-event-broker --enable-nanosleep --enable-embedded-perl --with-perlcache
make all
make install
make install-init
make install-commandmode
make install-config

2.2 Configuration

Démarrage de Nagios automatique
Ajoutez au début du fichier /etc/init.d/nagios ces lignes ci-dessous
### BEGIN INIT INFO
# Provides: nagios
# Required-Start:
# Required-Stop:
# X-Stop-After:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: nagios
# Description: Supervision Nagios
### END INIT INFO
Lancez la commande
update-rc.d nagios defaults

3 Installation des Plugins pour Nagios

Stacks Image 1721
Les plugins, appelés aussi sondes, sont des programmes exécutables obligatoires pour faire fonctionner notre supervision. Les plugins ne sont pas installés par défaut. Il faut les télécharger et faire leur installation. Depuis quelques temps, Les plugins de base peuvent être récupérer sur deux sites différents, le site de nagios-plugins.org et le site monitoring-plugins.org. D'autres plugins, principalement en Perl, seront fournis avec Centreon.
L'installation de ces plugins est déclinée en deux parties : la première est pour l'installation de Nagios et la deuxième pour l'installation de Centreon-Engine.

3.1 Pré requis

Tout d'abord, installons les paquets nécessaires au fonctionnement des plugins.
Pour Debian Squeeze
apt-get install libgnutls-dev libssl-dev libkrb5-dev libldap2-dev libsnmp-dev gawk libwrap0-dev libmcrypt-dev smbclient fping gettext dnsutils  libmysqlclient15-dev
Pour Debian Wheeze
apt-get install libgnutls-dev libssl-dev libkrb5-dev libldap2-dev libsnmp-dev gawk libwrap0-dev libmcrypt-dev smbclient fping gettext dnsutils  libmysqlclient-dev
Configuration de Samba Workgroup : COMMUN, ne pas utiliser les paramètres Wins

Récupération des plugins sur le site de nagios-plugins.org

cd /usr/local/src
wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

Décompression

tar -xzf nagios-plugins-2.0.3.tar.gz
cd nagios-plugins-2.0.3
ou sur le site de monitoring-plugins.org
cd /usr/local/src
wget --no-check-certificate https://www.monitoring-plugins.org/download/monitoring-plugins-2.1.1.tar.gz

Décompression

tar -xzf monitoring-plugins-2.1.1.tar.gz
cd monitoring-plugins-2.1.1

3.2 Compilation et installation

./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/ --enable-perl-modules --with-openssl=/usr/bin/openssl
make
make install
Stacks Image 1908
Compilation avec Debian Wheezy
La compilation peut échouer sur Debian Wheezy avec les messages d'erreurs suivants.
Validate.xs: In function ‘get_type’:
Validate.xs:208:5: error: duplicate case value
Validate.xs:205:5: error: previously used here
make[3]: *** [Validate.o] Erreur 1
make[3]: quittant le répertoire « /usr/local/src/nagios-plugins-1.4.16/perlmods/Params-Validate-0.88 »
Can't run make at ../tools/build_perl_modules line 69.
make[2]: *** [all-local] Erreur 2
make[2]: quittant le répertoire « /usr/local/src/nagios-plugins-1.4.16/perlmods »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /usr/local/src/nagios-plugins-1.4.16 »
make: *** [all] Erreur 2

Pour résoudre ce problème, se positionnez dans le dossier suivant
cd perlmods/Params-Validate-0.88

Lancez la commande suivante
perl Makefile.PL --pm

retournez au dossier précédent et compilez
cd -
make

La compilation se fait sans problème.

4 Installation du broker NDOutils pour Nagios

Stacks Image 2236
Maintenant, il est temps de passer à l'installation du broker qui nous permettra d'obtenir les données de performances.
Il est possible d'utiliser un broker alternatif MK livestatus ce qui nous permettra de réaliser une configuration lite avec Thruk.

4.1 Compilation et installation

Stacks Image 47339
Point d’attention
Désormais, le patch créé par l’équipe de Centreon n’est plus disponible sur leur site.
Nous utiliserons la dernière version 1.5.2 patchée par l’équipe de Centreon.
Télechargement du paquet
cd /usr/local/src
wget http://downloads.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.5.2/ndoutils-1.5.2.tar.gz
Décompressez NDOutils et allez dans le répertoire
tar -xzf ndoutils-1.5.2.tar.gz
cd ndoutils-1.5.2
Optionnel mais fortement conseillé, l'optimisation de NDOutils par l’équipe de Centreon
Télécharger le patch (le site n’existe plus)
wget http://svn.centreon.com/trunk/ndoutils-patch/ndoutils1.5.2_light.patch
Appliquer le patch
patch -p1 -N < ndoutils1.5.2_light.patch
résultat de la commande
patching file Changelog
patching file include/common.h
patching file src/ndo2db.c
patching file src/ndomod.c
Compilation et installation
Lancez la préparation à la compilation de NDOutils
./configure --prefix=/usr/local/nagios/ --enable-mysql --disable-pgsql --with-mysql-lib=/usr/lib/mysql/
Vous devriez avoir ce résultat
*** Configuration summary for ndoutils 1.5.2 06-08-2012 ***:

General Options:
-------------------------
NDO2DB user: nagios
NDO2DB group: nagios


Review the options above for accuracy. If they look okay,
type 'make' to compile the NDO utilities.
Compilez NDOutils.
make
Après avoir compilé les binaires et librairies, il faut maintenant les installer. Ici nous allons les installer dans les répertoires de Nagios. Les fichiers de configuration seront copiés aussi.
cp /usr/local/src/ndoutils-1.5.2/src/ndomod-*.o /usr/local/nagios/bin/
cp /usr/local/src/ndoutils-1.5.2/src/ndo2db* /usr/local/nagios/bin/
cp /usr/local/src/ndoutils-1.5.2/config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
cp /usr/local/src/ndoutils-1.5.2/config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
chmod 774 /usr/local/nagios/bin/ndo*
chown nagios:nagios /usr/local/nagios/bin/ndo*
chmod 774 /usr/local/nagios/etc/ndomod.cfg
chown nagios:nagios /usr/local/nagios/etc/ndomod.cfg

4.2 Configuration

4.2.a Modification du fichier de configuration de Nagios

Modifier les deux lignes dans le fichier /usr/local/nagios/etc/nagios.cfg
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
event_broker_options=-1

4.2.b Installation du script de démarrage

Je vous propose deux solutions. La première est de modifier directement le fichier de démarrage /etc/init.d/nagios pour inclure le lancement de ndo2db au démarrage de nagios, rajouter les lignes suivantes en rouge :
...
su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
su - $NagiosUser -c "/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg"
rm -f $NagiosCommandFile
...
pid_nagios
killproc_nagios nagios
skill ndo2db-3x
Redémarrage de Nagios
service nagios restart
La seconde est de rajouter le fichier ndo2db dans le dossier /etc/init.d et de le configurer comme ci-dessous. Attention, l'installation de mysql est un pré-requi.
chmod +x /etc/init.d/ndo2db
update-rc.d ndo2db defaults
Démarrage du broker NDOutil
service ndo2db restart
Il faut utiliser la seconde solution si vous installer Centreon >= 2.4.x

4.3 Vérification du fonctionnement de NDOUtils

Pour vérifier le fonctionnement de NDOUtils, vous aurez préalablement installé le module Web cgi de Nagios.

4.3.a 1er cas, sans ndo2db

MySQL n'est pas installé, le service ndo2db n'est donc pas démarré. Vérifiez les Event Log dans la page Web de Nagios
Install_ndo01


Il faut lire les messages du bas vers le haut. Le process Nagios démarre. Ensuite NDOMOD démarre. La zone bleue indique que le module Event Broker fonctionne sans problème. La zone rouge affiche des messages d'erreur car le service ndo2db n'est pas démarré et par conséquent le module ndomod n'arrive pas à se connecter au flux TCP.
L’article est terminé. Rendez-vous sur l’article de Centreon.

4.3.b 2ème cas, avec ndo2db

Vérifiez les Event Log dans la page Web de Nagios

install-nagios4

Il faut lire les messages du bas vers le haut. Le process Nagios démarre. Ensuite NDOMOD démarre. La zone bleue indique que le module Event Broker fonctionne sans problème. La zone rouge affiche des messages d'erreur mais c'est normal, la base n’est pas configurée.
L’article est terminé. Rendez-vous sur l’article de Centreon.

5 Installation de l'interface WEB

5.1 Compilation

Il faut revenir sur le dossier nagios
cd /usr/local/src/nagios
Installez les fichiers de configuration.
make install-webconf

5.2 Configuration

Création du fichier htpasswd pour l’accès à la page de Nagios
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
chown nagios:nagcmd /usr/local/nagios/etc/htpasswd.users
Saisir un mot de passe pour nagiosadmin, pour la maquette on saisira nagios

5.3 Vérification du fonctionnement

Redémarrer le serveur apache
service apache2 restart
Démarrer le serveur Nagios
service nagios start
Vérifier le fonctionnement de Nagios avec le navigateur
http://172.16.209.141/nagios/

Saisir le Nom d’utilisateur nagiosadmin et le mot de passe nagios. Cliquez ensuite sur services vous devriez voir un certain nombre de services ok ou non.
install-nagios2
C’est terminé, votre installation Nagios est prête.
comments powered by Disqus
 Vous êtes ici: