Projet

Général

Profil

Wiki » Historique » Révision 115

Révision 114 (Patrice Nadeau, 2018-04-15 13:47) → Révision 115/127 (Patrice Nadeau, 2018-04-15 13:53)

# Nagios 

 Nagios est un système de surveillance (monitoring) d’ordinateurs, imprimantes, routeurs et de services logiciels. 
 Il existe en version payante (Nagios IX) et « open source » (Nagios Open Source).  
 C’est cette dernière version qui seras discutée ici. 

 >Ce guide est une introduction et ne ce veux en aucun cas une formation complète. Pour plus d’informations, consulter le site http://www.nagios.org/ 

 {{lastupdated_at}} {{lastupdated_by}} 

 --- 

 {{TOC}} 

 ## Installation 

 ### Requis 

 * Un serveur  
 ** [[guides_opensuse:wiki|openSUSE]] 
   
 OU 
   
 ** [[guides_ubuntu:wiki|Ubuntu]] (Voir #37 pour installation avec un BeagleBone Black) 
 * [[guides_opensuse:Apache|Apache]] fonctionnel avec  
 ** _mod_version_, 
 ** _mod_php5_, 
 * Un serveur de courriel ([[guides_opensuse:Postfix|Postfix]] ou Exim) fonctionnel, 
 * Une adresse IP fixe, 
 * Une entré DNS (enregistrement A ou CNAME). 
 > Un ordinateur physique est fortement recommandé. 

 ### Installation de Nagios 

 #### [[from source|À partir des sources]] (nouvelle méthode) 

 Fonctionne pour openSUSE et Debian/Ubuntu 

 ## Modification de l'adresse d’envoi 

 Par défaut, les alertes vont provenir de _nagios@nagios.domain.tld_. 
 Certains système de courriel peuvent bloquer ces messages si le sous-domaine _nagios.domain.tld_ n'existe pas. 

 Pour changer l'adresse « from », modifier le fichier *etc/objects/command.cfg* pour les commandes : 

 * notify-host-by-email 
 * notify-service-by-email 

 Ajouter à la fin de la ligne de commande (_command_line_) : 

 <pre><code class="bash"> 
 -- -f nagios@domain.tld 
 </code></pre> 

 ## Utilisation 

 Typographie dans les fichiers 

 * Un commentaire sur une ligne complète commence par un croisillon (#). 
 * Un commentaire à la fin d’une ligne commence par un point-virgule (;). 
 * Une exclusion est exprimé par un point d’exclamation (<notextile>!</notextile>) précédant l’item. 
 * Les items d’une liste sont séparés par une virgule (,). 

 ### Fichiers de configuration 

 L'emplacement des fichiers dépend de la méthode l’installation précédente 

 * openSUSE (YaST) : _/etc/nagios_ 
 * sources : _/usr/local/nagios_ 

 Les principaux fichiers de configuration général sont : 

 * *nagios.cfg* : configuration de Nagios lui-même 
 * *ressources.cfg* : liste des macros, usagers et mots de passe 

 

 ### Fichiers d'objets 

 Les fichiers de configuration sont situés dans le répertoire **objects**. *objects*. 

 Les principaux sont : 

 * **templates.cfg** *templates.cfg* 
 * **commands.cfg** *commands.cfg* : commandes, scripts à exécuter 
 * **contacts.cfg** *contacts.cfg* : contacts pour les alarmes 
 * **timeperiods.cfg** *timeperiods.cfg* : les périodes de vérifications 

 L’utilisation de gabarits (« templates ») est fortement recommandée.  
 Un item dans un gabarit peux être redéfinis. 
 Ceci permet d’avoir des gabarits ayant les options par défaut et seulement les exceptions sont à définir dans les sections hôtes, groupe et services. 

 
 > Les explications suivantes prennent pour acquis l’utilisation des gabarits fournis avec Nagios. 

 

 ### Hosts 

 "Liste complète des paramètres pour hôte":http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html#host 
 Liste des items : 

 * *use* : le nom du gabarit, contenu dans template.cfg 
 * *host_name* : nom de l’hôte, seras utilisé dans le reste de la configuration. 
 * *alias* : description du hôte. 
 * *address* : l’adresse IP ou le FQDN du hôte. 
 * *icon_image* (facultatif) : une image représentant le serveur.  
 * *action_url* (facultatif) : 

 Exemple : 

 <pre><code class="nagios"> 
 define host { 
     use        linux−server 
     hostname linux1 
     alias      Serveur Linux 1 
     address    linux1.mydomain.com 
 } 
 </code></pre> 

 ### Groups 

 "Liste complète des paramètres pour les groupes d’hôtes":http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html#hostgroup 

 Liste des items minimum : 

 * *hostgroup_name* : nom du groupe. 
 * *alias* : description du groupe. 
 * *members* : liste des hôtes dans ce groupe. 

 Exemple : 

 <pre><code class="nagios"> 
 define hostgroup { 
     hostgroup_name linux−servers 
     alias            Linux servers 
     members          linux1 
 } 
 </code></pre> 

 ### Services 

 "Liste complète des paramètres pour les services":http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html#service 

 Liste des items minimum : 

 * *use* : le nom du gabarit. 
 * *host_name* : noms des hôtes utilisant ce service. 
 * *service_description* : description du service. 
 * *check_command* : commande à effectuer. Définis dans *commands.cfg*. 

 Exemple : 

 <pre><code class="nagios"> 
 define service{ 
     use                      local−service 
     host_name                localhost 
     service_description      PING 
     check_command            check_ping!100.0,20%!500.0,60% 
 } 
 </code></pre> 

 ## NRPE 

 ### Modules supplémentaires 

 [[NRPE]] 

 ## Agents 

 ### GNU/Linux 

 Installer *nagios-nrpe* 

 #### Version déjà compilée 

 opensSUSE 

 <pre><code class="bash"> 
 wget http://download.opensuse.org/repositories/openSUSE:/Leap:/42.2/standard/x86_64/nrpe-2.15-9.1.x86_64.rpm 
 rpm -Uhv nrpe-2.15-9.1.x86_64.rpm 
 </code></pre> 

 #### À partir des sources 

 Voir [[NRPE]] 

 ### Windows 

 À venir ... 

 ## Modules supplémentaires 

 ### UPS 

 USP de la compagnie APC avec _apcupsd_. 

 Pre-requis : [[guides_opensuse:ups|UPS sous openSUSE]] 

 #### Installation 

 <pre><code class="bash"> 
 wget -O check_apcupsd "http://exchange.nagios.org/directory/Plugins/Hardware/UPS/APC/check_apcupsd/visit" 
 chmod +x check_apcupsd 
 mv check_apcupsd /usr/local/nagios/libexec 
 </code></pre> 

 Faire un test avec  

 <pre><code class="bash"> 
 /usr/local/nagios/libexec/check_apcupsd -w 50 -c 25 bcharge 
 </code></pre> 

 Si le message d'erreur suivant apparait _Error: /sbin/apcaccess must exist and be executable!_, exécuter 

 <pre><code class="bash"> 
 # Creer un lien symbolique vers l'executable apcaccess 
 ln -s /usr/sbin/apcaccess /sbin/apcaccess 
 </code></pre> 

 #### Configuration 

 Ajouter dans le fichier *nagios/etc/objetcs/commands.cfg* : 

 <pre><code class="text"> 
 # Définis la commande check_apcupsd 
 define command{ 
        command_name      check_apcupsd 
        command_line      $USER1$/check_apcupsd -h $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ $ARG3$ 
        } 
 </code></pre> 

 Les arguments sont 

 * _$ARG1$_ : le seuil d'avertissement (warning) 
 * _$ARG2$_ : le seuil critique (critical) 
 * _$ARG3$_ : un des test suivants (liste complète avec _apcupsd_ sans arguments): 
 ** *bcharge* : charge des batteries, en pourcent 
 ** *itemp* : température interne, en Celsius 
 ** *loadpct* : charge en pourcent 
 ** *timeleft* : : temps restant selon la charge actuelle 

 Dans le fichier *nagios/etc/objects/localhost.cfg*, inscrire les test à effectuer. 

 >Ex. : Vérification de la charge restante, 50% étant un avertissement et 25% critique. 

 <pre><code class="text"> 
 # Définis le service de charge restante du UPS 
 define service{ 
         use                       local-service    
         host_name                 localhost 
         service_description       UPS charge left     
         check_command             check_apcupsd!50!25!charge 
         } 
 </code></pre> 

 ## Nagstatmon 

 Logiciel de notification Nagios pour poste de travail. 

 Télécharger à partir de https://nagstamon.ifw-dresden.de/download 

 ### GNU/Linux 

 #### openSUSE 

 Utilisé la version disponible à http://software.opensuse.org/package/nagstamon?search_term=nagstamon 

 <pre><code class="bash"> 
 sudo zypper install nagstamon-1.0.1-1.1.noarch.rpm 
 </code></pre> 


 ## [[Plugins maison]]