Publié le samedi 26 novembre 2005, mis a jour le samedi 28 juillet 2007, par Stephane MALINET
Nagios est un outil de monitoring réseau très puissant qui vous permet entre autre de vérifier la continuité de vos services tel que DNS, HTTP, SMTP, POP... d’en tirer des rapports par jour, mois... donc ainsi d’établir des statistiques quant à leur qualité, de vous faire alerter par mail ou sur votre PDA si vos serveurs sont tombés... Bref, c’est l’outil parfait des administrateurs réseau et systèmes, d’autant que si vous le coupler avec cacti et rrdtool, comme dirait un ami, « c’est le trio gagnant »...
Dans ce guide, il ne sera question que de l’installation et de la configuration de base de net-analyzer/nagios avec net-www/apache-2, c’est-à-dire définir si vos machines sont down ou pas... Pour le reste, je vous invite à vous reporter à la documentation officiel de nagios.
Deux possibilités s’offrent à vous pour installer apache2, plutôt que apache1 qui est par défaut, éditez le fichier /etc/make.conf et ajoutez-y
USE="apache2 nagios-ping jpeg png"
puis tapez la commande suivante :
# emerge -av nagios
Ou vous pouvez encore faire ceci, ce qui à mon avis n’est pas l’idéal :
# USE="apache2 nagios-ping jpeg png" emerge -av nagios
et vous devriez obtenir quelque chose comme ça si vous avez déjà net-www/apache-2 d’installé :
[ebuild N ] net-analyzer/fping-2.4_beta2-r1 59 kB
[ebuild N ] net-analyzer/nagios-plugins-1.4.2 -ipv6 +ldap +mysql -nagios-dns -nagios-game -nagios-ntp +nagios-ping +nagios-ssh -postgres -radius -samba -snmp +ssl -ups 948 kB
[ebuild N ] net-analyzer/nagios-nsca-2.4 53 kB
[ebuild N ] net-analyzer/nagios-core-1.2-r4 +apache2 -debug -mysql -noweb +perl -postgres 1,587 kB
[ebuild N ] net-analyzer/nagios-imagepack-1.0 1,610 kB
[ebuild N ] net-analyzer/nagios-nrpe-2.0-r1 -command-args +ssl 50 kB
[ebuild N ] net-analyzer/nagios-1.2 0 kBUne fois que vous aurez décidé des plugins que vous installerez, retapez la même commande sans l’option "p"... La compilation terminée, nous allons mettre les démons apache2 et nagios au default runlevel.
# rc-update -a apache2 default
# rc-update -a nagios defaultA ce niveau, le plus facile est fait, donc passons au gros du morceau...
Si vous n’aviez pas de MTA (Mail Transfert Agent), entendez par là "serveur d’envoie de mails (SMTP)", installé sur votre machine, l’emerge de nagios vous installera par défaut le paquet mail-mta/ssmtp qui servira donc à l’envoie des mails.
Sa configuration par défaut est suffisante pour que nagios fonctionne correctement, mais le champ from de vos mails ressemblera à cela :
added by portage for nagios-plugins <nagios@gentoobox.homenetwork.net>
Ce qui risque d’être génant en cas de renvoie de message d’érreurs...
Nous allons donc éditez le fichier de configuration de ssmtp et modifier certains champs :
vi /etc/ssmtp/ssmtp.conf
root=babykart@gmail.com
mailhub=serveur.smtp.de.votre.faiEnsuite nous allons créer un alias inversé pour l’utilisateur nagios, c’est-à-dire que lorsque un message sera envoyé par nagios, le "return path" (adresse de retour) sera celle de l’alias :
# vi /etc/ssmtp/revaliases
nagios:babykart@gmail.com:serveur.smtp.de.votre.faiPassons à apache et nagios.
L’emerge nagios aura créer un fichier /etc/apache2/modules.d/99_nagios.conf contenant :
<IfDefine NAGIOS>
ScriptAlias /nagios/cgi-bin/ /usr/nagios/sbin/
<Directory "/usr/nagios/sbin/">
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Alias /nagios /usr/nagios/share/
<Directory "/usr/nagios/share">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
</IfDefine>Il faut donc modifier le fichier de démarrage du démon apache2 afin qu’il prenne en compte le module nagios au démarrage :
# vi /etc/conf.d/apache2
APACHE2_OPTS="-D NAGIOS"Si vous désirez utiliser les fichiers d’exemples contenus dans le package alors faites ce qui suit :
# cd /etc/nagios
# cp /usr/share/doc/nagios-core-1.2-r4/sample-configs/* .
# gunzip *.gzEt enlevez "-sample" aux noms de tous les fichiers.
Sinon vous pouvez prendre les miens, qui sont moins renseignés mais fonctionnels.
Rendons-nous dans le repertoire /etc/nagios où nous téléchargerons une archive contenant mes fichiers de configurations :
# cd /etc/nagios
# wget http://babykart.free.fr/etc_nagios/etc_nagios_10112005.tar.bz2
# tar -xvjf etc_nagios_10112005.tar.bz2Maintenant, nous allons créer un fichier /usr/nagios/sbin/.htaccess afin de restreindre l’utilisation des scripts .cgi aux utilisateurs authentifiés :
# vi /usr/nagios/sbin/.htaccess
et mettez-y les lignes suivantes :
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios/htpasswd.users
AuthGroupFile /dev/null
<Limit GET POST>
require valid-user
</Limit>Créons l’utilistateur nagiosadmin puisque c’est celui-ci qui est renseigné dans le fichier /etc/nagios/cgi.cfg :
# htpasswd2 -b /etc/nagios/htpasswd.users nagiosadmin pass
Vous pouvez créer d’autres utilisateurs, mais n’oubliez pas de leur assigner des droits en les insérant dans le fichier /etc/nagios/cgi.cfg.
Une dernière chose : afin de pouvoir éxecuter les commandes concernant les machines et services via l’interface web, il va falloir modifier certains droits sur le repertoire /var/nagios/rw :
# mkdir /var/nagios/rw
# groupadd nagioscmd
# usermod -g nagioscmd nagios
# usermod -g nagioscmd apache
# chown nagios:nagioscmd /var/nagios/rw
# chmod u+rwx /var/nagios/rw
# chmod g+rwx /var/nagios/rw
# chmod g+s /var/nagios/rwPassons à la personnalisation de nagios.
Les fichiers /etc/nagios/hosts.cfg et /etc/nagios/hostgroups.cfg contiennent les informations relatives à vos machines, modifiez les en conséquences, organisez les groupes selon vos besoins.
Faites de même avec le fichier /etc/nagios/services.cfg qui contient les instructions de contrôle des services par machine.
Le fichier /etc/nagios/misccommands.cfg contient les commandes qui servent à vous alerter.
Le fichier /etc/nagios/checkcommands.cfg contient les commandes que lancera nagios pour contrôler vos services.
Le fichier /etc/nagios/resource.cfg quant à lui stock les variables des répertoires des binaires auxquels vous faites appel.
Pour information, dans le fichier /etc/nagios/services.cfg, le groupe de machines SERVEURS est le seul dont vous recevrez une notification par mail si une machine venait à "tomber"... Par ailleurs, les check_ping se font toutes les 15 minutes...
Une fois que vous aurez terminer la personnalisation de la configuration, il ne reste plus qu’à lancer les démons :
# /etc/init.d/nagios start && /etc/init.d/apache2 start
En cas d’érreur au lancement de nagios, ce dernier vous indiquera le fichier de configuration qui n’est pas correctement rempli.