Installation de Nagios sur FreeBSD9.0
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
Trackback from your site.