nagios_screenshot



Pour ceux qui ne connaîtraient pas, Nagios est un système assez répandu de monitoring.

Pour résumer : Un serveur principal centralise les informations recueillies sur les machines du parc, les affiche via un service Web et génère des alertes (par mail principalement) lorsque les valeurs reçues sont hors limites ou les machines absentes.
Au fil du temps, se sont ajoutées des fonctions statistiques (généralement basées sur l'historique des valeurs relevées) et donc des logiciels annexes comme Centreon qui produisent de jolis graphiques.

Même si des paquets existent sur les dépôts Tiers, nous avons fait le choix de compiler proprement, de manière à bénéficier des dernières mises à jour et d'un upgrade possible de Nagios (au bon vouloir de l'admin qui en aura la gestion), tout en gardant un Howto accessible au plus grand nombre.


Note 1 : Si vous recherchez un simple outil statistique facile à installer et capable de générer des graphiques, jetez un œil à Monitorix sur cette page. Il répondra peut-être mieux à vos besoins (On peut utiliser les deux en parallèle, Nagios pour l'état en temps réel et les Alertes, Monitorix pour les graphiques et autres stats).

Note 2 : La mise en place d'un serveur Nagios se fait généralement une fois pour toutes. Même si notre exemple est peu gourmand en ressources, veillez à dimensionner correctement votre machine (virtuelle au besoin) et prenez le temps de comprendre chaque modification et commande. Ne "sautez" pas certaines parties du tuto si vous ne maîtrisez pas la configuration de Nagios et ses spécificités.



Cette première page décrit l'installation de Nagios Core ainsi que des plugins indispensables pour le monitoring d'autres postes Linux ou Windows.

Dans la seconde partie, aperçu de la gestion des utilisateurs qui auront accès à l'interface Web mais aussi installation sur les clients Linux (NRPE) et Windows (NSClient++).

Dans la troisième section, création des premiers fichiers de configuration du serveur Nagios et la déclaration des appareils visibles sur le réseau.



Pré requis matériels et informations de base


  • Tuto réalisé sur une machine on ne peut plus basique : 1.5 Ghz mono processeur, 512 Mo de ram et 20 Go de disque dur (évolutif si besoin), disposant d'une carte réseau gigabit (intel E1000 dans notre cas). Configuration identique pour une machine physique ou virtuelle.
  • Une CentOS 5.9 32 bits, "from scratch", totalement à jour via yum, sans dépôts tiers installés et sans bureau Gnome.
  • Une machine à café disposant d'une petite réserve de cartouches ;-)
  • Notre version compilée de Nagios s'installe par défaut dans "/usr/local/nagios/". Pour toute sauvegarde ou restauration de votre serveur, c'est ce dossier complet qu'il convient de copier (attention aux droits et UID/GID de l'user Nagios qui doivent rester identiques si vous changez de CentOS).




Pré-requis logiciels et téléchargements


  • Sur la CentOS, accessible uniquement en local, nous avons désactivé le Parefeu et SELinux via le menu "setup" du terminal :

centos_nagios_1

  • Les paquets suivants sont impératifs (en root pour toute la suite du tuto) :
# yum install gcc glibc glibc-common gd gd-devel httpd php openssl openssl-devel


  • Création de l'utilisateur (système) "nagios" (qui n'a rien à voir avec l'utilisateur qui accèdera à l'interface de monitoring) et de son mot de passe (il faudra déclarer le même sur vos clients NRPE) :
# /usr/sbin/useradd -m nagios
# passwd nagios


  • Création des groupes (système) inhérents à nagios :
# /usr/sbin/groupadd nagcmd
# /usr/sbin/usermod -a -G nagcmd nagios
# /usr/sbin/usermod -a -G nagcmd apache



