Professional Documents
Culture Documents
Avant d’installer Nagios, vous devez tout d’abord vous assurer que votre système est à jour,
installer apache et installer une base de données mysql.
Deux remarques importantes:
- Dans notre cas, Nagios sera installé sur une Debian (d'où l'utilisation d'Aptitude), mais sachez que
Nagios fonctionne sur la quasi-totalité des distributions.
- Au cours du temps, les librairies évoluent et montent en version. Si vous recevez un message
d'erreur lorsque vous tentez de récupérer une des librairies ci-dessous, pensez à utiliser l'outil apt-
cache search . Cette commande listera les packages disponibles. Pour plus d'info sur cette
commande, il y a une bonne documentation ici: http://doc.ubuntu-fr.org/apt-cache
Nagios présente ses résultats via une interface web. Nous devons donc installer un serveur web!
# sudo apt-get install apache2 wget
Nagios et ses plugins ne pourront pas fonctionner sans quelques librairies: on remarquera la
présence de BIND et de dnsutils, qui fournissent différents outils relatifs au DNS comme nslookup
ou dig
# sudo apt-get install bind9-host dnsutils libbind9-60 libdns50
libisc60 libisccc60 libisccfg60 liblwres60 libradius1 qstat
radiusclient1 snmp snmpd
Les librairies suivantes permettent l'affichage de graphiques dans l'interface web de Nagios.
# sudo apt-get install libgd2-noxpm-dev libpng12-dev libjpeg62
libjpeg62-dev
Pour des raisons de sécurité, nagios est exécuté non pas en root mais par l’utilisateur nagios et par
le groupe nagiosgrp. C'est pourquoi on créé un utilisateur à qui l'on donne un mot de passe, on
l'ajoute à son groupe et on lui donne les droits nécessaires à l'utilisation de Nagios.
Ensuite, nous ajoutons l'utilisateur www-data(utilisateur d'Apache) à nagiosgrp pour qu'il ait accès
aux mêmes fichiers que nagios.
# sudo /usr/sbin/useradd nagios
# sudo -s
# cd /usr/src
# wget http://surfnet.dl.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
# wget http://kent.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
# cd nagios-3.2.0
# ./configure --with-command-group=nagiosgrp
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
Qu'avons-nous fait? Voyons en détails les commandes que vous avez tapé:
• make all : les sources sont compilées grâce aux outils compris dans buid-essential (que vous
avez installé dans la première partie).
• make install : cette commande installe le logiciel Nagios et les fichiers qui lui sont liés (ex:
les pages web de l'interface utilisateur).
• make install-init : un init script est créé dans /etc/init.d, ce qui permettra entre autres de
lancer Nagios via la commande /etc/init.d/nagios start.
• make install-config : cette commande copie des fichiers de configuration "sample" (qui
présentent la syntaxe type d'un fichier de configuration).
• make install-commandemode : certaine permissions appliquées sur le dossier les
commandes externes de Nagios sont modifiées.
Après avoir récupéré les sources des plugins de Nagios (de la même manière que vous avez
récupéré Nagios lui-même), décompressez-les:
# cd /usr/src
# make
# make install
Premier test
On lance la commande de vérification des fichiers de configuration, une bonne habitude à prendre si
l'on ne veut pas se retrouver face à des messages d'erreurs avertissants que tel ou tel fichier de
configuration ne respecte pas la bonne syntaxe :
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Depuis l'apparition de Nagios 3, on peut remplacer la commande précédente par celle-ci:
# /etc/init.d/nagios checkconfig
Normalement ce message devrait apparaitre :
Total Warnings: 0
Total Errors: 0
Things look okay No serious problems were detected during the pre-
flight check
démarrage automatique
# /etc/init.d/nagios start
Le problème quand deux très bonnes solutions cohabitent (ici, Nagios et Centreon), c'est qu'elles
utilisent parfois des standard différents: impossible de faire fonctionner Nagios et son interface web
de configuration sans passer par une base de données commune. Nagios y transferera les résultats
des tests qu'il a effectué et Centreon y modifiera les fichiers de configurations propres à Nagios.
Dans ce chapitre nous verrons comment installer NDOUtils et comment l'utiliser. NDOUtils est un
plugin de Nagios qui lui permet d'envoyer les résultats de ses tests et de les insérer dans la base de
données. La distinction entre ces deux étapes est importante, mais nous y reviendrons plus tard
(patience). Pour l'instant, nous installons la base de données qui fera le lien entre Nagios et
Centreon.
mysql> exit
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz
# cd ndoutils-1.4b9
# make
# cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
# cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db
# cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
# cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
Il faut modifier les fichiers de configuration de nos deux composants: ndomod.cfg et ndo2db.cfg
(modifier les parametres pour qu'ils correspondent à ce qui est écrit ci-dessous)
# vi /usr/local/nagios/etc/ndomod.cfg
instance_name=Central
output_type=unixsocket
output=/usr/local/nagios/var/ndo.sock
tcp_port=5668
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
# vi /usr/local/nagios/etc/ndo2db.cfg
ndo2db_user=nagios
ndo2db_group=nagiosgrp
socket_type=unix
socket_port=5668
db_servertype=mysql
db_name=ndo
db_port=3306
db_host=localhost
db_prefix=nagios_
db_user=ndouser
db_pass=ndopassword
#vi /usr/local/nagios/etc/nagios.cfg
event_broker_options=-1
broker_module=/usr/local/nagios/bin/ndomod.o
config_file=/usr/local/nagios/etc/ndomod.cfg
status_ndo ()
{
if ps -p $NdoPID > /dev/null 2>&1; then
return 0
else
return 1
fi
return 1
}
printstatus_ndo()
{
if status_ndo $1 $2; then
echo "ndo (pid $NdoPID) is running..."
else
echo "ndo is not running"
fi
}
killproc_ndo ()
{
echo "kill $2 $NdoPID"
kill $2 $NdoPID
}
pid_ndo ()
{
if test ! -f $NdoRunFile; then
echo "No lock file found in $NdoRunFile"
echo -n " checking runing process..."
NdoPID=`ps h -C ndo2db -o pid`
if [ -z "$NdoPID" ]; then
echo " No ndo2db process found"
exit 1
else
echo " found process pid: $NdoPID"
echo -n " reinit $NdoRunFile ..."
touch $NdoRunFile
chown $NdoUser:$NdoGroup $NdoRunFile
echo "$NdoPID" > $NdoRunFile
echo " done"
fi
fi
NdoPID=`head $NdoRunFile`
}
prefix=/usr/local/nagios
exec_prefix=${prefix}
NdoBin=${exec_prefix}/bin/ndo2db
NdoCfgFile=${prefix}/etc/ndo2db.cfg
NdoRunFile=${prefix}/var/ndo2db.run
NdoLockDir=/var/lock/subsys
NdoLockFile=ndo2db.lock
NdoUser=nagios
NdoGroup=nagiosgrp
start)
echo -n "Starting ndo:"
touch $NdoRunFile
chown $NdoUser:$NdoGroup $NdoRunFile
$NdoBin -c $NdoCfgFile
if [ -d $NdoLockDir ]; then
touch $NdoLockDir/$NdoLockFile;
fi
ps h -C ndo2db -o pid > $NdoRunFile
if [ $? -eq 0 ]; then
echo " done."
exit 0
else
echo " failed."
$0 stop
exit 1
fi
;;
stop)
echo -n "Stopping ndo: "
pid_ndo
killproc_ndo
rm -f $NdoRunFile $NdoLockDir/$NdoLockFile
;;
status)
pid_ndo
printstatus_ndo ndo
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: ndo {start|stop|restart|status}"
exit 1
;;
esac
Une autre méthode pour automatiser le lancement serait de modifier la fichier /etc/init.d/nagios.
Ajoutez la ligne suivante avant la ligne "su - $NagiosUser -c "touch $NagiosVarDir/nagios.log
$NagiosRetentionFile"
su - $NagiosUser -c "/usr/local/nagios/bin/ndo2db -c
/usr/local/nagios/etc/ndo2db.cfg"
Ajoutez ensuite après la ligne "killproc_nagios nagios":
su - $NagiosUser -c "skill ndo2db"
ainsi, lorsque le service Nagios démarre, NDO démarre avec lui!
# /etc/init.d/nagios restart
Enfin, petit bonus pour tous ceux qui souhaitent approfondir leurs connaissances de NDO, je vous
recommande la documentation officielle que vous trouverez ici.
Installation de CENTREON
Nagios est une solution très puissante, là-dessus nous sommes d'accord. Cependant, on peut lui
reprocher d'être très compliqué à configurer: fichiers texte par-ci par-là, on s'y perd très vite.
Installation de Centreon
# sudo -s
# cd /usr/src
# wget http://download.centreon.com/index.php?id=143
# cd centreon-2.0
On lance alors le script d’installation :
# ./install.sh –i
Un dernière étape consiste à modifier la base de donnée NDO pour qu'elle fonctionne de manière
optimisée avec Centreon (les commandes SQL sont très proches de celles décrites dans le chapitre
précédent):
# cd /usr/src/centreon-2.0/www/install
# mysql -u root -p
mysql> exit
# cd /usr/src/centreon-2.0/
On finalise alors l’installation en passant par l’interface Web de Centreon :
http://IP de votre serveur/centreon/