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.

hpsplash5b

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 :

  1. Mettre à jour le système
     apt-get update && apt-get upgrade -y
  2. Installer Nginx avec le support PHP comme expliqué ici.
  3. Installer les outils pour l’installation de Nagios
    apt-get install libperl-dev libpng12-dev libgd2-xpm-dev build-essential php5-gd libgd2-xpm
  4. 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
  5. 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

  6. 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

  7. 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
  8. Lancer la compilation
    make all
  9. 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
  10. Installer les exemples de configuration
    make install-config
  11. 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 :
    1__ssh_et_Nagios_on_nginx___Ubuntu_12_04___idevit_nlDonc 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
  12. Si vous avez une adresse email spéciale, c’est dans le fichier /etc/nagios/objects/contacts.cfg qu’il faudra la changer.
  13. 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.
  14. Pour contrôler que votre configuration est correcte :
    /opt/nagios/nagios/bin/nagios -v /etc/nagios/nagios.cfg
  15. Installer FCGI
    apt-get install spawn-fcgi fcgiwrap
  16. 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;
            }
    }
  17. Activer la configuration
    ln -s /etc/nginx/sites-available/nagios /etc/nginx/sites-enabled/nagios
  18. 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 :

Nagios_Core

Bonne surveillance 🙂

Vous aimez cet article ? Supportez-moi sur Patreon!

Vous aimerez aussi...