28 Juin

Nagios 4.0.x sur Debian & Nginx

Nagios est un logiciel de supervision destiné à contrôler un ou plusieurs serveurs afin de remonter d’éventuels problèmes avant que les clients, utilisateurs, etc. ne le fassent. Il peut envoyer des notifications de différentes façons (email, SMS, messagerie instantanée, etc…). Les informations d’état courants, les historiques et les rapports peuvent être consultés à partir d’un simple navigateur.

Nagios est capable entre autre de :

    vérifier les services réseau (SMTP, HTTP, FTP, etc.)
    surveiller les ressources des hôtes (charge CPU, RAM, espace disque, etc.)
    contrôler les équipements (CPU, ventilateurs, etc.)

Cet article, le premier de la série, présente l’installation de Nagios Core, le moteur du service accompagné d’une interface web, sur Debian 7.5 et un serveur Nginx. Il s’inscrit dans la continuité de la série des Outils Web d’Administration et en reprend donc la logique de configuration (zone d’admin ssl, etc.). N’hésitez pas à relire l’introduction pour plus de détails.

Environnement

OS : Debian 7.5 stable (Wheezy) (64bits)
Serveur Web : nginx/1.6.0
PHP : 5.5.13

J’ai réalisé ce tutoriel sur un VPS classic d’OVH à 2.4€ par mois. C’est un environnement parfait pour faire tourner ses outils d’administration et de supervision à condition de ne pas avoir des centaines de serveurs.

Pré-Requis à la Compilation de Nagios

On commence par une rapide installation des quelques packages nécessaires à la compilation.

Et on crée un utilisateur Nagios. Il s’agit de l’utilisateur du service Nagios qui tournera en tâche de fond sur le serveur :

Compilation de Nagios

On récupère les sources de la dernière version de Nagios 4 sur SourceForge. A l’heure actuelle, il s’agit de la version 4.0.7 là où Debian n’intègre dans ses packages que la 3.4.1 !
Toutes les commandes suivantes sont passées depuis le répertoire /root.


On configure dans un premier temps la compilation de Nagios avec les options suivantes.


Et on compile enfin Nagios.


Il ne reste plus qu’à suivre les instructions ci-dessus pour installer Nagios :

Oups, Apache n’est pas installé sur le serveur d’où l’erreur avec make install-webconf. Remarquez, si vous souhaitez utiliser apache, il n’est jamais trop tard pour un apt-get purge nginx && apt-get install apache mais ça serait bien dommage.

On lance maintenant le service Nagios, et si tout se passe bien :

Configurer Nginx pour Nagios

En s’inspirant de la config apache qui se trouve dans ./sample-config/httpd.conf on va recréer une config Nginx. Nagios utilise des scripts CGI. En plus des packages installés dans l’introduction, c’est à dire nginx, php5-fpm et apache2-utils essentiellement, il faut donc rajouter les packages suivants :

Je présente ici une version complète de ma config Nginx mais épurée des précédents ajouts de la série Outils Web d’Administration. Honnêtement, elle devenait trop longue pour rester claire. La configuration suivante est donc fonctionnelle telle qu’elle mais s’intègre très bien aux précédents éléments de configuration fournis jusqu’à maintenant.

Un lien pour charger une version de /etc/nginx/ssl_params.

On peut maintenant accéder à son interface Nagios avec l’url, dans mon cas, https://admin-tools.writesthisblog.com/nagios/. Normalement, vous voyez maintenant régulièrement le message d’erreur suivant :

It appears as though you do not have permission to view information for any of the hosts you requested…
If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI and check the authorization options in your CGI configuration file.

Configurer les Contrôles d’Accès à Nagios

Le fichier de configuration des autorisation d’accès à Nagios est /usr/local/nagios/etc/cgi.cfg. Deux options se présentent.

Désactiver complètement les autorisations au niveau de Nagios !
Oui, c’est une très mauvaise idée en général, sauf que, dans ce tuto, l’accès à la zone d’admin est contrôlé par login et mot de passe. Cette option ne laisse donc l’accès complet à Nagios qu’aux clients authentifiés de la zone.

Gérer finement les autorisations
C’est à dire paramétrer selon les utilisateurs de la zone d’admin. Attention les utilisateurs ici sont bien ceux déclarés dans les contrôles d’accès de Nginx qui passe ensuite au CGI leur login.

Par défaut, l’utilisateur nagiosadmin dispose de toutes les autorisations. On peut donc simplement rajouter nagiosadmin aux utilisateurs de la zone d’admin :

On peut aussi rajouter user1 ou user2 avec des accès partiels paramétrés dans cgi.cfg, bref toutes les combinaisons de configurations sont possibles.

Configuration de Nagios

Tous les fichiers de configuration de Nagios se trouvent dans le répertoire /usr/local/nagios/etc/. Par défaut, les configurations marchent assez bien pour démarrer avec Nagios. Il faut juste modifier dans le fichier /usr/local/nagios/etc/objects/contacts.cfg l’adresse email de nagiosadmin, voir créer les contacts pour chaque utilisateur déclaré au chapitre précédent.
Il va de soi que le serveur portant Nagios doit être capable d’envoyer des mails, par exemple en utilisant exim.

Prochaine Étape

On a donc maintenant Nagios Core fonctionnel et ce n’est que le début. Dans un prochain article, je présenterai l’installation et la configuration de quelques plugins et addons afin de pouvoir commencer à superviser tous ses différents serveurs.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.