Raspberry Pi, Nagios et Nginx pour du monitoring
Après une série d’articles sur les outils de surveillance (Monitorix, Zabbix, Rasp-control, RPi-Monitor), un nouvel article sur un outil connu : Nagios.
Si vous utilisez apache, vous pouvez passer par le repository avec la commande
apt-get install nagios3
Mais si vous ne voulez pas avoir un serveur web relativement lourd, et comme je suis fan de Nginx, alors vous allez devoir suivre les instructions suivantes :
- Mettre à jour le système
apt-get update && apt-get upgrade -y
- Installer Nginx avec le support PHP comme expliqué ici.
- Installer les outils pour l’installation de Nagios
apt-get install libperl-dev libpng12-dev libgd2-xpm-dev build-essential php5-gd libgd2-xpm
- Télécharger Nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.2.tar.gz tar zxvf nagios-4.0.2.tar.gz cd nagios-4.0.2
- L’installation va avoir besoin d’un utilisateur et un groupe nagios
adduser --system --no-create-home --disabled-login --group nagios usermod -a -G nagios www-data
On ajoute le groupe nagios en groupe secondaire à l’utilisateur www-data
- Il faut aussi un utilisateur et un groupe pour le lancement des commandes
groupadd nagcmd usermod -G nagcmd nagios usermod -a -G nagcmd www-data
On ajoute le groupe nagcmd en groupe secondaire à l’utilisateur www-data
- Vous pouvez lancer la configuration
./configure --prefix /opt/nagios/nagios \ --sysconfdir=/etc/nagios \ --with-nagios-user=nagios \ --with-nagios-group=nagios \ --with-command-user=nagios \ --with-command-group=nagcmd
- Lancer la compilation
make all
- Installer les différents éléments, puis les fichiers de démarrage, de ligne de commande et de configuration
make install make install-init && make install-commandmode && make install-config cp functions /etc/nagios/
J’ai du copier le fichier functions nécessaire au script de démarrage dans /etc/nagios. D’ailleurs vous devez modifier /etc/init.d/nagios en remplaçant
. /etc/rc.d/init.d/functions
par
. /etc/nagios/functions
- Installer les exemples de configuration
make install-config
- L’utilisation de Nginx oblige de passer par un script python pour gérer le fichier des mots de passe. L’ami Google m’a donné plusieurs résultats mais le seul probant :
cd wget http://trac.edgewall.org/export/10791/trunk/contrib/htpasswd.py
Le résultat :
Donc pour notre installation : user nagiosadmin (il est utilisé dans les fichiers par défaut), son mot de passe password (à changer bien évidemment !)
python htpasswd.py -c -b /etc/nagios/htpasswd.users admin password
- Si vous avez une adresse email spéciale, c’est dans le fichier /etc/nagios/objects/contacts.cfg qu’il faudra la changer.
- Pour vos logs par défaut c’est défini dans le fichier /etc/nagios/nagios.cfg. La valeur est /opt/nagios/nagios/var/nagios.log. Pratique en cas de problème.
- Pour contrôler que votre configuration est correcte :
/opt/nagios/nagios/bin/nagios -v /etc/nagios/nagios.cfg - Installer FCGI
apt-get install spawn-fcgi fcgiwrap
- Configurer Nginx avec le fichier suivant :
server { listen 8080; server_name nagios; access_log /var/log/nginx/nagios.access.log; error_log /var/log/nginx/nagios.error.log info; root /opt/nagios/nagios/share; index index.php index.html; auth_basic "Nagios Restricted Access"; auth_basic_user_file /etc/nagios/htpasswd.users; location /stylesheets { alias /opt/nagios/nagios/share/stylesheets; } location /nagios/js { alias /opt/nagios/nagios/share/js; } location /nagios/stylesheets { alias /opt/nagios/nagios/share/stylesheets; } rewrite ^/nagios/images/(.*)$ /images/$1 break; location ~ \.cgi$ { root /opt/nagios/nagios/sbin; rewrite ^/cgi-bin/nagios3/(.*)$ /$1; rewrite ^/nagios/cgi-bin/(.*)$ /$1; include /etc/nginx/fastcgi_params; fastcgi_param AUTH_USER $remote_user; fastcgi_param REMOTE_USER $remote_user; fastcgi_param SCRIPT_FILENAME /opt/nagios/nagios/sbin$fastcgi_script_name; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; } } - Activer la configuration
ln -s /etc/nginx/sites-available/nagios /etc/nginx/sites-enabled/nagios
- Relancer Nginx
service nginx restart
Vous voilà avec votre Nagios en ligne ! Rendez-vous avec votre navigateur sur le port de votre configuration. Vous devrez saisir le login nagiosadmin et mot de passe que vous avez utilisé lors de l’installation :
Bonne surveillance 🙂






