<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://uname.pingveno.net/blog/index.php/feed/rss2/xslt" ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title># uname -a - Mot-clé - serie-monitoring-nagios-munin-puppet</title>
    <link>https://uname.pingveno.net/blog/index.php/</link>
    <atom:link href="https://uname.pingveno.net/blog/index.php/feed/tag/serie-monitoring-nagios-munin-puppet/rss2" rel="self" type="application/rss+xml" />
    <description>Le blog de uname.pingveno.net</description>
    <language>fr</language>
    <pubDate>Wed, 01 Apr 2026 16:19:15 +0200</pubDate>
    <copyright>Mathieu Pellegrin</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>Dotclear</generator>
          <item>
        <title>Le monitoring sous Debian avec Nagios et Munin (Puppet en guest star) : de A à Z - Partie 5 : NSCA</title>
        <link>https://uname.pingveno.net/blog/index.php/post/2013/10/13/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-5-%3A-NSCA</link>
        <guid isPermaLink="false">urn:md5:d2d96dc10b8ab7767c5eb69d1a427fdf</guid>
        <pubDate>Sun, 13 Oct 2013 16:04:00 +0200</pubDate>
        <dc:creator>Mathieu</dc:creator>
                  <category>Informatique</category>
                          <category>debian</category>
                  <category>guide</category>
                  <category>monitoring</category>
                  <category>munin</category>
                  <category>nagios</category>
                  <category>nsca</category>
                  <category>serie-monitoring-nagios-munin-puppet</category>
                  <category>serveur</category>
                <description>&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt; &amp;#8212; &lt;a href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/08/19/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-4-%3A-Munin&quot; rel=&quot;prev&quot;&gt;Voir l&amp;#8217;article précédent&amp;#160;: Munin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cet article est le dernier de la série.&lt;/p&gt;
