<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Munin - Alain ARDITI&#039;s blog</title>
	<atom:link href="https://alain.arditi.fr/tag/munin/feed/" rel="self" type="application/rss+xml" />
	<link>https://alain.arditi.fr/tag/munin/</link>
	<description>Aide mémoire informatique</description>
	<lastBuildDate>Tue, 09 Mar 2021 21:12:26 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://alain.arditi.fr/wp-content/uploads/2020/04/cropped-ARDITI_Alain_20200326_512x512-32x32.jpg</url>
	<title>Archives des Munin - Alain ARDITI&#039;s blog</title>
	<link>https://alain.arditi.fr/tag/munin/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Munin : le plugin Varnish sous Debian Buster</title>
		<link>https://alain.arditi.fr/2021/03/08/munin-le-plugin-varnish-sous-debian-buster/</link>
		
		<dc:creator><![CDATA[Alain ARDITI]]></dc:creator>
		<pubDate>Mon, 08 Mar 2021 22:15:54 +0000</pubDate>
				<category><![CDATA[Système]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Munin]]></category>
		<category><![CDATA[Varnish]]></category>
		<guid isPermaLink="false">https://alain.arditi.fr/?p=1031</guid>

					<description><![CDATA[<p>Comment faire fonctionner le plugin Varnish de Munin sous Debian Buster</p>
<p>L’article <a href="https://alain.arditi.fr/2021/03/08/munin-le-plugin-varnish-sous-debian-buster/">Munin : le plugin Varnish sous Debian Buster</a> est apparu en premier sur <a href="https://alain.arditi.fr">Alain ARDITI&#039;s blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Munin est un outil bien pratique pour les tests de charge. Il est packagé par Debian dans sa version 2.0.49 avec des plugins pour quasiment tous les services. Ca tombe bien pour évaluer le comportement de Varnish, puisqu&rsquo;on a un plugin Varnish présent dans le répertoire des plugins : <code>/usr/share/munin/plugins/varnish_</code></p>



<p>Pour l&rsquo;installer, rien de plus simple, il suffit de faire un lien symbolique sur un des « aspects » disponibles pour ce plugin, qu&rsquo;on obtient par la commande :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">aa2:~# munin-run varnish_transfer_rates suggest
memory_usage
request_rate
backend_traffic
transfer_rates
threads
bad
uptime
expunge
objects
hit_rate
aa2:~#</pre></div>



<p> Mais avant de pouvoir lancer cette commande pour connaître les « aspects » de ce plugin, il fallait déjà faire un lien symbolique, donc lire le contenu du plugin ! La on choisit l&rsquo;aspect « transfer_rates ». Pour installer le plugin qui va fournir les « transfer_rates » de Varnish, il faut faire le lien suivant :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">aa2:~# ln -s /usr/share/munin/plugins/varnish_ /etc/munin/plugins/varnish_transfer_rates
aa2:~#</pre></div>



<p>A cette étape, la configuration est prête pour tester le plugin. On lance la commande suivante pour vérifier les valeurs que renvoie le plugin :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">aa2:~# munin-run varnish_transfer_rates 
.....
Could not get hold of varnishd, is it running?

no element found at line 1, column 0, byte 0 at /usr/lib/x86_64-linux-gnu/perl5/5.28/XML/Parser.pm line 187.
aa2:~#</pre></div>



<p>Pas de réponse, on attend les &#8230;.. puis on obtient une erreur ! Cette erreur provient de varnishstat. Quand on lance varnishstat pourtant tout fonctionne :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">aa2:~# varnishstat  -x
&lt;?xml version="1.0"?&gt;
&lt;varnishstat timestamp="2021-03-08T22:33:50"&gt;
	&lt;stat&gt;
		&lt;name&gt;MGT.uptime&lt;/name&gt;
		&lt;value&gt;520285&lt;/value&gt;
		&lt;flag&gt;c&lt;/flag&gt;
		&lt;format&gt;d&lt;/format&gt;
		&lt;description&gt;Management process uptime&lt;/description&gt;
	&lt;/stat&gt;
	&lt;stat&gt;
		&lt;name&gt;MGT.child_start&lt;/name&gt;
		&lt;value&gt;1&lt;/value&gt;
		&lt;flag&gt;c&lt;/flag&gt;
		&lt;format&gt;i&lt;/format&gt;
		&lt;description&gt;Child process started&lt;/description&gt;
	&lt;/stat&gt;
...
...
&lt;/varnishstat&gt;
aa2:~#</pre></div>



<p>Alors que se passe-t-il ? On essaie avec les options de débug :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">aa2:~# munin-run --debug --pidebug varnish_transfer_rates 
# Processing plugin configuration from /etc/munin/plugin-conf.d/README
# Processing plugin configuration from /etc/munin/plugin-conf.d/dhcpd3
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Processing plugin configuration from /etc/munin/plugin-conf.d/spamstats
# Processing plugin configuration from /etc/munin/plugin-conf.d/varnish4_
# Processing plugin configuration from /etc/munin/plugin-conf.d/varnish5_
# Processing plugin configuration from /etc/munin/plugin-conf.d/varnish_
# Setting /rgid/ruid/ to /113/65534/
# Setting /egid/euid/ to /113 113/65534/
# Setting up environment
# About to run '/etc/munin/plugins/varnish_transfer_rates'
.....
Could not get hold of varnishd, is it running?

no element found at line 1, column 0, byte 0 at /usr/lib/x86_64-linux-gnu/perl5/5.28/XML/Parser.pm line 187.
aa2:~#</pre></div>



<p>Toujours la même erreur. En y regardant de plus près on s&rsquo;aperçoit que le plugin est lancé avec l&rsquo;euid 113 qui est l&rsquo;id de l&rsquo;utilisateur munin sur ma machine. Mais comme le process Varnish tourne sous l&rsquo;utilisateur vcache, le plugin ne peut pas contacter Varnish, d&rsquo;où l&rsquo;erreur. La méthode pour corriger ce problème est de lancer le plugin Varnish avec l&rsquo;utilisateur « vcache ». Pour ceci, on crée un fichier de configuration du plugin qui indique d&rsquo;utiliser « vcache » :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">aa2:~# cat /etc/munin/plugin-conf.d/varnish_ 
[varnish_*]
    user vcache
aa2:~# 
aa2:~# munin-run varnish_transfer_rates 
aa2:~# 
aa2:~# munin-run --debug --pidebug varnish_transfer_rates 
# Processing plugin configuration from /etc/munin/plugin-conf.d/README
# Processing plugin configuration from /etc/munin/plugin-conf.d/dhcpd3
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Processing plugin configuration from /etc/munin/plugin-conf.d/spamstats
# Processing plugin configuration from /etc/munin/plugin-conf.d/varnish4_
# Processing plugin configuration from /etc/munin/plugin-conf.d/varnish5_
# Processing plugin configuration from /etc/munin/plugin-conf.d/varnish_
# Setting /rgid/ruid/ to /113/109/
# Setting /egid/euid/ to /113 113/109/
# Setting up environment
# About to run '/etc/munin/plugins/varnish_transfer_rates'
aa2:~#</pre></div>



<p>Le plugin fonctionne, mais ne renvoie rien !!!<br>On tombe sur le bug : <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959812" target="_blank" rel="noreferrer noopener nofollow">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959812</a></p>



<p>En cherchant les plugins Varnish pour Munin, on trouve beaucoup de choses. Qui vont de Varnish 2 à Varnish 5. Mais sous Buster, on est en Varnish 6. Tous les plugins Varnish ont la même source, la version de 2009. Mais on ne sait pas exactement avec quelle version de Varnish ils fonctionnent. J&rsquo;en ai essayé 3 différents, et sans aucun doute, le bon est celui-ci : <a href="https://gallery.munin-monitoring.org/plugins/munin-contrib/varnish5_/" target="_blank" rel="noreferrer noopener">https://gallery.munin-monitoring.org/plugins/munin-contrib/varnish5_/</a></p>



<p>Il faut récupérer le source, faire le lien dans le répertoire des plugins et mettre l&rsquo;utilisateur « vcache » ou « root » dans la configuration. Là, j&rsquo;ai utilisé le hit_rate comme « aspect » :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">aa2:~# ln -s /usr/share/munin/plugins/varnish5_ /etc/munin/plugins/varnish5_hit_rate
aa2:~#
aa2:~# cat /etc/munin/plugin-conf.d/varnish5_ 
[varnish5_*]
    user vcache
aa2:~#
aa2:~# munin-run varnish5_hit_rate 
client_req.value 2955
cache_hitpass.value 0
cache_hitmiss.value 12
cache_hit.value 2228
cache_miss.value 715
aa2:~#</pre></div>



<p>On a bien un résultat cette fois !<br>Remarque, le client_req est calculé comme la somme des 4 valeurs cache_*. Alors que la commande varnishstat renvoie un client_req de 9585 ! Cette dernière valeur représente toutes les requêtes reçues par Varnish, y compris les « pass ». Donc avec le plugin « varnish5_ » on n&rsquo;a que les requêtes qui sont sensées être en cache. Ce qui est logique pour un calcul de hit ratio, mais qui ne montre pas la totalité des requêtes reçues. </p>



<figure class="wp-block-image size-large"><a href="https://alain.arditi.fr/wp-content/uploads/2021/03/image-26.png"><img fetchpriority="high" decoding="async" width="909" height="834" src="https://alain.arditi.fr/wp-content/uploads/2021/03/image-26.png" alt="" class="wp-image-1034" srcset="https://alain.arditi.fr/wp-content/uploads/2021/03/image-26.png 909w, https://alain.arditi.fr/wp-content/uploads/2021/03/image-26-300x275.png 300w, https://alain.arditi.fr/wp-content/uploads/2021/03/image-26-768x705.png 768w" sizes="(min-width: 1280px) 1240px, (min-width: 822px) calc(100vw - 120px), (min-width: 482px) calc(100vw - 80px), calc(100vw - 40px)" /></a><figcaption>Varnish hit rate ratio</figcaption></figure>



<p>On retrouve ci-dessus un hit ratio dont la somme des 4 composantes fait 100.</p>



<hr class="wp-block-separator"/>



<p>Références :<br><a href="http://munin-monitoring.org/" target="_blank" rel="noreferrer noopener nofollow">Munin</a><br><a href="https://packages.debian.org/buster/munin" target="_blank" rel="noreferrer noopener nofollow">Paquet Munin pour Debian Buster</a></p>
<p>L’article <a href="https://alain.arditi.fr/2021/03/08/munin-le-plugin-varnish-sous-debian-buster/">Munin : le plugin Varnish sous Debian Buster</a> est apparu en premier sur <a href="https://alain.arditi.fr">Alain ARDITI&#039;s blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Passer Munin à la minute</title>
		<link>https://alain.arditi.fr/2021/02/21/passer-munin-a-la-minute/</link>
		
		<dc:creator><![CDATA[Alain ARDITI]]></dc:creator>
		<pubDate>Sun, 21 Feb 2021 21:33:33 +0000</pubDate>
				<category><![CDATA[Système]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Munin]]></category>
		<guid isPermaLink="false">https://alain.arditi.fr/?p=465</guid>

					<description><![CDATA[<p>L&#8217;outil de métrologie Munin, dont le site est http://munin-monitoring.org/ est bien pratique pour faire des tests. Lorsqu&#8217;on a une infrastructure à gérer avec des dizaines, centaines ou milliers de noeuds, on fait de la métrologie à 5 minutes. C&#8217;est à dire qu&#8217;on relève les valeurs de chaque noeud toutes les 5 minutes. De manière synchrone&#8230; </p>
<div class="more-link-container"><a class="more-link" href="https://alain.arditi.fr/2021/02/21/passer-munin-a-la-minute/">Poursuivre la lecture <span class="screen-reader-text">Passer Munin à la minute</span></a></div>
<p>L’article <a href="https://alain.arditi.fr/2021/02/21/passer-munin-a-la-minute/">Passer Munin à la minute</a> est apparu en premier sur <a href="https://alain.arditi.fr">Alain ARDITI&#039;s blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>L&rsquo;outil de métrologie Munin, dont le site est <a href="http://munin-monitoring.org/" target="_blank" rel="noreferrer noopener">http://munin-monitoring.org/</a> est bien pratique pour faire des tests. Lorsqu&rsquo;on a une infrastructure à gérer avec des dizaines, centaines ou milliers de noeuds, on fait de la métrologie à 5 minutes. C&rsquo;est à dire qu&rsquo;on relève les valeurs de chaque noeud toutes les 5 minutes. De manière synchrone ou pas. Généralement on a de la métrologie, de la surveillance et des alertes. Donc souvent un outil assez sensible dont on ne peut pas modifier les réglages pour faire des tests. </p>



<span id="more-465"></span>



<p>Donc si on a besoin d&rsquo;accélérer la fréquence de récupération des valeurs pour un test de charge ou de rajouter un noeud pour 2 jours, d&rsquo;effacer des valeurs, de bricoler des graphes, on est coincé.</p>



<p>Alors, dans ce cas, rien de mieux qu&rsquo;un serveur Munin dédié aux tests et indépendant de l&rsquo;infrastructure. Surtout si on veut gagner du temps et avoir des réponses rapides avec des métriques à la minute.</p>



<p>L&rsquo;outil Munin est très léger, c&rsquo;est du scripting Perl, les plugins sont très simples à faire fonctionner, on ne consomme pas trop de ressources. C&rsquo;est l&rsquo;outil idéal pour mesurer les ressources pendant les tests de charge.</p>



<p>Descendre le monitoring à la minute est essentiel, car pour les tests de charge, si on veut des graphes significatifs, il faut une bonne dizaine de points. Avec des points toutes les 5 minutes, on arrive facilement à 1 heure par test. Donc faire des tests dans ces conditions devient excessivement long, car avant d&rsquo;avoir 2 ou 3 belles courbes significatives, il faudra lancer au moins une dizaine de tests&#8230;. Une opération de deux jours au moins.</p>



<p>Par contre, si on passe à la minute, en 15 minutes on a des graphes. En une journée on aura peut-être terminé nos tests, avec l&rsquo;impression d&rsquo;avoir moins perdu son temps, surtout lorsque les tests ne se passent pas bien et que la mise au point est délicate !</p>



<p>Que faut-il modifier pour passer Munin à une minute de fréquence ?</p>



<p>La source de cet article provient de Daniel Watrous : <a rel="noreferrer noopener" href="https://software.danielwatrous.com/increase-munin-resolution-to-one-minute/" target="_blank">One minute sampling</a>. Avec notre version de Munin par contre, on ne touche pas les noeuds (munin-node).</p>



<p>Dans notre cas, le serveur Munin va chercher les métriques, stocke les valeurs dans les fichiers RRD et fait les graphes. Il n&rsquo;y a rien à changer sur les noeuds. On ne modifie que le serveur Munin.</p>



<p>La version de Munin utilisée ici est la 2.0.49 fournie par la distribution Debian Buster.</p>



<h3 class="wp-block-heading">Etape 1 : modifier munin.conf</h3>



<p>Dans le fichier <code>/etc/munin/munin.conf</code>&nbsp;il faut ajouter les 2 lignes suivantes :</p>



<pre class="wp-block-prismatic-blocks"><code class="language-bash">graph_data_size custom 1d, 1m for 1w, 5m for 1t, 15m for 1y
update_rate 60</code></pre>



<h3 class="wp-block-heading"> Etape 2 : modifier le cron</h3>



<p>Il faut passer le cron de récupération des valeurs des noeuds à la minute. Modifier la ligne du fichier <code>/etc/cron.d/munin</code>&nbsp;comme suit :</p>



<pre class="wp-block-prismatic-blocks"><code class="language-">*/5 * * * *     munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi</code></pre>



<p>en </p>



<pre class="wp-block-prismatic-blocks"><code class="language-">* * * * *     munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi</code></pre>



<p>de manière à passer de 1 fois toutes les 5 minutes à toutes les minutes.</p>



<h3 class="wp-block-heading">Etape 3 : supprimer les RRD</h3>



<p>Les fichiers RRD sont les fichiers qui contiennent les valeurs des métriques des noeuds graphés par Munin. Comme les RRD stockent la fréquence des données en entête, une fois le fichier créé, on ne peut plus modifier cette fréquence. Il faut donc effacer les fichiers RRD des noeuds pour lesquels on va passer à une minute. Ces fichiers se trouvent dans le répertoire <code>/var/lib/munin/nom_du_domaine/</code></p>



<p>Si on efface ces fichier RRD, on perd tout l&rsquo;historique pour les noeuds qui se trouvent dans le domaine. On comprend pourquoi il vaut mieux ne pas faire ces opérations sur un serveur qui gère la métrologie d&rsquo;une infrastructure de production.</p>



<p>C&rsquo;est la commande <code>/usr/bin/munin-cron</code> qui se lance toute les minutes sur le serveur Munin qui crée les fichiers RRD et qui va stocke les valeurs.</p>



<p>On peut vérifier que les fichiers RRD sont corrects en affichant les informations qui se trouvent à l&rsquo;intérieur, en particulier le step qui doit être à 60  :</p>



<pre class="wp-block-prismatic-blocks"><code class="language-bash">debian-munin-2:~# rrdtool info /var/lib/munin/arditi.net/aa2.arditi.net-memory-buffers-g.rrd | head
filename = "/var/lib/munin/arditi.net/aa2.arditi.net-memory-buffers-g.rrd"
rrd_version = "0003"
step = 60
last_update = 1613941863
header_size = 2872
ds[42].index = 0
ds[42].type = "GAUGE"
ds[42].minimal_heartbeat = 120
ds[42].min = NaN
ds[42].max = NaN
debian-munin-2:~# 
</code></pre>



<h3 class="wp-block-heading">Etape 4 : relancer le serveur Munin</h3>



<p>Il suffit de lancer la commande suivante pour relancer Munin</p>



<pre class="wp-block-prismatic-blocks"><code class="language-bash">debian-munin-2:~# systemctl restart munin.service 
debian-munin-2:~# systemctl status munin.service 
● munin.service - LSB: Create munin master directories on boot
   Loaded: loaded (/etc/init.d/munin; generated)
   Active: active (exited) since Sun 2021-02-21 22:06:13 CET; 8s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1402 ExecStart=/etc/init.d/munin start (code=exited, status=0/SUCCESS)

Feb 21 22:06:13 debian-munin-2 systemd[1]: Starting LSB: Create munin master directories on boot...
Feb 21 22:06:13 debian-munin-2 systemd[1]: Started LSB: Create munin master directories on boot.
debian-munin-2:~# </code></pre>



<p>et d&rsquo;attendre quelques minutes avant de regarder les graphes qui doivent afficher des variations à la minute :</p>



<figure class="wp-block-image size-large"><img decoding="async" width="897" height="572" src="https://alain.arditi.fr/wp-content/uploads/2021/02/mysql_queries-pinpoint16139406001613942160-1.png" alt="" class="wp-image-472" srcset="https://alain.arditi.fr/wp-content/uploads/2021/02/mysql_queries-pinpoint16139406001613942160-1.png 897w, https://alain.arditi.fr/wp-content/uploads/2021/02/mysql_queries-pinpoint16139406001613942160-1-300x191.png 300w, https://alain.arditi.fr/wp-content/uploads/2021/02/mysql_queries-pinpoint16139406001613942160-1-768x490.png 768w" sizes="(min-width: 1280px) 1240px, (min-width: 822px) calc(100vw - 120px), (min-width: 482px) calc(100vw - 80px), calc(100vw - 40px)" /><figcaption>Graphe de requêtes MySQL à la minute</figcaption></figure>



<p>Si on fait un test de charge avec l&rsquo;outil JMeter, qu&rsquo;on a un « Thread plan » de 100 threads avec une montée de 0 à 100 en 10 minutes et un plateau de 5 minutes comme ci-dessous :</p>



<figure class="wp-block-image size-large"><img decoding="async" width="792" height="400" src="https://alain.arditi.fr/wp-content/uploads/2021/02/flotActiveThreadsOverTime-2.png" alt="" class="wp-image-473" srcset="https://alain.arditi.fr/wp-content/uploads/2021/02/flotActiveThreadsOverTime-2.png 792w, https://alain.arditi.fr/wp-content/uploads/2021/02/flotActiveThreadsOverTime-2-300x152.png 300w, https://alain.arditi.fr/wp-content/uploads/2021/02/flotActiveThreadsOverTime-2-768x388.png 768w" sizes="(min-width: 1280px) 1240px, (min-width: 822px) calc(100vw - 120px), (min-width: 482px) calc(100vw - 80px), calc(100vw - 40px)" /><figcaption>Nombre de threads en fonction du temps</figcaption></figure>



<p>on récupère des graphes comme celui-ci en moins de vingt minutes, avec la granularité à la minute comme JMeter :</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="897" height="596" src="https://alain.arditi.fr/wp-content/uploads/2021/02/cpu-5.png" alt="" class="wp-image-474" srcset="https://alain.arditi.fr/wp-content/uploads/2021/02/cpu-5.png 897w, https://alain.arditi.fr/wp-content/uploads/2021/02/cpu-5-300x199.png 300w, https://alain.arditi.fr/wp-content/uploads/2021/02/cpu-5-768x510.png 768w" sizes="auto, (min-width: 1280px) 1240px, (min-width: 822px) calc(100vw - 120px), (min-width: 482px) calc(100vw - 80px), calc(100vw - 40px)" /><figcaption>Graphe d&rsquo;utilisation de la CPU à la minute</figcaption></figure>
<p>L’article <a href="https://alain.arditi.fr/2021/02/21/passer-munin-a-la-minute/">Passer Munin à la minute</a> est apparu en premier sur <a href="https://alain.arditi.fr">Alain ARDITI&#039;s blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
