FreeBSD étant, à mon humble avis, le meilleur “operating system” pour les fonctions réseaux, il était normal qu’un blog comme le mien s’intéresse à l’installation de Nagios, l’outil de supervision open-source, sur ce système.
Le but de ce tutoriel est d’installer Nagios version 3.0.6 sur un serveur FreeBSD 7.0. Je pars sur l’hypothèse ou le lecteur a des connaissances de bases sur FreeBSD.
Avant de commencer…
On s’assure que notre FreeBSD est à jour au niveau de l’arbre des ports (”port tree”).
portsnap fetch
portsnap update
On installe les pre-requis
Avant de se lancer dans l’installation de Nagios, un certain nombre de logiciels doivent être présent sur votre système.
Serveur et client - MySQL
Le serveur MySQL hébergera la base de donnée ou Nagios stockera les informations sur les réseaux supervisés.
cd /usr/ports/databases/mysql50-server
make
make install
make cleancd /usr/ports/databases/mysql50-client
make
make install
make cleancd /usr/ports/databases/mysql50-scripts
make
make install
make clean
On édite ensuite le fichier /etc/rc.conf pour y ajouter la ligne suivante:
mysql_enable=”YES”
Puis on lance le daemon:
/usr/local/etc/rc.d/mysql-server start
Enfin on effectue les configurations de base:
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 - Lighttpd
J’ai choisi d’utiliser Lighttpd en lieu et place d’Apache pour hébérger l’interface Web de Nagios. En effet, ce seveur est moins gourmant et tout aussi rapide.
cd /usr/ports/www/lighttpd
make
make install
make clean
Pour une installation plus détaillée (avec support PHP), je vous conseille la lecture de ce billet (en Anglais).
On édite ensuite le fichier /etc/rc.conf pour y ajouter la ligne suivante:
lighttpd_enable=”YES”
On configure le serveur:
vi /usr/local/etc/lighttpd.conf
server.document-root = “/usr/local/www/”
# Nagios
alias.url = (
“/nagios/cgi-bin” => “/usr/local/www/nagios/cgi-bin”,
“/nagios” => “/usr/local/www/nagios”
)$HTTP["url"] =~ “^/nagios/cgi-bin” {
cgi.assign = ( “” => “” )
}$HTTP["url"] =~ "^/nagios/cgi-bin" { auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/usr/local/etc/nagios/passwd" auth.require = ( "" => ( "method" => "basic", "realm" => "nagios", "require" => "user=nagiosadmin" ) ) } $HTTP["url"] =~ "^/nagios" { auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/usr/local/etc/nagios/passwd" auth.require = ( "" => ( "method" => "basic", "realm" => "nagios", "require" => "user=nagiosadmin" ) ) }
Avant de lancer le serveur il faut créer le fichier de log avec les bon droits:
touch /var/log/lighttpd.error.log
chown www:www touch /var/log/lighttpd.error.logtouch /var/log/lighttpd.access.log
chown www:www /var/log/lighttpd.access.log
Puis on lance le daemon:
/usr/local/etc/rc.d/lighttpd start
La configuration de Lighttpd est la suivante par défaut:
- Fichier de configuration: /usr/local/etc/lighttpd.conf
- Emplacement par défaut du site (”document root”) : /usr/local/www/data/
- Utilisateur et groupe avec lequel Lighttpd est lancé: www
Installation de Nagios à partir des ports
On doit dans un premier temps se rendre dans le répertoire /usr/port/net-mgmt/nagios. On vérifie la version que l’on va installer en consultant le fichier distinfo:
cd /usr/port/net-mgmt/nagios
cat distinfo
MD5 (nagios-3.0.6.tar.gz) = 900e3f4164f4b2a18485420eeaefe812
SHA256 (nagios-3.0.6.tar.gz) = bedeb2c1ffbf7525ec19ac84a66bad60a19d2b0544cbf050a53bfc363c09bb22
SIZE (nagios-3.0.6.tar.gz) = 2735504
On lance ensuite l’installation du serveur et des plugins Nagios:
cd /usr/port/net-mgmt/nagios
make WITH_MYSQL=”YES”
> EMBEDDED_PERL = X
make install
make cleancd /usr/port/net-mgmt/nagios-plugins
make
make install
On édite ensuite le fichier /etc/rc.conf pour y ajouter la ligne suivante:
nagios_enable=”YES”
La configuration initiale est la suivante:
- Script de démarrage du service Nagios: /usr/local/etc/rc.d/nagios
- Localisation du serveur (executable): /usr/local/bin/nagios
- Répertoire de configuration: /usr/local/etc/nagios
- Répertoire des plugins: /usr/local/libexec/nagios
- Répertoire racine pour le service Web: /usr/local/www/nagios
Avant de lancer le serveur, il faut aller dans le répertoire de configuration et configurer votre serveur en fonction de vos besoins. Vous pouvez lire le billet suivant pour vous aider.
Une fois la configuration faite et validée par la commande suivante:
/usr/local/bin/nagios -v /usr/local/etc/nagios/nagios.cfg
…
Total Warnings: 0
Total Errors: 0
Il faut ensuite créer le fichier passwd préhalablement configuré dans Lighttpd:
cd /usr/ports/www/rubygem-htauth
make
make install
make cleanhtpasswd-ruby -c /usr/local/etc/nagios/passwd admin
Enfin on lance le daemon Nagios:
/usr/local/etc/rc.d/nagios start
Vous pouvez tester le tout en utilisant un navigateur Web et en saisissant l’URL: http://<adresseIPduserveur>/nagios/
Et voili, c’est beau, c’est stable, c’est simple, c’est BSD !!!
Quelques commandes pour finir
Vérifier la syntaxe des fichiers de configurations:
/usr/local/bin/nagios -v /usr/local/etc/nagios/nagios.cfg
Arrêter le daemon Nagios:
/usr/local/etc/rc.d/nagios start
Relancer le daemon Nagios:
/usr/local/etc/rc.d/nagios restart