&lt;p&gt;Dans l&amp;#8217;article précédent, nous avons vu comment configurer Munin pour qu&amp;#8217;il collecte des données et affiche ses graphes. Il nous reste à présent à configurer la communication entre Munin et Nagios, grâce à l&amp;#8217;agent NSCA.&lt;/p&gt;          &lt;h3&gt;Introduction&lt;/h3&gt;
&lt;h4&gt;Tests passifs, tests actifs&lt;/h4&gt;
&lt;p&gt;Nagios distingue deux type de tests à effectuer sur les hôtes, par le biais de ses déclarations de services&amp;#160;: les tests actifs et les tests passifs.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Les &lt;strong&gt;tests actifs&lt;/strong&gt; sont les tests réalisés par Nagios via un de ses plugins&amp;#160;: ça peut être le test d&amp;#8217;un port ou le contrôle de la réponse d&amp;#8217;un service. Ces tests sont synchrones (effectués à intervalle fixe).&lt;/li&gt;
&lt;li&gt;Les &lt;strong&gt;tests passifs&lt;/strong&gt; sont les tests dont les résultats sont reportés à Nagios par d&amp;#8217;autres programmes&amp;#160;: là ça sera NSCA. Ces tests sont asynchrones (effectués &amp;#8220;quand on peut&amp;#8221;, pas forcément régulièrement).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;NSCA&lt;/h4&gt;
&lt;p&gt;NSCA est littéralement «&amp;#160;Nagios Service Check Acceptor&amp;#160;». C&amp;#8217;est un démon qui tourne en arrière plan, et qui va recevoir les résultats des tests passifs, pour le retransmettre à Nagios.&lt;/p&gt;
&lt;p&gt;Pour plus de simplicité, NSCA sera installé sur la même machine que le serveur Maître de Nagios.&lt;/p&gt;
&lt;h4&gt;Munin &amp;lt;=&amp;gt; NSCA&lt;/h4&gt;
&lt;p&gt;Le serveur maître de Munin va communiquer à NSCA les résultats des tests grâce à la commande &lt;code&gt;send_nsca&lt;/code&gt;, utilisant le protocole NSCA.&lt;/p&gt;
&lt;p&gt;Pour encore plus de simplicité, nous allons supposer que le serveur maître de Munin et le serveur NSCA (et donc Nagios aussi) se trouvent sur la même machine (comme ça, pas besoin de chiffrer les communications entre Munin et NSCA).&lt;/p&gt;
&lt;h4&gt;NSCA &amp;lt;=&amp;gt; Nagios&lt;/h4&gt;
&lt;p&gt;NSCA va communiquer avec Nagios via un tube nommé, c&amp;#8217;est à dire un fichier dans lequel il va écrire, et qui va être lu par Nagios à intervalle régulier.&lt;/p&gt;
&lt;p&gt;On peut faire porter ce tube par une socket pour réaliser une installation de NCA et Nagios sur deux machines différentes, mais ce n&amp;#8217;est pas le sujet de cet article.&lt;/p&gt;
&lt;h3&gt;Installation et configuration de NSCA&lt;/h3&gt;
&lt;h4&gt;Installation&lt;/h4&gt;
&lt;p&gt;NSCA se trouve dans les dépôts&amp;#160;: &lt;code&gt;sudo apt-get install nsca&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Configuration&lt;/h4&gt;
&lt;p&gt;La configuration de NSCA se trouve dans &lt;code&gt;/etc/nsca.cfg&lt;/code&gt;. Voici les valeurs à retenir&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;#Ne jouez pas à changer ça&lt;br /&gt;pid_file=/var/run/nsca.pid&lt;br /&gt;&lt;br /&gt;# Notre master Munin se trouve sur la même machine, donc on bind sur 127.0.0.1 et ça suffit&lt;br /&gt;server_address=127.0.0.1&lt;br /&gt;&lt;br /&gt;# Il est important que cet utilisateur puisse écrire dans le tube nommé pour communiquer avec Nagios !&lt;br /&gt;nsca_user=nagios&lt;br /&gt;&lt;br /&gt;# Ce fichier spécial devra aussi être mentionné dans la configuration de Nagios, et le nsca_user doit pouvoir y écrire&lt;br /&gt;command_file=/var/lib/nagios3/rw/nagios.cmd&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Ouvrez le fichier &lt;code&gt;/etc/init.d/nsca&lt;/code&gt; et vérifiez que le &lt;code&gt;PIDFILE&lt;/code&gt; est le même que celui de la configuration&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;PIDFILE=&quot;/var/run/nsca.pid&quot;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;h3&gt;
Configuration de Munin&lt;/h3&gt;
&lt;p&gt;Ouvrez le fichier &lt;code&gt;/etc/munin/munin.conf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Normalement, vus avez déjà configuré un &amp;#8220;contact&amp;#8221; pour être avertit en cas de défaillance d&amp;#8217;un service contrôlé par Munin. Nous allons à la suite en rajouter un second&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;contact.nagios.command /usr/sbin/send_nsca -H localhost&lt;br /&gt;contact.nagios.always_send ok warning critical&lt;br /&gt;contact.nagios.max_messages 1&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Petite information qui vous fera gagner une journée de travail&amp;#160;: &lt;code&gt;max_messages&lt;/code&gt; doit être à 1 sous Debian 7. Ceci parce que le NSCA des dépôts a été mis&amp;nbsp; jour, et &lt;a hreflang=&quot;en&quot; href=&quot;http://munin-monitoring.org/ticket/1299&quot;&gt;est devenu incompatible avec la version du protocole NSCA implémentée par Munin&lt;/a&gt;. On peut bidouiller NSCA pour corriger ça, mais la solution de contournement la plus simple est de n&amp;#8217;envoyer qu&amp;#8217;un message à la fois à NSCA.&lt;/p&gt;
&lt;p&gt;Ici Munin enverra les résultats &amp;#8220;&lt;code&gt;OK&lt;/code&gt;&amp;#8221;, &amp;#8220;&lt;code&gt;Warning&lt;/code&gt;&amp;#8221; et &amp;#8220;&lt;code&gt;Critical&lt;/code&gt;&amp;#8221; de ses module. Nous allons également faire en sorte qu&amp;#8217;un Munin muet déclenche une erreur &lt;code&gt;UNKNOWN&lt;/code&gt; chez Nagios, pour s&amp;#8217;assurer que le &amp;#8220;&lt;code&gt;OK&lt;/code&gt;&amp;#8221; correspond bien à un test &amp;#8220;&lt;code&gt;OK&lt;/code&gt;&amp;#8221; et non à l&amp;#8217;absence de &amp;#8220;&lt;code&gt;Warning&lt;/code&gt;&amp;#8221; et de &amp;#8220;&lt;code&gt;Critical&lt;/code&gt;&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Ok, on triche un peu. En fait, les tests de Munin sont synchrones. On a donc un mécanisme synchrone (Munin) qui va envoyer de manière synchrone les résultats au mécanisme asynchrone de collecte (NSCA). L&amp;#8217;aspect synchrone va nous permettre de détecter le moment où on aurait dût recevoir un résultat, et alerter si ce n&amp;#8217;a pas été le cas.&lt;/p&gt;
&lt;h3&gt;Configuration de Nagios&lt;/h3&gt;
&lt;h4&gt;Communication avec NSCA&lt;/h4&gt;
&lt;p&gt;Ouvrez le fichier de configuration &lt;code&gt;/etc/nagios3/nagios.cfg&lt;/code&gt; et vérifiez que la ligne suivante est bien présente et dé-commentée&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;command_file=/var/lib/nagios3/rw/nagios.cmd&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Les services&lt;/h4&gt;
&lt;p&gt;Si vous avez déjà redémarré les services après chaque modification de la configuration, vous pourrez voir dans les logs de Nagios les erreurs suivantes&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;[1381670602] Warning:&amp;nbsp; Passive check result was received for service 'some service' on host 'hostname.ext', but the service could not be found!&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La bonne nouvelle c&amp;#8217;est que Nagios reçoit les notifications de NSCA&amp;#160;!&lt;/p&gt;
&lt;p&gt;La mauvaise c&amp;#8217;est qu&amp;#8217;il ne peut pas le lier à un service et à un hôte, parce qu&amp;#8217;ils ne sont tout simplement pas déclarés. Il va nous falloir déclarer un service Nagios pour chaque service Munin que nous lui transmettons, sinon celui-ci ne sera pas capable de le traiter.&lt;/p&gt;
&lt;p&gt;Créez le fichier &lt;code&gt;/etc/nagios3/conf.d/services/munin-services.cfg&lt;/code&gt; et placez à l’intérieur la configuration suivante&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;# generic service template definition&lt;br /&gt;define service{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; generic-munin-service ; The 'name' of this service template&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use generic-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; check_command&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return-unknown!&quot;No Data from passive check&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; active_checks_enabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Active service checks are disabled&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; check_freshness&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; freshness_threshold&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 360&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; flap_detection_options&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; max_check_attempts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; register&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;first_notification_delay&amp;nbsp; &amp;nbsp; &amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Delay first notification for false positives (will execute 2 checks : munin sends 1 check every 5 minutes)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; munin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Disk latency per device :: Average latency for /dev/sda&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use generic-munin-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Disk latency per device :: Average latency for /dev/sdb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use generic-munin-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; munin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Disk usage in percent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use generic-munin-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; munin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Inode usage in percent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use generic-munin-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; munin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File table usage&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use generic-munin-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; munin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; eth0 errors&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use generic-munin-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; munin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exim Mailqueue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use generic-munin-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Ce fichier est bien évidemment à compléter selon les plugins et les checks que vous avez activé dans Munin. Le &lt;code&gt;service_description&lt;/code&gt; est le nom complet du service dans Munin.&lt;/p&gt;
&lt;p&gt;La configuration du template générique nous assure qu&amp;#8217;une erreur &amp;#8220;&lt;code&gt;UNKNOWN : No data from passive check&lt;/code&gt;&amp;#8221; sera retournée en cas d&amp;#8217;absence de résultat après le délai du &amp;#8220;&lt;code&gt;freshness_threshold&lt;/code&gt;&amp;#8221;, avec 2 essais avant d&amp;#8217;alerter du problème.&lt;/p&gt;
&lt;h4&gt;Les groupes d&amp;#8217;hôtes&lt;/h4&gt;
&lt;p&gt;Les plus attentifs d&amp;#8217;entre-vous ont remarqué la présence d&amp;#8217;un hostgroup dans la configuration, mais nous ne l&amp;#8217;avons pas encore déclaré. Allons-y, rajoutez dans le fichier &lt;code&gt;/etc/nagios3/conf.d/groups.cfg&lt;/code&gt;&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;# Hostgroup for Munin&lt;br /&gt;define hostgroup {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp; munin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Munin reporting clients&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Les hôtes&lt;/h4&gt;
&lt;p&gt;Maintenant qu&amp;#8217;on a le &lt;code&gt;hostgroup&lt;/code&gt;, il ne reste plus qu&amp;#8217;à modifier vos fichiers &lt;code&gt;/etc/nagios3/conf.d/hosts/*.cfg&lt;/code&gt; pour rajouter le &lt;code&gt;hostgroup&lt;/code&gt; sur les hôtes sur lesquels &lt;code&gt;munin-node&lt;/code&gt; est installé.&lt;/p&gt;
&lt;h3&gt;Débuggage&lt;/h3&gt;
&lt;p&gt;En principe, après avoir redémarré tous les services, vous devriez recevoir assez vite les notifications de NSCA et voir passer vos indicateurs du gris vers le vert dans Nagios.&lt;/p&gt;
&lt;p&gt;Si ce n&amp;#8217;est pas le cas et que ces derniers passent au orange, c&amp;#8217;est qu&amp;#8217;il y a un problème de communication entre Nagios et Munin. Mon problème principal a été le non démarrage de NSCA au démarrage de la machine, pour de histoires de PID que le script de démarrage n&amp;#8217;arrivait à écrire ou à supprimer.&lt;/p&gt;
&lt;p&gt;Il arrive aussi que le tube nommé soit inaccessible en écriture à l’utilisateur qui lance NSCA, vérifiez bien que l&amp;#8217;utilisateur &lt;code&gt;nagios&lt;/code&gt; est celui qui fait tourner à la fois Nagios et NSCA.&lt;/p&gt;
&lt;p&gt;Enfin, pour vérifier que le problème ne vient pas d&amp;#8217;une mauvaise configuration de Nagios, faites un envoi de données &amp;#8220;manuellement&amp;#8221; avec la commande &lt;code&gt;send_nsca&lt;/code&gt;&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;echo -e &quot;monhote.ext\tNom complet du service Munin\t1\t0\n\n&quot; | /usr/sbin/send_nsca -H localhost&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;h3&gt;Pour conclure&lt;/h3&gt;
&lt;p&gt;En conclusion, nous avons terminé notre installation de Munin, Nagios, et NSCA&amp;#160;! Munin communique à présent ses alertes à Nagios, et Nagios est capable d&amp;#8217;alerter si ces alertes ne sont pas remontées. Le reste est dans les billets précédents&amp;#160;! &lt;img src=&quot;/blog/themes/mathedit_material3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot;&gt;&lt;/p&gt;
&lt;p&gt;N&amp;#8217;hésitez pas à me faire part dans les commentaires des problèmes que vous pourriez rencontrer en déroulant cette suite d&amp;#8217;articles, ou à me corriger si vous constatez des erreurs dans la série d&amp;#8217;article. &lt;img src=&quot;/blog/themes/mathedit_material3/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt;.&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>Le monitoring sous Debian avec Nagios et Munin (Puppet en guest star) : de A à Z - Partie 4 : Munin</title>
        <link>https://uname.pingveno.net/blog/index.php/post/2013/08/19/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-4-%3A-Munin</link>
        <guid isPermaLink="false">urn:md5:a926c76e863d3405f654b019fec2467e</guid>
        <pubDate>Mon, 19 Aug 2013 22:29:00 +0200</pubDate>
        <dc:creator>Mathieu</dc:creator>
                  <category>Informatique</category>
                          <category>debian</category>
                  <category>guide</category>
                  <category>monitoring</category>
                  <category>munin</category>
                  <category>serie-monitoring-nagios-munin-puppet</category>
                  <category>serveur</category>
                <description>&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt; &amp;#8212; &lt;a href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/08/17/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-3-%3A-Puppet&quot; rel=&quot;prev&quot;&gt;Voir l&amp;#8217;article précédent&amp;#160;: Puppet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dans l&amp;#8217;article précédent, nous avons vu une manière simple de configurer Puppet pour des opérations de réplication base de la configuration.&lt;/p&gt;
