Wiki » Historique » Révision 53
Révision 52 (Patrice Nadeau, 2015-01-03 15:53) → Révision 53/127 (Patrice Nadeau, 2015-02-08 09:45)
h1. 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/ {{TOC}} h2. Installation h3. Requis * Un serveur [[guides_opensuse:wiki|openSUSE]] OU un BeagleBone Black avec Debian/Ubuntu. [[guides_opensuse:wiki|openSUSE]], * Apache installé et configuré, * Un serveur de courriel (Postfix ou Exim) installé et configuré, * Une adresse IP fixe, * Une entré DNS (enregistrement A ou CNAME). > Un serveur physique est fortement recommandé. Un BeagleBone Black peut être une belle alternative. h3. Installation de Nagios h4. [[from source|À partir des sources]] (nouvelle méthode) h4. [[from yast|À partir de YaST]] (ancienne méthode) h3. Fichiers de configuration L'emplacement des fichiers dépend de la méthode l’installation précédente. 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 h2. 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 (!) précédant l’item. * Les items d’une liste sont séparés par une virgule (,). h3. Fichiers d'objets Les fichiers de configuration sont situés dans *objects*. Les principaux sont : * *templates.cfg* * *commands.cfg* : commandes, scripts a exécuter * *contacts.cfg* : contacts pour les alarmes * *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. h3. 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> h3. 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> h3. 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> h2. Agents h3. Linux Problème #31 Sous Linux, installer *nagios-nrpe* > Le « repository » n'existe plus sous openSUSE 13.2. Il faut installer *nagios-plugins* à partir de http://software.opensuse.org/ <pre><code class="bash"> zypper install nagios−nrpe </code></pre> Ouvrir dans le pare feu les ports suivants : * NRPE service (TCP 5666) Éditer le fichier */etc/nrpe.cfg* et modifier les lignes suivantes : * *allowed_hosts* : indiquer l’adresse IP ou le FQDN(Fully Qualified Domain Name) du serveur Nagios Configuration du service <pre><code class="bash"> systemctl enable nrpe.service systemctl start nrpe </code></pre> h3. Windows h2. Modules supplémentaires h3. UPS > La version USP de la compagnie APC Pre-requis : [[guides_opensuse:ups|UPS sous openSUSE]] h4. 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> h4. 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>