Note : ce groupe (nagcmd) effectuera les commandes (check d'une machine par exemple) demandées par l'admin au travers de l'interface Web de Nagios.

  • Enfin, téléchargement des sources de "Nagios Core" puis "Nagios Plugins" et "Nrpe" dans les dernières versions disponibles au moment de la rédaction, directement depuis mgroup.fr :
# cd /tmp
# wget http://mgroup.fr/public/downloads/sources/nagios-3.5.0.tar.gz
# wget http://mgroup.fr/public/downloads/sources/nagios-plugins-1.4.16.tar.gz
# wget http://mgroup.fr/public/downloads/sources/nrpe-2.14.tar.gz



Note : Vérifiez (si besoin) la dispo de nouvelles versions ou obtenez d'autres liens de téléchargement à partir de cette page.

  • Et extraction des archives téléchargées avant d'attaquer les choses sérieuses (corrigez si vous changez de version) :
# tar xzf nagios-3.5.0.tar.gz
# tar xzf nagios-plugins-1.4.16.tar.gz
# tar xzf nrpe-2.14.tar.gz




Installation du cœur de Nagios - Silence, ça compile !


  • On rentre dans le dossier "nagios" que l'on vient d'extraire et on envoie la configuration :
# cd nagios
# ./configure --with-command-group=nagcmd


  • On compile :
# make all


  • Installation de tout ce petit monde (une ligne à la fois svp !) :
# make install
# make install-init
# make install-config
# make install-commandmode


  • Corrigez l'adresse mail "admin" dans le fichier "/usr/local/nagios/etc/objects/contacts.cfg" (ligne 35)
# vi /usr/local/nagios/etc/objects/contacts.cfg
# Vue partielle du fichier

define contact{
        contact_name             nagiosadmin         ; Short name of user
        use                      generic-contact     ; Inherit default values
        alias                    Nagios Admin        ; Full name of user

        email                    nagios@localhost    ; <<***** Votre adresse mail ici ******
        }



Note : Il s'agit de l'adresse par défaut à laquelle Nagios enverra les alertes. Ne modifiez rien d'autre sur ce fichier, ne supprimez aucune ligne. Corrigez simplement l'adresse mail !

Note 2 : Si vous avez un problème de mails sortants, une solution possible sur cet article.


  • Ceci étant fait, on peut installer le lien Apache et "commandes Web" :
# make install-webconf


  • Et créer l'utilisateur principal (avec son mot de passe) qui sera autorisé à ce connecter à l'interface Web de monitoring et pourra effectuer toutes les commandes utiles :
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin



Note : L'option "-c" permet la création automatique du fichier "/usr/local/nagios/etc/htpasswd.users" qui contient la liste des utilisateurs et les mots de passe (cryptés). Cette option n'est donc à utiliser que lors de la déclaration du premier utilisateur (ici nagiosadmin). Nous reviendrons sur ce point dans la seconde partie du tuto.

  • On redémarre Apache pour que les droits et l'utilisateur créés prennent effet:
# service httpd restart


  • Ne vous jetez pas tout de suite sur l'interface Web, installons d'abord les plugins indispensables ;-)



Installation des plugins de Nagios - Silence, ça compile encore !


  • On se déplace dans le dossier d'extraction des plugins :
# cd /tmp/nagios-plugins-1.4.16


  • Configuration avant compil :
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios


  • Et on y va :
# make
# make install


  • Même procédure pour NRPE, qui permettra le monitoring propre des machines Linux / Unix :
# cd /tmp/nrpe-2.14
# ./configure
# make all
# make install-plugin



  • Il faut ajouter la commande relative à "NRPE" à la fin du fichier "/usr/local/nagios/etc/objects/commands.cfg"
# vi /usr/local/nagios/etc/objects/commands.cfg
######
# NRPE
###### # 'check_nrpe' command definition
define command{
            command_name check_nrpe
            command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}




Attention, on y est presque !


  • On automatise le démarrage d'Apache :
# chkconfig httpd on


  • Ajout de Nagios en tant que service et démarrage automatique pour lui aussi :
# chkconfig --add nagios
# chkconfig nagios on


  • Vérification du fonctionnement de l'ensemble:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


  • Qui renvoie quelquechose comme (en fin de retour de commande) :
Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check


  • Si le résultat de la commande confirme que tout est ok, on redémarre Apache et on lance Nagios :
# service httpd restart
# service nagios start
  • Et on peut se rendre sur l'interface web pour découvrir le résultat, donc dans un navigateur :
http://ip_serveur/nagios/



centos_nagios_2


Rappel : Si vous avez suivi notre tuto ligne à ligne, le login est "nagiosadmin" et le mot de passe est celui que vous avez indiqué pour l'utilisateur principal.


La prochaine étape traitera de la gestion des utilisateurs de l'interface Nagios et des modules à installer sur les machines clientes.



Commenter ou débattre de ce tuto via le topic dédié du forum.