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.
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 :
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
Les compilateurs (nécessaire pour nagios)
Serveur Web et PHP5 (nécessaire pour activer l'interface cgi de nagios)
Perl (nécessaire pour nagios)
SNMP
Librairies GD (nécessaire pour nagios)
Serveur Messagerie
Ne pas saisir de configuration.
Serveur NTP
Ensuite editer la configuration
Ajouter les serveurs ntp de votre choix le cas échéant
Redémarrer le serveur
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
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.
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
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
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.
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
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
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
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.
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
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
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)
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
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
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.
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
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.
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.
C’est terminé, votre installation Nagios est prête.
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.
C’est terminé, votre installation Nagios est prête.