Installation de Nagios sur FreeBSD9.0

Written by Sebastien Lambot on . Posted in Articles techniques, Réseaux, Unix / Linux

Nagios est un outil permettant de monitorer des équipements réseau. Ce premier article est consacré à son installation « from scratch » sur une machine équipée de FreeBSD 9.0.

Pré-requis

On s’assure d’abord que l’arbre des ports est à jour.

portsnap fetch update

On ajoute une ligne dans le /etc/hosts qui ressemble à:

127.0.0.1 hostname hostname.my.domain

pour éviter d’avoir une erreur du genre « unable to qualify my own domain name ».

Base de données – MySQL 5.5

On installe MySQL.

cd /usr/ports/databases/mysql55-server
make
make install clean
cd /usr/ports/databases/mysql55-client
make
make install clean

On édite ensuite le fichier /etc/rc.conf pour que MySQL démarre au boot en lui ajoutant la ligne:

mysql_enable="YES"

et on lance le daemon:

/usr/local/etc/rc.d/mysql-server start

On effectue ensuite un peu de nettoyage:

mysqladmin -u root password 'votremotdepasse'
mysql -u root -p
mysql> DROP DATABASE test;
mysql> DELETE FROM mysql.user WHERE user = '';
mysql> FLUSH PRIVILEGES;

Serveur web – Apache 2.2

On installe Apache.


cd /usr/ports/www/apache22
make config
make
make install clean

On édite ensuite le fichier /etc/rc.conf pour démarrer Apache au boot en lui ajoutant la ligne:

apache22_enable="YES"

On configure le fichier /usr/local/etc/apache22/httpd.conf (sans oublier d’ajouter le nom du serveur dans le DNS) et on lance le daemon:

/usr/local/etc/rc.d/apache22 start

On peut tester Apache en allant sur http://IP ou http://hostname, ce qui devrait afficher « It works! ».

Le directory correspondant sur le serveur est /usr/local/www/apache22/data .

Pour éviter une erreur propre à FreeBSD, il faut aussi ajouter au /boot/loader.conf la ligne:

accf_http_load="YES"

que l’on démarre manuellement avec la commande

kldload accf_http

PHP5 pour Apache

On installe PHP5 en sélectionnant « Build Apache Module » lors du make config.

cd /usr/ports/lang/php5
make config
make install clean

On installe les extensions PHP5 en sélectionnant le support pour les bases de données MySQL et MySQLi.

cd /usr/ports/lang/php5-extensions
make config
make install clean

Il faut ensuite créer le fichier de configuration de PHP à partir d’un template:

cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

Et configurer Apache en éditant le fichier /usr/local/etc/apache22/httpd.conf pour qu’il prenne en compte PHP:

  • Ajouter la ligne pour le chargement du module:
    LoadModule php5_module libexec/apache22/libphp5.so
  • Modifier la ligne
    DirectoryIndex index.html

    en

    DirectoryIndex index.html index.htm index.php
  • Ajouter dans le module <IfModule mime_module> la ligne suivante:
    AddType application/x-httpd-php .php

Installation de Nagios 3.4.1

On installe Nagios.

cd /usr/ports/net-mgmt/nagios
make
make install clean

Et on choisit d’installer les plugins MYSQL et NETSNMP lors de l’installation.

On ajoute Nagios au fichier /etc/rc.conf pour qu’il démarre au boot:

nagios_enable="YES"

On crée les fichiers de configuration dans /usr/local/etc/nagios/:

cd /usr/local/etc/nagios/
cp cgi.cfg-sample cgi.cfg
cp nagios.cfg-sample nagios.cfg
cp resource.cfg-sample resource.cfg

cd /usr/local/etc/nagios/objects/

cp commands.cfg-sample commands.cfg
cp contacts.cfg-sample contacts.cfg
cp localhost.cfg-sample localhost.cfg
cp printer.cfg-sample printer.cfg
cp switch.cfg-sample switch.cfg
cp templates.cfg-sample templates.cfg
cp timeperiods.cfg-sample timeperiods.cfg

Modifiez le fichier nagios.cfg pour que le fichier de log soit dans /var/spool/nagios/ et ajoutez les droits d’écriture pour le groupe sur le fichier nagios.log.

On vérifie ensuite qu’il n’y a pas d’erreurs dans les fichiers de config en lançant un « pre-flight check »

nagios -v /usr/local/etc/nagios/nagios.cfg

On définit un mot de passe pour l’utilisateur nagiosadmin

htpasswd -c /usr/local/etc/nagios/htpasswd.users nagiosadmin

On ajoute ensuite Nagios dans la configuration d’apache en éditant le fichier /usr/local/etc/apache22/httpd.conf et en y ajoutant les lignes suivantes à la fin:

##########NAGIOS###########
ScriptAlias /nagios/cgi-bin/ /usr/local/www/nagios/cgi-bin/
Alias /nagios /usr/local/www/nagios/
<Directory /usr/local/www/nagios>
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUSerFile /usr/local/etc/nagios/htpasswd.users
Require valid-user
</Directory>
<Directory /usr/local/www/nagios/cgi-bin>
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUSerFile /usr/local/etc/nagios/htpasswd.users
Require valid-user
</Directory>
##########NAGIOS#############

Rédémarrez Apache et Nagios

service apache22 restart
service nagios restart

Et vérifiez que Nagios est accessible à l’adresse http://hostname/nagios

Tags: ,

Trackback from your site.

Leave a comment

You must be logged in to post a comment.