&lt;p&gt;Dans cette partie nous allons détailler l&amp;#8217;installation et la configuration de Munin et de ses plugins, en utilisant bien sûr notre Puppet fraîchement installé.&lt;/p&gt;          &lt;h3&gt;Principe&lt;/h3&gt;
&lt;p&gt;Munin est basé tout comme Nagios et Puppet sur le modèle maître-esclave&amp;#160;: le &amp;#8220;master&amp;#8221; Munin va récupérer à intervalle régulier les données des &amp;#8220;nodes&amp;#8221; et remplir des fichiers contenant les données reçues. Ces fichiers sont au format &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/RRDTool&quot;&gt;RRD&lt;/a&gt;, qui est un standard utilisé par beaucoup de logiciels de collecte de données.&lt;/p&gt;
&lt;p&gt;Nous allons donc devoir configurer d&amp;#8217;une part le &amp;#8220;master&amp;#8221; et ensuite les &amp;#8220;nodes&amp;#8221;. Pour les nodes, nous utiliserons Puppet pour répliquer la configuration.&lt;/p&gt;
&lt;p&gt;Munin, tout comme Nagios, a une architecture modulaire basée sur des plugins. Cela veut dire que le programme principal ne fait que de la collecte et de la transmission de données. Toutes les données collectées sont en réalité fournies par des plugins, qu&amp;#8217;il va falloir configurer un par un. Rassurez vous, la plupart des plugins possèdent déjà une configuration par défaut.&lt;/p&gt;
&lt;p&gt;Pour la suite, je vais supposer que le serveur accueillant le master munin est nommé &amp;#8220;master&amp;#8221; sur le réseau et ceux accueillant les nodes &amp;#8220;node01&amp;#8221;, &amp;#8220;node02&amp;#8221;, etc. Je vais aussi supposer que vous avez correctement installé Puppet sur l&amp;#8217;ensemble des futurs nodes Munin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note importante&lt;/strong&gt;&amp;#160;: les données qui sont échangées entre les nodes Munin et le Master &lt;strong&gt;ne sont pas chiffrées&lt;/strong&gt;. Si c&amp;#8217;est un problème pour vous, vous devriez étudier attentivement &lt;a hreflang=&quot;en&quot; href=&quot;http://munin-monitoring.org/wiki/MuninTLSSetup&quot;&gt;la configuration TLS pour Munin&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Le &amp;#8220;master&amp;#8221;&lt;/h3&gt;
&lt;p&gt;L&amp;#8217;installation du master Munin ne présente pas de difficultés particulières&amp;#160;: &lt;code&gt;sudo apt-get install munin&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Munin possède une interface de visualisation de ses graphes, mais il faut configurer le serveur web pour y accéder. La configuration pour Apache fournie avec le paquet est prête à être installée dans &lt;code&gt;/etc/munin/apache.conf&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Configuration générale&lt;/h4&gt;
&lt;p&gt;Le fichier de configuration principal se trouve dans &lt;code&gt;/etc/munin/munin.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La configuration par défaut n&amp;#8217;a pas besoin d&amp;#8217;être beaucoup retouchée. Renseignez toutefois les adresses de contact, par exemple&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;contact.root.command mail -s &quot;Munin notification&quot; root@localhost&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;Vous pouvez ajouter plusieurs de ces lignes, avec le nom d&amp;#8217;utilisateur et l&amp;#8217;adresse mail que vous souhaitez.
&lt;h4&gt;Configuration des nodes&lt;/h4&gt;
&lt;p&gt;Vers la fin du fichier &lt;code&gt;/etc/munin/munin.conf&lt;/code&gt; , vous trouverez un exemple de configuration pour un node en local. Nous allons rajouter les nôtres&amp;#160;!&lt;/p&gt;
&lt;p&gt;Tout d&amp;#8217;abord, les nodes en eux même, il s&amp;#8217;agit simplement de les déclarer à la suite de cette façon&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;[node01]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address 172.16.0.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_node_name yes&lt;br /&gt;&lt;br /&gt;[node02]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address 172.16.0.2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_node_name yes&lt;br /&gt;&lt;br /&gt;[node03]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address 172.16.0.3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_node_name yes&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;Évidemment, changez l&amp;#8217;adresse IP mentionnée ici par l&amp;#8217;adresse IP de vos nodes à vous. &lt;img src=&quot;/blog/themes/mathedit_material3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot;&gt;
&lt;h4&gt;Configuration des groupes de nodes&lt;/h4&gt;
&lt;p&gt;Si votre parc est hétérogène, vous aurez rapidement très envie de faire des groupes pour rassembler vos hôtes et naviguer facilement dans les graphes.&lt;/p&gt;
&lt;p&gt;Pour cela, toujours dans le fichier &lt;code&gt;/etc/munin/munin.conf&lt;/code&gt;, il suffit de rajouter un &amp;#8220;pseudo-hote&amp;#8221; de cette façon&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;[monparc;Totals] # Pour les graphes totaux&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; update no&amp;nbsp;&amp;nbsp; # Pas de collecte de données sur cet hôte&lt;br /&gt;&lt;br /&gt;[monparc;] # Groupement des nodes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node_order Totals node01 node02 node03&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;N&amp;#8217;oubliez pas de relancer Munin après avoir modifié la configuration&amp;#160;: &lt;code&gt;service munin restart&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Les &amp;#8220;nodes&amp;#8221;&lt;/h3&gt;
&lt;p&gt;D&amp;#8217;abord la configuration pour un node, et après on s&amp;#8217;occupera de la réplication de la configuration avec Puppet.&lt;/p&gt;
&lt;h4&gt;Configuration générale&lt;/h4&gt;
&lt;p&gt;Le nodes n&amp;#8217;ont besoin que de très peu de configuration, pratiquement tout est fait par les plugins, et la récupération des données est faite par le Master.&lt;/p&gt;
&lt;p&gt;Dans le fichier &lt;code&gt;/etc/munin/munin-node.conf&lt;/code&gt;, renseignez si besoin le nom du node dans le paramètre &lt;code&gt;host_name&lt;/code&gt;&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;host_name node01&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;Précisez qui sera autorisé à venir collecter les données via le paramètre &lt;code&gt;allow&lt;/code&gt; ou &lt;code&gt;cidr_allow&lt;/code&gt; si vous autorisez tout votre sous-réseau (note&amp;#160;: fonctionne aussi en ipv6)&amp;#160;:
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;allow ^172\.16\.0\.200$ # On suppose que le Master est à l'adresse 172.16.0.200&lt;br /&gt;cidr_allow 172.16.0.0/16 # Là on autorise carrément tout le sous-réseau /16&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Enfin, vérifiez bien que le node est en écoute sur toutes les adresses&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;bind *&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;N&amp;#8217;oubliez pas de relancer munin-node après avoir changé la configuration&amp;#160;: &lt;code&gt;service munin-node restart&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Les plugins&lt;/h4&gt;
&lt;p&gt;L&amp;#8217;ensemble des plugins disponibles réside dans le dossier &lt;code&gt;/usr/share/munin/plugins/&lt;/code&gt;, il est fortement déconseillé de les lancer directement.&lt;/p&gt;
&lt;p&gt;Pour activer un plugin, il suffit de créer un lien symbolique dans le dossier &lt;code&gt;/etc/munin/plugins/&lt;/code&gt;, et de relancer le démon munin-node. par exemple&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;ln -s /usr/share/munin/plugins/apt /etc/munin/plugins/apt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;service munin-node restart&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pour tester l&amp;#8217;exécution d&amp;#8217;un plugin, il suffit de lancer la commande &lt;code&gt;munin-run&lt;/code&gt; suivi du nom du plugin. Le plugin doit être activé et c&amp;#8217;est le nom du lien symbolique qui est à spécifier lors de l&amp;#8217;appel à &lt;code&gt;munin-run&lt;/code&gt;. &lt;code&gt;munin-run&lt;/code&gt; a d&amp;#8217;autres options intéressantes, comme par exemple &amp;#8220;&lt;code&gt;munin-run &amp;lt;nomduplugin&amp;gt; config&lt;/code&gt;&amp;#8221;, qui permet de lister tous les paramètres spécifiques à un plugin.&lt;/p&gt;
&lt;p&gt;Certains plugins prennent des paramètres directement depuis le lien symbolique. Par exemple le plugin &amp;#8220;&lt;code&gt;ping&lt;/code&gt;&amp;#8221; se nomme &amp;#8220;&lt;code&gt;ping_&lt;/code&gt;&amp;#8221; mais ne fonctionnera pas si votre lien symbolique s&amp;#8217;appelle &amp;#8220;&lt;code&gt;ping_&lt;/code&gt;&amp;#8221;. Le nom du lien symbolique doit préciser l&amp;#8217;hôte à pinguer&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;ln -s /usr/share/munin/plugins/ping_ /etc/munin/plugins/ping_ipv4.google.com&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;À noter que ça marche aussi pour un ping en ipv6&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;ln -s /usr/share/munin/plugins/ping_ /etc/munin/plugins/ping6_ipv6.google.com&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;De la configuration peut être nécessaire pour faire remonter les alertes des plugins. Dans le dossier &lt;code&gt;/etc/munin/plugins-conf.d/&lt;/code&gt; se trouve la configuration des plugins. je vous conseille de faire un fichier de configuration par plugin, nommé comme le plugin présent dans &lt;code&gt;/etc/munnin/plugins/&lt;/code&gt;. On peut y configurer l&amp;#8217;ensemble des paramètres retournés par la commande &lt;code&gt;munin-run &amp;lt;nomduplugin&amp;gt; config&lt;/code&gt; à l&amp;#8217;exception qu&amp;#8217;il faut rajouter &amp;#8220;&lt;code&gt;env.&lt;/code&gt;&amp;#8221; devant et préciser le nom du plugin ciblé. Par exemple&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;[ping_*]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;env.ping_warning 0.030&lt;br /&gt;env.ping_critical 0:0.100&lt;br /&gt;env.packetloss_warning 1&lt;br /&gt;env.packetloss_critical 10&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Et comme d&amp;#8217;habitude, pour aller plus loin, rien de tel qu&amp;#8217;un petit tour dans &lt;code&gt;/usr/share/doc/munin-node/&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Un coup de Puppet magique&amp;#160;!&lt;/h4&gt;
&lt;p&gt;Ça y est, on est calé sur la configuration des nodes&amp;#160;! Et si on répliquait&amp;#160;?&lt;/p&gt;
&lt;p&gt;Reprenons les fichiers que nous avons préparés dans &lt;a href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/08/17/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-3-%3A-Puppet&quot;&gt;la partie précédente&lt;/a&gt;. Le fichier &lt;code&gt;/etc/puppet/manifests/classes/munin.pp&lt;/code&gt; contient le prototype pour notre configuration. nous allons rajouter dans ce fichier de quoi paramétrer directement les nodes Munin&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;class munin {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # S'assurer que munin-node soit bien toujours à la dernière version des dépôts disponible&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; package {'munin-node':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ensure =&amp;gt; 'latest',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # S'assurer que le démon munin-node tourne sur la machine&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service {'munin-node':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ensure =&amp;gt; 'running',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enable&amp;nbsp; =&amp;gt; 'true',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hasrestart =&amp;gt; 'true',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; require =&amp;gt; Package['munin-node'],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # En cas de modification de la configuration, redémarre munin-node&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file { '/etc/munin/munin-node.conf':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ensure =&amp;gt; 'file',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notify&amp;nbsp; =&amp;gt; Service['munin-node'],&amp;nbsp; # this sets up the relationship&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; 644,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; owner&amp;nbsp;&amp;nbsp; =&amp;gt; 'root',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group&amp;nbsp;&amp;nbsp; =&amp;gt; 'root',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; require =&amp;gt; Package['munin-node'],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content =&amp;gt; template('munin/munin-node.conf.erb'), # Ça on explique juste après&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # On configure un plugin qui n'est pas par défaut, histoire de dire qu'on l'a fait&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Le lien symbolique&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file { '/etc/munin/plugins/apt':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ensure =&amp;gt; 'link',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group&amp;nbsp; =&amp;gt; '0',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mode&amp;nbsp;&amp;nbsp; =&amp;gt; '777',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; owner&amp;nbsp; =&amp;gt; '0',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target =&amp;gt; '/usr/share/munin/plugins/apt',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notify =&amp;gt; Service['munin-node'], # Ah oui, si on change ce fichier, on redémarre munin-node&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # La configuration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file { '/etc/munin/plugin-conf.d/apt':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ensure =&amp;gt; 'present',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group&amp;nbsp; =&amp;gt; '0',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mode&amp;nbsp;&amp;nbsp; =&amp;gt; '644',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; owner&amp;nbsp; =&amp;gt; '0',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content =&amp;gt; &quot;[apt]\nenv.pending.warning 0:0&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notify =&amp;gt; Service['munin-node'], # Là aussi on redémarre&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Parlons de &lt;code&gt;template('munin/munin-node.conf.erb')&lt;/code&gt;. Puppet nous permet d&amp;#8217;utiliser des templates de configuration pour éviter d&amp;#8217;avoir à fournir tout le contenu du fichier de configuration au milieu des règles Puppet. C&amp;#8217;est le cas pour le fichier &lt;code&gt;/etc/munin/plugin-conf.d/apt&lt;/code&gt;, mais pour ce fichier qui est volumineux et nécessite l&amp;#8217;emploi d&amp;#8217;une variable, créez le dossier munin dans le dossier &lt;code&gt;/etc/puppet/templates/&lt;/code&gt; et remplissez le avec le contenu suivant&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;#&lt;br /&gt;# Example config-file for munin-node&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;log_level 4&lt;br /&gt;log_file /var/log/munin/munin-node.log&lt;br /&gt;pid_file /var/run/munin/munin-node.pid&lt;br /&gt;&lt;br /&gt;background 1&lt;br /&gt;setsid 1&lt;br /&gt;&lt;br /&gt;user root&lt;br /&gt;group root&lt;br /&gt;&lt;br /&gt;# Regexps for files to ignore&lt;br /&gt;ignore_file [\#~]$&lt;br /&gt;ignore_file DEADJOE$&lt;br /&gt;ignore_file \.bak$&lt;br /&gt;ignore_file %$&lt;br /&gt;ignore_file \.dpkg-(tmp|new|old|dist)$&lt;br /&gt;ignore_file \.rpm(save|new)$&lt;br /&gt;ignore_file \.pod$&lt;br /&gt;&lt;br /&gt;host_name &amp;lt;%= @hostname %&amp;gt;&lt;br /&gt;&lt;br /&gt;allow ^172\.16\.0\.200+$&lt;br /&gt;&lt;br /&gt;host *&lt;br /&gt;&lt;br /&gt;port 4949&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;Notez la variable &lt;code&gt;@hostname&lt;/code&gt; employée dans le fichier, et qui doit être déclarée dans le node Puppet (voir ci-après).
&lt;p&gt;Finalement, n&amp;#8217;oubliez pas de créer un &amp;#8220;node&amp;#8221; Puppet dans le dossier &lt;code&gt;/etc/puppet/manifests/nodes/&lt;/code&gt;  pour chaque node Munin, et de le configurer comme dans l&amp;#8217;exemple&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;node 'node01' {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;$hostname = 'node01'&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;include munin&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sinon la configuration ne sera tout simplement pas propagée par Puppet. &lt;img src=&quot;/blog/themes/mathedit_material3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Pour conclure&lt;/h3&gt;
&lt;p&gt;Nous avons terminé notre petit tour de la configuration de Munin. Nous avons répliqué les nodes Munin avec Puppet, mais il nous manque encore quelque chose pour terminer le travail&amp;#160;: pour l&amp;#8217;instant notre Nagios est toujours muet et les alertes de Munin vous parviennent, mais ne sont pas centralisées dans Nagios.&lt;/p&gt;
&lt;p&gt;C&amp;#8217;est l&amp;#8217;objet de la dernière partie&amp;#160;: NSCA. Nous terminerons la configuration de Nagios pour mettre en place des contrôles passifs, et nous ferons le lien entre Munin et Nagios, comme &amp;#8220;par magie&amp;#8221;. &lt;img src=&quot;/blog/themes/mathedit_material3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/10/13/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-5-%3A-NSCA&quot;&gt;Lire la partie suivante&amp;#160;: NSCA&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt;.&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>Le monitoring sous Debian avec Nagios et Munin (Puppet en guest star) : de A à Z - Partie 3 : Puppet</title>
        <link>https://uname.pingveno.net/blog/index.php/post/2013/08/17/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-3-%3A-Puppet</link>
        <guid isPermaLink="false">urn:md5:68052107ee0bd0f5e554d1ca912b1dce</guid>
        <pubDate>Sat, 17 Aug 2013 16:00:00 +0200</pubDate>
        <dc:creator>Mathieu</dc:creator>
                  <category>Informatique</category>
                          <category>debian</category>
                  <category>guide</category>
                  <category>monitoring</category>
                  <category>puppet</category>
                  <category>serie-monitoring-nagios-munin-puppet</category>
                  <category>serveur</category>
                <description>&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt; &amp;#8212; &lt;a href=&quot;http://uname.pingveno.net/blog/index.php/post/2013/07/07/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-2-%3A-Nagios&quot; rel=&quot;prev&quot;&gt;Voir l&amp;#8217;article précédent&amp;#160;: Nagios&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dans l&amp;#8217;article précédent, nous avons vu comment écrire une configuration de base pour Nagios.&lt;/p&gt;
&lt;p&gt;Dans cette partie, je vais aborder un sujet un peu transverse mais nécessaire à la création de notre solution d&amp;#8217;ensemble&amp;#160;: &lt;strong&gt;Puppet&lt;/strong&gt;.&lt;/p&gt;          &lt;h3&gt;Introduction&lt;/h3&gt;
&lt;p&gt;Puppet est un logiciel de gestion de configuration. C&amp;#8217;est à dire
qu&amp;#8217;il permet de répliquer et conserver à l&amp;#8217;identique un ensemble de
paramètres (des fichiers de configuration) sur un ensemble de machines.&lt;/p&gt;
&lt;p&gt;Puppet a été créé pour un besoin simple&amp;#160;: répliquer de la
configuration à grande échelle sur un ensemble de machines, et en
assurer la consistance. Nous allons principalement l&amp;#8217;utiliser pour
répliquer notre configuration de Munin sur l&amp;#8217;ensemble des machines du
parc, pour faciliter le déploiement de notre solution de monitoring.&lt;/p&gt;
&lt;p&gt;Puppet fonctionne sur le modèle maître-esclaves&amp;#160;: un serveur
principal va contenir l&amp;#8217;ensemble des paramètres à répliquer, et des
serveurs esclaves vont interroger le serveur maître pour récupérer leur
configuration. Il est possible de configurer le maître afin de
différencier la configuration fournie à chaque esclave.&lt;/p&gt;
&lt;p&gt;La communication entre le maître et ses esclaves est chiffrée et
signée (le maître connaît ses esclaves, les esclaves connaissent leur
maître), évitant que des informations sensibles ne se baladent sur le
réseau, ou ne soit fournies accidentellement à des tiers.&lt;/p&gt;
&lt;h3&gt;Éléments en présence&lt;/h3&gt;
&lt;p&gt;Nous allons considérer les éléments suivants&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;p&gt;Le maître, aussi appelé PuppetMaster, est la machine qui va
stocker les configurations à répliquer et fournir ce dont ellesont
besoin aux machines esclaves.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Les machines esclaves, ou &amp;#8220;clients Puppet&amp;#8221;, sont les machines
sous le contrôle du PuppetMaster, elles vérifient périodiquement auprès
du PuppetMaster si leur configuration a besoin d&amp;#8217;être mise à jour et
appliquent les directives fournies par le PuppetMaster.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour ce tutoriel, nous allons considérer deux machines&amp;#160;: le PuppetMaster que je vais appeler &amp;#8220;&lt;code&gt;master&lt;/code&gt;&amp;#8221; et une machine cliente que je vais appeler &amp;#8220;&lt;code&gt;slave01&lt;/code&gt;&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Je suppose que les machines &amp;#8220;&lt;code&gt;master&lt;/code&gt;&amp;#8221; et &amp;#8220;&lt;code&gt;slave01&lt;/code&gt;&amp;#8221; sont correctement mises en place dans le parc (qu&amp;#8217;elles sont présentes dans le fichier &lt;code&gt;/etc/hosts&lt;/code&gt; ou qu&amp;#8217;elles ont un enregistrement DNS valide). Je suppose également que le &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Fully_qualified_domain_name&quot;&gt;FQDN&lt;/a&gt; des machines est correct (mis en place dans &lt;code&gt;/etc/hostname&lt;/code&gt; ou avec la commande &lt;code&gt;hostname -b&lt;/code&gt;).&lt;/p&gt;
&lt;h3&gt;Installation du Maître et de l&amp;#8217;Esclave&lt;/h3&gt;
&lt;h4&gt;Installation du Maître&lt;/h4&gt;
&lt;p&gt;À noter que dans le cas de la configuration qui est décrite, le
maître ne
sera pas son propre esclave. Il est néanmoins possible de gérer certains
aspects de la configuration du maître via le maître lui-même en
effectuant
après l&amp;#8217;installation du maître l&amp;#8217;installation d&amp;#8217;un esclave sur la même
machine (mais attention aux migraines).&lt;/p&gt;
&lt;p&gt;Sous Debian, Puppet est dans les dépôts. Pour installer le maître il suffit de taper&amp;#160;: &lt;code&gt;sudo apt-get install puppetmaster&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour des raisons de sécurité, le PuppetMaster n&amp;#8217;est pas configuré pour se lancer au démarrage de la machine. Éditez le fichier &lt;code&gt;/etc/defaults/puppetmaster&lt;/code&gt; et placez la variable &lt;code&gt;START&lt;/code&gt; à &amp;#8220;&lt;code&gt;yes&lt;/code&gt;&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Lancez ensuite le serveur maître de Puppet avec la commande &lt;code&gt;service puppetmaster start&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Installation de l&amp;#8217;esclave&lt;/h4&gt;
&lt;p&gt;De la même manière que le maître, lancez sur l&amp;#8217;esclave&amp;#160;: &lt;code&gt;sudo apt-get install puppet&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Comme pour le PuppetMaster, il faut préciser à l&amp;#8217;esclave Puppet qu&amp;#8217;il doit se lancer au démarrage de la machine&amp;#160;: éditez &lt;code&gt;/etc/defaults/puppet&lt;/code&gt; et placez la variable &lt;code&gt;START&lt;/code&gt; à &amp;#8220;&lt;code&gt;yes&lt;/code&gt;&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Ouvrez à présent le fichier de configuration &lt;code&gt;/etc/puppet/puppet.conf&lt;/code&gt; et rajoutez la ligne suivante dans la section &lt;code&gt;[main]&lt;/code&gt;&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;server=master&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;J&amp;#8217;utilise ici le domaine court (&amp;#8220;&lt;code&gt;master&lt;/code&gt;&amp;#8221;) en supposant
que celui-ci se résout correctement, mais vous pouvez mettre l&amp;#8217;adresse
IP du serveur &amp;#8220;master&amp;#8221; ou son FQDN à la place&lt;/p&gt;
&lt;p&gt;C&amp;#8217;est le moment d&amp;#8217;essayer notre configuration&amp;#160;! Lancez la commande&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt; &lt;code&gt;sudo puppetd --test --waitforcert 60&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si tout va bien, l&amp;#8217;esclave va interroger le maître pour récupérer sa
configuration. Comme c&amp;#8217;est la première fois qu&amp;#8217;il le fait, l&amp;#8217;esclave va
attendre que son certificat soit signé par le maître, qui le reconnaîtra
alors comme un de ses esclaves.&lt;/p&gt;
&lt;p&gt;Pour débloquer la situation, lancez la commande suivante sur le maître&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;puppet cert --list&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;Vous devriez alors voir une liste de certificats en attente
de signature. Toujours sur le maître, signez le certificat de votre
esclave&amp;#160;:&lt;code&gt;
&lt;blockquote&gt;&lt;p&gt;puppet cert --sign slave01&lt;/p&gt;
&lt;/blockquote&gt;&lt;/code&gt;
&lt;p&gt;Sur l&amp;#8217;esclave, la situation se débloque, et il vous informe que son certificat a été signé, tout est prêt&amp;#160;!&lt;/p&gt;
&lt;p&gt;Lancez finalement le démon Puppet sur l&amp;#8217;esclave&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;service puppet start&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;Le lancement du démon est nécessaire pour une propagation
automatique des opérations que nous allons faire sur le maître. Un
lancement manuel de la mise à jour de l&amp;#8217;esclave peut cependant être fait
avec la commande &lt;code&gt;puppetd --test&lt;/code&gt; .
&lt;h3&gt;Comment ça marche&amp;#160;?&lt;/h3&gt;
&lt;p&gt;Sur le Maître, le point d&amp;#8217;entrée principal de la configuration est &lt;code&gt;/etc/puppet/manifests/site.pp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le répertoire &lt;code&gt;/etc/puppet/templates/&lt;/code&gt; sert à stocker les
templates de configuration qui pourront être lu par le moteur de Puppet
(plus pratique de fournir le chemin vers un fichier template plutôt que
de renseigner le contenu du fichier au milieu des règles de Puppet).&lt;/p&gt;
&lt;p&gt;Le répertoire &lt;code&gt;/etc/puppet/modules/&lt;/code&gt;, oubliez le pour l&amp;#8217;instant.&lt;/p&gt;
&lt;h4&gt;Notre modèle de configuration pour la suite&lt;/h4&gt;
&lt;p&gt;Comme nous ne souhaitons pas mettre TOUTE la configuration dans &lt;code&gt;/etc/puppet/manifests/site.pp&lt;/code&gt;, nous allons créer des répertoires dans le dossier &lt;code&gt;manifests&lt;/code&gt; et inclure les fichiers qui sont présents dans ces répertoires, histoire de ranger un peu.&lt;/p&gt;
&lt;p&gt;Créez les dossiers &lt;code&gt;classes&lt;/code&gt; et &lt;code&gt;nodes&lt;/code&gt; dans le dossier &lt;code&gt;manifests&lt;/code&gt; .&lt;/p&gt;
&lt;p&gt;Le dossier &lt;code&gt;classes&lt;/code&gt; contiendra les éléments de configuration génériques, potentiellement paramétrables, que nous allons appliquer à nos esclaves.&lt;/p&gt;
&lt;p&gt;Dans le dossier &lt;code&gt;nodes&lt;/code&gt;, je vous conseille de créer un
fichier par esclave, afin de personnaliser efficacement les classes
requises pour chacun des esclaves.&lt;/p&gt;
&lt;p&gt;Le fichier &lt;code&gt;/etc/puppet/manifests/site.pp&lt;/code&gt; contiendra donc les appels aux fichiers présents dans ces répertoires&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;# import many manifest files with node definitions&lt;br /&gt;import 'classes/*.pp'&lt;br /&gt;import 'nodes/*.pp'&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Et nous auront donc dans le dossier &lt;code&gt;/etc/puppet/manifests/classes&lt;/code&gt; un fichier &lt;code&gt;munin.pp&lt;/code&gt; qui ressemblera à ça&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;class munin {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;Et dans le dossier &lt;code&gt;/etc/puppet/manifests/nodes&lt;/code&gt; un fichier &lt;code&gt;slave01.pp&lt;/code&gt; qui ressemblera à ça&amp;#160;:
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;node 'slave01' {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;$hostname = 'slave01'&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;include munin&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;C&amp;#8217;est tout&amp;#160;! La configuration des esclaves pour servir de nœuds Munin via Puppet sera détaillé dans le prochain article.&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;
&lt;p&gt;&lt;strong&gt;À noter&amp;#160;:&lt;/strong&gt; La commande &amp;#8220;import&amp;#8221; de Puppet ne fait que
déclarer les fichiers à lire, la commande &amp;#8220;include&amp;#8221; exécute la classe
et donc applique effectivement la configuration du fichier.&lt;/p&gt;
&lt;h4&gt;Pour aller plus loin avec Puppet&lt;/h4&gt;
&lt;p&gt;Pour aller plus loin avec Puppet, vous pouvez lire &lt;a hreflang=&quot;en&quot; href=&quot;http://docs.puppetlabs.com/puppet/2.7/reference/lang_summary.html&quot;&gt;la documentation issue du site de Puppetlabs&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Pour conclure&lt;/h3&gt;
&lt;p&gt;Nous avons posé les bases de notre solution de monitoring, notre
serveur Nagios est en place, et Puppet est prêt à répliquer la
configuration des nœuds Munin. Il nous reste à créer cette
configuration, et à effectuer le lien entre le Master Munin et Nagios,
pour que les alertes puissent remonter.&lt;/p&gt;
&lt;p&gt;Dans le billet suivant, nous détaillerons la configuration des nœuds
Munin avec Puppet et la configuration du Master Munin pour les alertes.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/08/19/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-(Puppet-en-guest-star)-:-de-A-à-Z-Partie-4-:-Munin&quot; rel=&quot;next&quot;&gt;Lire la partie suivante&amp;#160;: Munin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt;.&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>Le monitoring sous Debian avec Nagios et Munin (Puppet en guest star) : de A à Z - Partie 2 : Nagios</title>
        <link>https://uname.pingveno.net/blog/index.php/post/2013/07/07/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-2-%3A-Nagios</link>
        <guid isPermaLink="false">urn:md5:89ab0a4d73ba04725d6a10253cb75c60</guid>
        <pubDate>Sun, 07 Jul 2013 19:59:00 +0200</pubDate>
        <dc:creator>Mathieu</dc:creator>
                  <category>Informatique</category>
                          <category>debian</category>
                  <category>guide</category>
                  <category>monitoring</category>
                  <category>nagios</category>
                  <category>serie-monitoring-nagios-munin-puppet</category>
                  <category>serveur</category>
                <description>&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt; &amp;#8212; &lt;a href=&quot;http://uname.pingveno.net/blog/index.php/post/2013/07/04/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-1-%3A-introduction&quot; rel=&quot;prev&quot;&gt;Voir l&amp;#8217;article précédent&amp;#160;: Introduction&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dans l&amp;#8217;épisode précédent, nous avons vu les généralités d&amp;#8217;usage sur le monitoring, Nagios, et Munin.&lt;/p&gt;
&lt;p&gt;Dans cette partie, je vais tenter de détailler la réalisation d&amp;#8217;une configuration fonctionnelle de Nagios, avec quelques sondes, pour servir de base pour la suite.&lt;/p&gt;          &lt;h3&gt;Installation de Nagios&lt;/h3&gt;
&lt;p&gt;Je travaille sous Debian GNU/Linux par habitude. Avec ce système d&amp;#8217;exploitation, il est très facile d&amp;#8217;installer Nagios :&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;sudo apt-get install nagios3&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Attention&amp;#160;: la configuration pour Nagios ne s&amp;#8217;écrit pas de la même façon selon la version majeure considérée. Ici pour la version 3, les fichiers de configuration seront différents de ceux pour Nagios 2, pensez à bien vérifier la version des exemples que vous copiez-collez sur Internet.&lt;/p&gt;
&lt;p&gt;Nagios s&amp;#8217;administre depuis une interface Web&amp;#160;; pour pouvoir y accéder, le paquet de Nagios installe automatiquement les dépendances permettant à un serveur Web de tourner (Apache 2 par défaut), mais vous pourriez avoir envie de faire autrement. Vérfiiez alors que vous avez bien un serveur web installé pour pouvoir faire tourner Nagios en CGI (python).&lt;/p&gt;
&lt;p&gt;Nagios installe par défaut un ensemble de plugins pour les sondes mais pas seulement. Nagios est très modulaire, et permet de faire beaucoup de chose. Si vous avez besoin des plugins supplémentaires, ceux-ci sont dans les paquets &lt;code&gt;nagios-plugins-*&lt;/code&gt; .&lt;/p&gt;
&lt;p&gt;Par défaut, après l&amp;#8217;installation Nagios est accessible à l&amp;#8217;URL &lt;code&gt;http://votreserveur/cgi-bin/nagios3/status.cgi&lt;/code&gt;. Le login et le mot de passe sont à changer avec la commande suivante &lt;code&gt;htpasswd /etc/nagios3/htpasswd.users leloginsouhaite&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Où est la configuration&amp;#160;?&lt;/h3&gt;
&lt;p&gt;Le premier réflexe après avoir installé un logiciel, aussi automatisé que soit l&amp;#8217;installation, c&amp;#8217;est de regarder dans /etc/ si il y a pas un ou plusieurs fichiers de configuration. &lt;/p&gt;
&lt;p&gt;Gagné, il y a &lt;code&gt;/etc/nagios3/&lt;/code&gt; et &lt;code&gt;/etc/nagios-plugins/&lt;/code&gt; .&lt;/p&gt;
&lt;p&gt;Dans &lt;code&gt;/etc/nagios3/&lt;/code&gt; il y a la configuration générale de nagios&amp;#160;: les hosts et les services à surveiller, l&amp;#8217;interaction avec les systèmes externes, les personnes à prévenir en cas d&amp;#8217;accident, etc.&lt;/p&gt;
&lt;p&gt;Dans &lt;code&gt;/etc/nagios-plugins/&lt;/code&gt;, il y a la configuration du comportement des plugins. Je m&amp;#8217;en sers principalement pour avoir de la documentation sur les plugins disponibles et leurs arguments, mais vous pourriez en avoir besoin pour modifier le comportement d&amp;#8217;un plugin, ou créer le vôtre.&lt;/p&gt;
&lt;h3&gt;C&amp;#8217;est quoi ce bordel&amp;#8230;&lt;/h3&gt;
&lt;p&gt;Si vous commencez à plonger dans la configuration de &lt;code&gt;/etc/nagios3&lt;/code&gt;, vous allez vite déchanter&amp;#160;: il y a des fichiers de configuration aux noms pas très évocateurs, de services par défaut et génériques qui ne veulent rien dire. Par de panique, on va vous aider.&lt;/p&gt;
&lt;p&gt;Le point d&amp;#8217;entrée de la configuration dans Nagios est le fichier &lt;code&gt;/etc/nagios3/nagios.cfg&lt;/code&gt;. Pour des raisons évidentes, la configuration de Nagios n&amp;#8217;est pas intégralement présente dans ce fichier. Nagios inclut tous les fichiers qui se trouvent dans le dossier &lt;code&gt;/etc/nagios3/conf.d/&lt;/code&gt; (et récursivement dans les sous-dossiers).&lt;/p&gt;
&lt;h4&gt;Les hôtes&lt;/h4&gt;
&lt;p&gt;Les hôtes dans Nagios sont les machines à surveiller. Ce sont des éléments identifiés par leur nom. Il peut y avoir des hotes &amp;#8220;virtuels&amp;#8221; qui ne correspondent pas à une machine en particulier mais à un ensemble de résultat provenant de sondes que vous pouvez configurer.&lt;/p&gt;
&lt;p&gt;La configuration par défaut de Nagios définit un hôte générique. Cet hôte n&amp;#8217;est pas affiché dans l&amp;#8217;interface car c&amp;#8217;est un &amp;#8220;template&amp;#8221; de configuration. Vous faites &amp;#8220;hériter&amp;#8221; vos hôtes de ce service générique qui contient tout ce dont la plupart des hôtes ont besoin, et vous y rajoutez votre grain de sel.&lt;/p&gt;
&lt;p&gt;La configuration des hôtes dans Nagios se fait dans &lt;code&gt;/etc/nagios3/conf.d/&lt;/code&gt;. je vous conseille de créer un dossier &lt;code&gt;/etc/nagios3/conf.d/hosts/&lt;/code&gt;
et de créer ensuite un fichier par hôte, par commencer. Une fois que
vous serez plus à l&amp;#8217;aise avec le concept d&amp;#8217;hôte générique, vous pourrez
faire vos propres hôtes génériques, et factoriser un peu votre
configuration.&lt;/p&gt;
&lt;h4&gt;Les services&lt;/h4&gt;
&lt;p&gt;Les services dans Nagios sont les appels aux sondes que vous allez définir. Ces sondes sont déclarées dans les fichiers de configuration de &lt;code&gt;/etc/nagios-plugins/config/&lt;/code&gt; pour pointer vers des exécutables (généralement en Perl ou en Python) présents dans le répertoire &lt;code&gt;/usr/lib/nagios/plugins/&lt;/code&gt;, qui vont réaliser effectivement les tests.&lt;/p&gt;
&lt;p&gt;Je vous conseille, pour définir vos services, de créer le dossier &lt;code&gt;/etc/nagios3/conf.d/services/&lt;/code&gt; et placer un fichier par service à l&amp;#8217;intérieur.&lt;/p&gt;
&lt;p&gt;Les sondes des services peuvent prendre des arguments. Le plus courant est de leur donner (implicitement) l&amp;#8217;adresse de l&amp;#8217;hôte à tester, mais on peut aussi passer explicitement des arguments, comme par exemple le port à tester. (Si jamais vous avez déplacé le port d&amp;#8217;écoute de SSH. Comment ça vous l&amp;#8217;avez pas fait&amp;#160;?)&lt;/p&gt;
&lt;p&gt;Pour ceux qui en ont, les arguments des sondes sont déclarés dans &lt;code&gt;/etc/nagios-plugins/config/&lt;/code&gt;.&lt;/p&gt;
&lt;h4&gt;Les groupes&lt;/h4&gt;
&lt;p&gt;Voilà le point central de votre configuration&amp;#160;: les groupes. Les groupes sont déclarés dans &lt;code&gt;/etc/nagios3/config/groups.cfg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Un groupe dans Nagios est un moyen d&amp;#8217;appliquer un ensemble de services à un hôte &amp;#8220;d&amp;#8217;un coup&amp;#8221;. En gros, vous avez trois moyens d&amp;#8217;attacher vos services à vos hôtes&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Quand vous déclarez vos hôtes, vous mentionnez explicitement les services qu&amp;#8217;il doit posséder.&lt;/li&gt;
&lt;li&gt;Quand vous déclarez les services, vous mentionnez explicitement les hôtes sur lesquels le service doit s’appliquer&lt;/li&gt;
&lt;li&gt;Vous déclarez vos &amp;#8220;groupes&amp;#8221;, qui sont des ensembles de services, prêt à être appliqués à vos hôtes, vous spécifiez à quels groupes le service appartient, et vous spécifiez les hôtes présents dans le groupe.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dans la suite, nous appliquerons la troisième solution.&lt;/p&gt;
&lt;h3&gt;Un petit exemple pour commencer&lt;/h3&gt;
&lt;p&gt;Sans commentaires, voici un petit exemple&amp;#160;:&lt;/p&gt;
&lt;h4&gt;Groupes&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;/etc/nagios3/groups.cfg&lt;/code&gt;&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;# A list of your web servers&lt;br /&gt;define hostgroup {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp; http-servers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTP servers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; members&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host1 ; Link host to hostgroup&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;# A list of your ssh-accessible servers&lt;br /&gt;define hostgroup {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp; ssh-servers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSH servers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; members&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host1,host2 ; Link host to hostgroup&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;h4&gt;Hôtes&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;/etc/nagios3/conf.d/hosts/host1.cfg&lt;/code&gt;&amp;#160;:
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;define host {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; generic-host ; Name of host template to use&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.11 ; Replace with your real host1 address !&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;code&gt;/etc/nagios3/conf.d/hosts/host2.cfg&lt;/code&gt;&amp;#160;:
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;define host {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; generic-host ; Name of host template to use&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.12 ; Replace with your real host2 address !&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;h4&gt;Services&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;/etc/nagios3/conf.d/services/ssh.cfg&lt;/code&gt;&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;# check that ssh services are running&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssh-servers ; Link service to hostgroup&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSH &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; check_command&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; check_ssh_port!22&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; generic-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;/etc/nagios3/conf.d/services/http.cfg&lt;/code&gt;&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;# check that ssh services are running&lt;br /&gt;define service {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; http-servers ; Link service to hostgroup&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; check_command&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; check_http&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; generic-service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notification_interval&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ; set &amp;gt; 0 if you want to be renotified&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;h3&gt;Toutes les sondes que vous voulez&amp;#160;!&lt;/h3&gt;
&lt;p&gt;Dans l&amp;#8217;exemple ci-dessus, j&amp;#8217;ai utilisé deux sondes génériques&amp;#160;: &lt;code&gt;check_ssh_port&lt;/code&gt; et &lt;code&gt;check_http&lt;/code&gt;. Toutes les sondes disponibles sont déclarées dans &lt;code&gt;/etc/nagios-plugins/conf/&lt;/code&gt;, ces sondes se présentent sous la forme de &amp;#8220;commandes&amp;#8221; que l&amp;#8217;on peut utiliser moment de la déclaration des services.&lt;/p&gt;
&lt;p&gt;Les sondes déclarées appellent en général les exécutables qui se trouvent dans &lt;code&gt;/usr/lib/nagios/plugins/&lt;/code&gt;. Souvent, plusieurs sondes sont déclarées pour un même exécutable, mais avec des paramètres différents (par exemple &lt;code&gt;check_ssh&lt;/code&gt; et &lt;code&gt;check_ssh_port&lt;/code&gt; qui permet de spécifier le port en argument).&lt;/p&gt;
&lt;p&gt;Pour afficher les paramètres déclarés par les sondes, vous pouvez éditer les fichiers de configuration présents dans &lt;code&gt;/etc/nagios-plugins/conf/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour déclarer vos propres sondes à partir des exécutables, vous pouvez afficher les arguments disponible pour les exécutables de &lt;code&gt;/usr/lib/nagios/plugins/&lt;/code&gt; en lançant simplement le fichier exécutable avec le paramètre &lt;code&gt;--help&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Les alertes&lt;/h3&gt;
&lt;p&gt;Pour l&amp;#8217;instant notre Nagios est muet. Il peut alerter sur l&amp;#8217;interface web, mais ne vous envoie pas de mails pour se plaindre que l&amp;#8217;un des services est tombé.&lt;/p&gt;
&lt;p&gt;Les alertes dans Nagios se configurent dans /etc/nagios3/conf.d/contacts.cfg, dans ce fichier sont définis les personnes à contacter en cas de problème, et quels sont les types d&amp;#8217;alertes à recevoir par ces personnes.&lt;/p&gt;
&lt;p&gt;Vous pouvez prendre exemple sur le contact par défaut pour créer vos propres contacts&amp;#160;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;define contact {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contact_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_notification_period&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24x7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host_notification_period&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24x7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_notification_options&amp;nbsp;&amp;nbsp;&amp;nbsp; w,u,c,r&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host_notification_options&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d,r &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; service_notification_commands&amp;nbsp;&amp;nbsp; notify-service-by-email&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host_notification_commands&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notify-host-by-email&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; email&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root@localhost&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;N&amp;#8217;oubliez pas de rajouter vos nouveaux contact au groupe de contact de Nagios&amp;#160;:
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;define contactgroup {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contactgroup_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admins&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Nagios Administrators&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; members&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;Une configuration plus fine peut être réalisée au niveau des alertes, ou de l&amp;#8217;escalade des alertes, suivez ce lien pour en savoir plus&amp;#160;: &lt;a hreflang=&quot;en&quot; href=&quot;http://nagios.sourceforge.net/docs/3_0/escalations.html&quot;&gt;Notifications Escalations&lt;/a&gt;.
&lt;h3&gt;Pour conclure&lt;/h3&gt;
&lt;p&gt;En guise de conclusion et pour aller plus loin, je vous conseille de faire comme vous en avez l&amp;#8217;habitude sous Debian&amp;#160;: lire les documentations qui sont incluses avec le paquet dans &lt;code&gt;/usr/share/docs/nagios*&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Dans le prochain billet de cette série, je détaillerai l&amp;#8217;installation et la réalisation d&amp;#8217;une configuration simple pour Puppet, qui nous servira pour pouvoir installer facilement Munin sur l&amp;#8217;ensemble des machines du parc.&lt;/p&gt;
&lt;p&gt;Ah oui, n&amp;#8217;oubliez pas de relancer le service &lt;code&gt;nagios3&lt;/code&gt; après avoir changé la configuration pour l&amp;#8217;appliquer&amp;#160;!&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/08/17/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-3-%3A-Puppet&quot; rel=&quot;next&quot;&gt;Lire la partie suivante&amp;#160;: Puppet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;https://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt;.&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>Le monitoring sous Debian avec Nagios et Munin (Puppet en guest star) : de A à Z - Partie 1 : introduction</title>
        <link>https://uname.pingveno.net/blog/index.php/post/2013/07/04/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-1-%3A-introduction</link>
        <guid isPermaLink="false">urn:md5:7ad5ec86dc049c4a1980fb0e3b0e5629</guid>
        <pubDate>Thu, 04 Jul 2013 19:33:00 +0200</pubDate>
        <dc:creator>Mathieu</dc:creator>
                  <category>Informatique</category>
                          <category>debian</category>
                  <category>guide</category>
                  <category>monitoring</category>
                  <category>munin</category>
                  <category>nagios</category>
                  <category>puppet</category>
                  <category>serie-monitoring-nagios-munin-puppet</category>
                  <category>serveur</category>
                <description>&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Le monitoring. Graal des administrateurs système dès qu&amp;#8217;un parc de machines commence à se constituer. Avec ce petit guide, vous allez découvrir que même avec seulement trois machines, on peut faire du monitoring. Même avec des machines mobiles ou pas toujours allumées, on peut faire du monitoring. Même avec les machines des clients, on peut faire du monitoring.&lt;/p&gt;
&lt;p&gt;Pour pouvoir intervenir en cas de problème, il faut déjà savoir qu&amp;#8217;il y a un problème, c&amp;#8217;est le but du monitoring.&lt;/p&gt;          &lt;h3&gt;Cas d&amp;#8217;étude&lt;/h3&gt;
&lt;p&gt;Vous gérez un parc. Ça peut être vos propres machines, ou les machines de vos clients. Vous pouvez avoir des serveurs ou des postes de travail, ces machines ne sont pas forcément toujours allumées, mais quand elles fonctionnent il faut avoir un retour sur leur état de santé. Vous aimeriez bien centraliser tout ça, mais vous ne savez pas comment faire. Voici comment.&lt;/p&gt;
&lt;h3&gt;Définitions / Présentations&lt;/h3&gt;
&lt;p&gt;Lorsqu&amp;#8217;on parle de monitoring, on parle bien entendu de surveillance du système. Mais pour s&amp;#8217;assurer de l&amp;#8217;état du système, il faut deux choses&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Un collecteur (&amp;#8220;node&amp;#8221;), qui va au moyens de différentes sondes remonter les informations brutes sur les composants du système à surveiller. Ça peut être très bas niveau la température du CPU, ou une sonde élaborée comme le temps de réponse à un ping. Dans tous les cas, le collecteur seul ne suffit pas à dire &amp;#8220;je fais du monitoring&amp;#8221;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;Le concentrateur (&amp;#8220;master&amp;#8221;), qui va récupérer les informations du collecteur, et générer les alertes, le concentrateur va pouvoir vous afficher une vue synthétique de l&amp;#8217;ensemble des machines que vous surveillez.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Dans ce petit guide, le collecteur sera Munin (en partie), et le concentrateur sera Nagios 3 (en partie). Je dis &amp;#8220;en partie&amp;#8221; parce que tout n&amp;#8217;est pas aussi simple, et que Nagios et Munin vont assurer des rôles complémentaires étant chacun dans leur domaine à la fois &amp;#8220;collecteur&amp;#8221; et &amp;#8220;concentrateur&amp;#8221;.&lt;/div&gt;&lt;h4&gt;Munin&amp;#160;: le surveillant dans la cour&lt;/h4&gt;
&lt;div&gt;Munin est à la base un collecteur, c&amp;#8217;est à dire qu&amp;#8217;il va, au moyens de sondes déployées sur les postes à surveiller (&amp;#8220;munin-node&amp;#8221;), écrire des fichiers RRD. Ces fichiers pourront ensuite être exploités par un concentrateur (&amp;#8220;munin&amp;#8221; tout court) pour dessiner des graphes (&amp;#8220;munin-graph&amp;#8221;) et/ou envoyer des alertes à des systèmes externes.&lt;/div&gt;&lt;h4&gt;Nagios&amp;#160;: le mirador&lt;/h4&gt;
&lt;p&gt;Même si on peut installer un client Nagios servant de collecteur sur les postes à surveiller, Nagios n&amp;#8217;a pas pour vocation d&amp;#8217;observer directement les systèmes. Il est prévu pour effectuer des sondages &amp;#8220;externes&amp;#8221; des systèmes (tel port est-il ouvert, tel service répond-il correctement&amp;#8230;).&lt;/p&gt;
&lt;p&gt;De ce fait, Nagios va être limité dans les accès au système (comment remonter des alertes sur la température du disque, en conservant un point de vue externe&amp;#160;?) et va donc dépendre des sondes locales, comme celles fournies par Munin.&lt;/p&gt;
&lt;h4&gt;Puppet&amp;#160;: le directeur de l&amp;#8217;établissement&lt;/h4&gt;
&lt;p&gt;On ne l&amp;#8217;a pas encore présenté. Puppet est un logiciel permettant de répliquer de la configuration sur un ensemble de postes. Puppet permet de définir une certaine granularité dans la configuration&amp;#160;: il est possible de créer des &amp;#8220;groupes&amp;#8221; de configuration, pour donner aux postes gérés la configuration qu&amp;#8217;il leur faut, potentiellement différente d&amp;#8217;une machine à l&amp;#8217;autre (un serveur web et un serveur mail n&amp;#8217;ont pas les mêmes besoins).&lt;/p&gt;
&lt;h3&gt;Le fonctionnement&lt;/h3&gt;
&lt;h4&gt;En résumé&lt;/h4&gt;
&lt;ul&gt;&lt;li&gt;Nagios va collecter des informations externes sur le système et recevoir des alertes de Munin.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;Munin (&amp;#8220;munin-node&amp;#8221;) va collecter des informations plus précises sur le fonctionnement de la machine &amp;#8220;à chaud&amp;#8221;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;Un &amp;#8220;master&amp;#8221; Munin va centraliser toutes les informations récoltées par les sondes &amp;#8220;munin-nodes&amp;#8221; et envoyer les alertes à Nagios.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;Puppet va se charger d&amp;#8217;uniformiser la configuration sur l&amp;#8217;ensemble des machines sur lesquelles Munin (munin-node) est installé (mieux que le copier/coller&amp;#160;: on change une fois et c&amp;#8217;est toutes les machines qui changent).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Les machines&lt;/h4&gt;
&lt;div&gt;Les machines que l&amp;#8217;on suppose présentes sont&amp;#160;:&lt;/div&gt;&lt;div&gt;
&lt;ul&gt;&lt;li&gt;Les machines à administrer (&amp;#8220;nodes&amp;#8221;) sur lesquelles on mettra les &amp;#8220;munin-nodes&amp;#8221; et les &amp;#8220;puppet-nodes&amp;#8221;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;Le &amp;#8220;puppet-master&amp;#8221; qui va envoyer aux &amp;#8220;nodes&amp;#8221; la configuration à appliquer&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;Le &amp;#8220;master&amp;#8221; Munin qui va centraliser les informations des sondes, et éventuellement faire des graphes.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;Le concentrateur nagios, qui va également effectuer les tests externes sur les machines.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div&gt;Notez que le Puppet master, le master Munin, et Nagios peuvent être portés par la même machine (puppet master, master munin, nagios).&lt;/div&gt;&lt;h3&gt;Dans la partie suivante&lt;/h3&gt;
&lt;div&gt;&lt;p&gt;Dans la prochaine partie, nous verront comment installer et configurer Nagios et ses sondes. Nous verront ensuite dans les parties suivantes le détail de la configuration de Munin, sa communication avec Nagios, et la réplication de sa configuration avec Puppet.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/07/07/Le-monitoring-sous-Debian-avec-Nagios-et-Munin-%28Puppet-en-guest-star%29-%3A-de-A-%C3%A0-Z-Partie-2-%3A-Nagios&quot; rel=&quot;next&quot;&gt;Lire la partie suivante&amp;#160;: Nagios&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;https://uname.pingveno.net/blog/index.php/tag/serie-monitoring-nagios-munin-puppet&quot; rel=&quot;tag&quot;&gt;Voir l&amp;#8217;ensemble des articles de la série&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;</description>
        
              </item>
      </channel>
</rss>
