<?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>Blog de Florian Bogey &#187; Linux</title>
	<atom:link href="https://www.blog.florian-bogey.fr/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>https://www.blog.florian-bogey.fr</link>
	<description>// Développeur Web - Administrateur système</description>
	<lastBuildDate>Mon, 03 Mar 2014 18:12:00 +0000</lastBuildDate>
	<language>fr-FR</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Les raccourcis clavier pour Vi/Vim</title>
		<link>https://www.blog.florian-bogey.fr/les-raccourcis-clavier-pour-vi-vim.html</link>
		<comments>https://www.blog.florian-bogey.fr/les-raccourcis-clavier-pour-vi-vim.html#comments</comments>
		<pubDate>Wed, 15 May 2013 20:07:42 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[Infographies]]></category>
		<category><![CDATA[News diverses]]></category>
		<category><![CDATA[cheat]]></category>
		<category><![CDATA[cheat sheet]]></category>
		<category><![CDATA[clavier]]></category>
		<category><![CDATA[Infographie]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mémo]]></category>
		<category><![CDATA[raccourcis]]></category>
		<category><![CDATA[sheet]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=528</guid>
		<description><![CDATA[Vi est un éditeur de texte en ligne de commande extrêmement puissant, une fois bien maîtrisé, ce dernier permet de gagner un temps précieux. Un des défauts de Vi, il n&#8217;est pas très convivial et s&#8217;utilise via de (très) nombreux raccourcis clavier. Vi est un des éditeurs de texte préféré des administrateurs systèmes (mais aussi [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Vi est un éditeur de texte en ligne de commande extrêmement puissant, une fois bien maîtrisé, ce dernier permet de gagner un temps précieux. Un des défauts de Vi, il n&rsquo;est pas très convivial et s&rsquo;utilise via de (très) nombreux raccourcis clavier. Vi est un des éditeurs de texte préféré des administrateurs systèmes (mais aussi des geek), dans ce billet nous allons résumer quelques raccourcis clavier utile à l&rsquo;utilisation de l&rsquo;outil.</p>
<p><span id="more-528"></span></p>
<p>Ce petit mémo réalisé par <a title="gosquared" href="https://www.gosquared.com/" target="_blank">Gosquared.com</a>, résume très bien les principaux raccourcis clavier de Vi/Vim</p>
<p>Un petit oubli, il manque les raccourcis permettant de copier/coller (ou dupliquer) des lignes :</p>
<ul>
<li>Y or yy : Copie la ligne en cours</li>
<li>nY : Copie n lignes (5Y copiera 5 lignes)</li>
<li>yG : Copie du curseur jusqu’à la fin du fichier</li>
<li>P : Copie après le curseur (ligne en dessous)</li>
<li>p : Colle avant le curseur (ligne du dessus)</li>
</ul>
<p style="text-align: center;"><a title="Les raccourcis clavier pour Vi/Vim" href="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/05/vi-vim-cheat-sheet-raccourcis.jpg" target="_blank"><img alt="Mémo : Les raccourcis clavier pour Vi/Vim" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/05/vi-vim-cheat-sheet-raccourcis-min.jpg" /></a><br />
(Cliquez pour agrandir)</p>
<p style="text-align: left;">Vous pourrez bien entendu trouver sur Internet d&rsquo;autres mémos plus ou moins complets.</p>
<p style="text-align: left;">Une version PDF est disponible <a title="pdf" href="http://media.smashingmagazine.com/wp-content/uploads/2010/05/VI-Help-Sheet-011.pdf" target="_blank">ici</a>.</p>
<p><a title="Source" href="http://www.smashingmagazine.com/2010/05/03/vi-editor-linux-terminal-cheat-sheet-pdf/" target="_blank">Source</a> et <a title="Photo" href="http://wallbase.cc/wallpaper/1388249" target="_blank">photo</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/les-raccourcis-clavier-pour-vi-vim.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Activer et configurer le server-status Apache (mod_status)</title>
		<link>https://www.blog.florian-bogey.fr/activer-et-configurer-le-server-status-apache-mod_status.html</link>
		<comments>https://www.blog.florian-bogey.fr/activer-et-configurer-le-server-status-apache-mod_status.html#comments</comments>
		<pubDate>Tue, 30 Apr 2013 12:01:41 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mod_status]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[slot]]></category>
		<category><![CDATA[supervision]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=507</guid>
		<description><![CDATA[Afin de connaitre l&#8217;état d&#8217;un serveur Apache en temps réel, il est possible de mettre en place des solutions de supervision telles que Nagios ou encore MRTG. Cependant, il existe un module d&#8217;Apache nommé mod_status qui permet via une page HMTL de connaitre l&#8217;état du serveur à un instant T, sur cette page il sera [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Afin de connaitre l&rsquo;état d&rsquo;un serveur Apache en temps réel, il est possible de mettre en place des solutions de supervision telles que Nagios ou encore MRTG. Cependant, il existe un module d&rsquo;Apache nommé <strong>mod_status</strong> qui permet via une page HMTL de connaitre l&rsquo;état du serveur à un instant T, sur cette page il sera possible en autre de voir : les &laquo;&nbsp;slots&nbsp;&raquo; Apache en mémoire, les requêtes, les temps d’exécution, la charge processeur, etc.</p>
<p>Cet outil sera aussi très pratique pour suivre les soucis de surconsommation de mémoire ainsi que les scripts demandant trop de ressources. Dans ce petit tutoriel, nous allons voir comment activer, configurer et comprendre la page <strong>server-status</strong>.</p>
<p><span id="more-507"></span></p>
<h2 class="paddingTop">1 – Activation</h2>
<p>Par défaut sous les distributions basées sur <strong>Red Hat</strong> (CentOS, Fedora, RHEL), le module<strong> mod_status</strong> est chargé par défaut, pour activer l&rsquo;affichage de la page <strong>server-status</strong>, il suffit d&rsquo;éditer le fichier de configuration d&rsquo;Apache pour décommenter certaines lignes.</p>
<p>Éditer le fichier de configuration d&rsquo;Apache (le fichier peut se trouver à un autre emplacement suivant la distribution)</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">vi /etc/httpd/conf/httpd.conf</pre>
<p>Rechercher et décommenter la ligne (qui permet d&rsquo;afficher un rapport détaillé)</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">ExtendedStatus On</pre>
<p>Puis rechercher le bloc, pour décommenter certaines lignes</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
&lt;Location /server-status&gt;
     SetHandler server-status
     Order deny,allow
     Deny from all
     Allow from 127.0.0.1 92.XXX.XX.XX
&lt;/Location&gt;
</pre>
<p>La ligne <strong>Deny from all</strong> permet de refuser l&rsquo;accès à tout le monde et <strong>Allow from 127.0.0.1 92.XXX.XX.XX</strong> permet d&rsquo;autoriser l&rsquo;accès à certaines IP. Il est bien entendu possible de supprimer ces deux lignes, l&rsquo;accès sera alors autorisé pour tout le monde.</p>
<p>Il est ensuite nécessaire de recharger la configuration d&rsquo;<strong>Apache</strong></p>
<pre class="brush: plain; gutter: false; title: ; notranslate">service httpd reload</pre>
<p>Vous pouvez maintenant accéder à la page <strong>server-status</strong> via l&rsquo;adresse :</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">http://votre-server/server-status</pre>
<p>Pour une actualisation automatique de la page, il faut utiliser le paramètre refresh (en seconde), ici la page sera automatiquement rechargée toutes les 10 secondes :</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">http://votre-server/server-status?refresh=10</pre>
<h2 class="paddingTop">2 – Rapport</h2>
<p><strong>Voici un exemple de rapport :</strong></p>
<p><a title="Exemple de rapport server-status via apache mod_status" href="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/04/rapport-server-status-apache-mod-status.jpg" target="_blank"><img alt="rapport server-status apache mod_status" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/04/rapport-server-status-apache-mod-status.jpg" width="500" /></a></p>
<p><strong>Dans la première partie</strong> du rapport on peut voir (outre la date) :</p>
<ul>
<li>Que le serveur a été redémarré il y a 13 minutes</li>
<li>L&rsquo;utilisation du processeur (moins de 1%)</li>
<li>Qu&rsquo;il y a en moyenne sur le serveur 0,172 requêtes/seconde</li>
<li>Que le trafic est de 975 octets/seconde</li>
<li>Une requête fait en moyenne 5,5Ko</li>
<li> Une requête en cours de traitement et 8 slots sont libres (pour des connexions futures).</li>
</ul>
<p>Nous pourrons ici détecter sur le serveur est surchargé.</p>
<p><strong>Ensuite, dans une deuxième partie</strong>, nous pouvons voir un tableau de caractère, chaque caractère représente l&rsquo;état d&rsquo;un slot Apache, soit :</p>
<ul>
<li>&laquo;&nbsp;<strong>_</strong>&nbsp;&raquo; : Slot en attente de connexion (prête à recevoir un client)</li>
<li>&laquo;&nbsp;<strong>S</strong>&nbsp;&raquo; : Slot en cours de démarrage</li>
<li>&laquo;&nbsp;<strong>R</strong>&nbsp;&raquo; : Le slot lit la requête du client</li>
<li>&laquo;&nbsp;<strong>W</strong>&nbsp;&raquo; : Le slot envoie le résultat de la requête au client</li>
<li>&laquo;&nbsp;<strong>K</strong>&nbsp;&raquo; : Le slot est en attente d&rsquo;une requête du même client (Keepalive)</li>
<li>&laquo;&nbsp;<strong>D</strong>&nbsp;&raquo; : Le slot effectue une requête DNS</li>
<li>&laquo;&nbsp;<strong>C</strong>&nbsp;&raquo; : Le slot ferme la connexion avec le client</li>
<li>&laquo;&nbsp;<strong>L</strong>&nbsp;&raquo; : Le slot écrit dans les fichiers de log (journaux)</li>
<li>&laquo;&nbsp;<strong>G</strong>&nbsp;&raquo; : Le slot &laquo;&nbsp;meurt&nbsp;&raquo; car inutile</li>
<li>&laquo;&nbsp;<strong>I</strong>&nbsp;&raquo; : Idle cleanup of worker</li>
<li>&laquo;&nbsp;<strong>.</strong>&nbsp;&raquo; : Aucune activité</li>
</ul>
<p><strong>La dernière partie du rapport</strong> contient la liste des tâches effectuées par les slots Apache, la correspondance des colonnes est la suivante (seul  les plus importantes seront détaillées) :</p>
<ul>
<li>&laquo;&nbsp;<strong>PID</strong>&nbsp;&raquo; : Le PID système du processus Apache</li>
<li>&laquo;&nbsp;<strong>M</strong>&nbsp;&raquo; : Le statut du slot (Voir précédemment).</li>
<li>&laquo;&nbsp;<strong>CPU</strong>&nbsp;&raquo; : Le temps d&rsquo;utilisation processeur pour exécuter la requête (en seconde)</li>
<li>&laquo;&nbsp;<strong>SS</strong>&nbsp;&raquo; : Le temps d&rsquo;inactivité du slot depuis la dernière requête (en seconde)</li>
<li>&laquo;&nbsp;<strong>Req</strong>&nbsp;&raquo; : Le temps d’exécution de la dernière requête (en milliseconde)</li>
<li>&laquo;&nbsp;<strong>Slot</strong>&nbsp;&raquo; : Le nombre de Ko transféré par ce slot</li>
<li>&laquo;&nbsp;<strong>Client</strong>&nbsp;&raquo; : L&rsquo;adresse IP du client (visiteur)</li>
<li>&laquo;&nbsp;<strong>VHost</strong>&nbsp;&raquo; : L&rsquo;adresse du site Internet pour lequel la requête est exécutée</li>
<li>&laquo;&nbsp;<strong>Request</strong>&nbsp;&raquo; : La requête exécutée</li>
</ul>
<p>Nous pourrons ici cibler précisément quel script tourne en boucle, connait des soucis de surconsommation de ressources, etc.</p>
<h2 class="paddingTop">3 – Configurations supplémentaires</h2>
<p><strong>Pour aller plus loin dans la configuration de server-status :</strong></p>
<p>Il est aussi possible de <strong>changer l&rsquo;adresse de la page</strong> en modifiant la ligne</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">&lt;Location /server-status&gt;</pre>
<p>En</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">&lt;Location /nouvelle-adresse&gt;</pre>
<p>Ainsi le rapport sera accessible via l&rsquo;adresse : http://votre-server/nouvelle-adresse</p>
<p>Si vous ne souhaitez pas mettre en place de <strong>filtrage IP</strong> pour l&rsquo;accès à la page (ou en complément), il est possible de protéger la page via un <strong>mot de passe</strong> en utilisant un htpasswd. Pour ce faire, il faut ajouter les lignes suivantes avant &lt;/Location&gt;</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
AuthUserFile &quot;/var/www/.htpasswd&quot;
AuthName &quot;Veuillez vous identifier&quot;
AuthType Basic
Require valid-user
</pre>
<p>Ensuite pour le contenu du fichier .htpasswd, vous pouvez utiliser un <a title="htpasswd" href="http://www.infowebmaster.fr/outils/crypter-htpasswd.php" target="_blank">générateur</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/activer-et-configurer-le-server-status-apache-mod_status.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Empêcher les dépassements de mémoire sur un serveur Linux</title>
		<link>https://www.blog.florian-bogey.fr/empecher-les-depassements-de-memoire-sur-un-serveur-linux.html</link>
		<comments>https://www.blog.florian-bogey.fr/empecher-les-depassements-de-memoire-sur-un-serveur-linux.html#comments</comments>
		<pubDate>Sat, 20 Apr 2013 11:58:32 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[killer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mémoire]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[Noyau]]></category>
		<category><![CDATA[oom]]></category>
		<category><![CDATA[oom-killer]]></category>
		<category><![CDATA[overcommit_memory]]></category>
		<category><![CDATA[overcommit_ratio]]></category>
		<category><![CDATA[ram]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[swap]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=491</guid>
		<description><![CDATA[Par défaut Linux possède un mécanisme complexe nommé OOM-Killer (pour Out-Of-Memory Killer), ce dernier est incorporé au noyau Linux et permettra en cas de dépassement de mémoire de tuer des processus inutiles afin d&#8217;éviter un plantage complet du serveur. OOM-Killer va donc être appelé lorsque le RAM et le SWAP sont entièrement utilisés et que [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Par défaut Linux possède un mécanisme complexe nommé OOM-Killer (pour Out-Of-Memory Killer), ce dernier est incorporé au noyau Linux et permettra en cas de dépassement de mémoire de tuer des processus inutiles afin d&rsquo;éviter un plantage complet du serveur.</p>
<p><span id="more-491"></span></p>
<p><strong>OOM-Killer</strong> va donc être appelé lorsque le <strong>RAM</strong> et le <strong>SWAP</strong> sont entièrement utilisés et que le système n&rsquo;a plus assez de mémoire à allouer aux processus. Ensuite <strong>OOM-Killer</strong> déterminera quel processus tuer suivant des heuristiques et ne terminera donc pas des processus système vitaux.</p>
<p>Les appels à <strong>OOM-Killer</strong> sont enregistrés dans les journaux systèmes (/var/log/messages) :</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">httpd invoked oom-killer: gfp_mask=[...], order=[...], oomkilladj=[...]

[suivis de quelques ligne de debug &quot;Call Tace&quot;]</pre>
<p>Pour trouver tous les processus tués par <strong>OOM-Killer</strong> nous pourrons utiliser la commande suivante :</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">grep oom-killer /var/log/messages</pre>
<p>Ici nous voyons qu&rsquo;<strong>OOM-Killer</strong> a terminé le processus httpd (soit Apache). Dans certains cas, par exemple lors de l&rsquo;utilisation d&rsquo;un moteur de base de données contenant beaucoup d&rsquo;enregistrements, ou si <strong>OOM-Killer</strong> à tendance à terminer les processus SSH, base de données, serveur web (ou autre), il sera utile de modifier le comportement de Linux avec la mémoire disponible.</p>
<p>Pour cela nous allons modifier le paramètre noyau <strong>overcommit_memory</strong>, ce paramètre peut prendre trois valeurs différentes :</p>
<ul>
<li>0 : Il s&rsquo;agit du comportement par défaut, les réservations de mémoire seront acceptées ou refusées selon un heuristique</li>
<li>1 : Toujours accepter</li>
<li>2 : Accepter les demandes, si elle ne dépasse pas la quantité de ressource déterminée dans le paramètre <strong>overcommit_ratio</strong></li>
</ul>
<p>Le paramètre <strong>overcommit_ratio</strong> (par défaut 50) détermine le pourcentage de mémoire physique que l&rsquo;on autorise à allouer en plus du swap. Pour connaitre la quantité de mémoire que l&rsquo;on autorise à allouer, le calcul est le suivant :  SWAP + ((RAM*<strong>overcommit_ratio</strong>)/100)</p>
<p>Pour éviter les dépassements de mémoire nous allons donc modifier les deux paramètres noyaux en mettant <strong>overcommit_memory</strong> à 2 et <strong>overcommit_ratio</strong> à 95 (Certains préconisent des valeurs plus basses telles que 75 ou 85, voir plus hautes). Les manipulations sont à effectuer en tant que root.</p>
<p>Pour modifier de façon temporaire (annulée au prochain redémarrage) :</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
echo 2 &gt; /proc/sys/vm/overcommit_memory
echo 95 &gt; /proc/sys/vm/overcommit_ratio
</pre>
<p>Pour une modification définitive, il faut éditer le fichier /etc/sysctl.conf</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
vi /etc/sysctl.conf
</pre>
<p>Et ajouter/modifier les lignes suivantes :</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
</pre>
<p><a title="Photo" href="http://wallbase.cc/wallpaper/377152" target="_blank">Photo</a> et <a title="Référence" href="https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-captun.html" target="_blank">Référence</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/empecher-les-depassements-de-memoire-sur-un-serveur-linux.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Comment est &#171;&#160;construit&#160;&#187; Linux ?</title>
		<link>https://www.blog.florian-bogey.fr/comment-est-construit-linux.html</link>
		<comments>https://www.blog.florian-bogey.fr/comment-est-construit-linux.html#comments</comments>
		<pubDate>Sat, 06 Apr 2013 19:44:14 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[News diverses]]></category>
		<category><![CDATA[Non classé]]></category>
		<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Noyau]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Vidéo]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=482</guid>
		<description><![CDATA[La fondation Linux a publié une vidéo très bien faite qui explique le processus de création du noyau Linux. La vidéo donne aussi quelques chiffres intéressants sur le système d&#8217;exploitation en lui-même (d&#8217;où les confusions volontaires entre système d&#8217;exploitation et noyau). Parmi les chiffres intéressants, on apprend par exemple que chaque jour, plus de 850 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>La<strong> fondation Linux</strong> a publié une vidéo très bien faite qui explique le processus de<strong> création du noyau Linux</strong>. La vidéo donne aussi quelques chiffres intéressants sur le système d&rsquo;exploitation en lui-même (d&rsquo;où les confusions volontaires entre système d&rsquo;exploitation et noyau).</p>
<p><span id="more-482"></span></p>
<p>Parmi les chiffres intéressants, on apprend par exemple que chaque jour, plus de <strong>850 000 téléphones</strong> sous Linux sont activés, que <strong>9 super-ordinateurs</strong> sur 10 tournent sur Linux, ou encore que <strong>Google</strong>, <strong>Twitter</strong>, <strong>Facebook</strong> et <strong>Amazon</strong> utilisent Linux.</p>
<p><iframe frameborder="0" height="309" src="http://www.youtube.com/embed/yVpbFMhOAwE" width="550"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/comment-est-construit-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cacher la version d&#8217;un serveur Apache</title>
		<link>https://www.blog.florian-bogey.fr/cacher-la-version-dapache.html</link>
		<comments>https://www.blog.florian-bogey.fr/cacher-la-version-dapache.html#comments</comments>
		<pubDate>Thu, 28 Mar 2013 22:32:54 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[Développement web]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Fingerprinting]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ServerSignature]]></category>
		<category><![CDATA[ServerTokens]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=444</guid>
		<description><![CDATA[Dans ce billet qui est le premier d&#8217;une série d&#8217;articles traitant de la sécurisation d&#8217;un serveur web, nous allons voir comment masquer les informations diffusées par Apache. Par défaut, Apache affichera son numéro de version ainsi que le système d&#8217;exploitation utilisé et dans certains cas d&#8217;autres informations telles que les modules installés sur le serveur. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Dans ce billet qui est le premier d&rsquo;une série d&rsquo;articles traitant de la sécurisation d&rsquo;un serveur web, nous allons voir comment masquer les informations diffusées par Apache. Par défaut, Apache affichera son numéro de version ainsi que le système d&rsquo;exploitation utilisé et dans certains cas d&rsquo;autres informations telles que les modules installés sur le serveur.</p>
<p><span id="more-444"></span></p>
<p>Il est en effet important de divulguer le moins d&rsquo;informations possible à un éventuel pirate, en effet ce dernier pourrait se servir de ces informations pour mieux cibler son attaque.</p>
<p>Pour ce faire nous allons utiliser les directives Apache <strong>ServerSignature</strong> et <strong>ServerTokens</strong>.</p>
<p>La première directive que nous allons modifier est <strong>ServerSignature</strong>, qui par défaut (On) affiche sur chacune des pages d&rsquo;erreur générée les informations concernant le serveur.</p>
<p><img style="border: 0 none;" alt="ServerSignature version apache" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/03/ServerSignature-version-apache.jpg" /></p>
<p>Une fois la directive <strong>ServerSignature</strong> <strong></strong>à Off, le serveur n&rsquo;affiche plus aucune information sur les pages d&rsquo;erreur.<br />
<img style="border: 0 none;" alt="ServerSignature version apache" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/03/ServerSignature-version-apache-2.jpg" /></p>
<p>La seconde directive est <strong>ServerTokens </strong>permet de modifier le contenu du champ &laquo;&nbsp;Server&nbsp;&raquo; qui se situe dans l&rsquo;entête de chaque réponse envoyée par le serveur. Nous pouvons voir très simplement cette réponse grâce à la commande Telnet. Nous voyons ici qu&rsquo;il s&rsquo;agit d&rsquo;un serveur Apache en version 2.2.15 installé sur une CentOS.</p>
<p><img style="border: 0 none;" alt="ServerTokens version apache" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/03/ServerTokens-version-apache.jpg" /></p>
<p>Une fois la directive <strong>ServerTokens </strong><strong></strong>à Prod (Pour Product Only), le champ &laquo;&nbsp;Server&nbsp;&raquo; contiendra uniquement le nom du serveur web utilisé.<br />
<img style="border: 0 none;" alt="ServerTokens version apache" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/03/ServerTokens-version-apache-2.jpg" /></p>
<p>Pour modifier ces deux directives, il suffit d&rsquo;éditer le fichier <strong>httpd.conf</strong></p>
<pre class="brush: bash; gutter: false; title: ; notranslate">vi /etc/httpd/conf/httpd.conf</pre>
<p>De rechercher les lignes contenant <strong>ServerSignature</strong> et <strong>ServerTokens</strong> pour les remplacer par</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">ServerSignature Off</pre>
<p>Et</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">ServerTokens Prod</pre>
<p>Pour valider le changement de configuration, il suffit de recharger la configuration d&rsquo;Apache</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">service httpd reload</pre>
<p><a title="Photo" href="http://wallbase.cc/wallpaper/98415" target="_blank">Photo</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/cacher-la-version-dapache.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synchroniser l&#8217;heure d&#8217;un système avec NTP</title>
		<link>https://www.blog.florian-bogey.fr/gardez-vos-systemes-a-lheure-avec-ntp.html</link>
		<comments>https://www.blog.florian-bogey.fr/gardez-vos-systemes-a-lheure-avec-ntp.html#comments</comments>
		<pubDate>Sat, 23 Feb 2013 18:29:36 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[Heure]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NTP]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[Temps]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=377</guid>
		<description><![CDATA[Il peut être utile, voir dans certain cas indispensable, que l&#8217;horloge d&#8217;un système informatique soit synchronisée avec un temps de référence. C&#8217;est ce que permet de faire le protocole NTP (Network Time Protocol), nous allons dans ce petit tutoriel voir comment installer et configurer NTP sur un système Linux. Tout d&#8217;abord, il faut installer le [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Il peut être utile, voir dans certain cas indispensable, que l&rsquo;horloge d&rsquo;un système informatique soit synchronisée avec un temps de référence.</p>
<p>C&rsquo;est ce que permet de faire le protocole <strong>NTP</strong> (Network Time Protocol), nous allons dans ce petit tutoriel voir comment installer et configurer <strong>NTP</strong> sur un système Linux.</p>
<p><span id="more-377"></span></p>
<p>Tout d&rsquo;abord, il faut installer le paquet NTP, il est généralement installé sous la plupart des distributions :</p>
<pre class="brush: bash; title: ; notranslate">
#Pour CentOS/Red Hat/Fedora
yum install ntp

#Pour Debian/Ubuntu
apt-get install ntp
</pre>
<p>Éditer le fichier de configuration pour spécifier les serveurs de temps à utiliser</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/ntp.conf
</pre>
<p>Nous pouvons par exemple utiliser les serveurs du projet pool.ntp.org</p>
<pre class="brush: bash; title: ; notranslate">
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.org
</pre>
<p>Vous trouverez une liste complète de serveur à <a title="Liste serveurs NTP" href="http://www.pool.ntp.org/zone/europe" target="_blank">cette adresse</a> ou encore <a title="Liste serveurs NTP" href="www.cru.fr/services/ntp/serveurs_francais" target="_blank">ici</a></p>
<p>Il faut ensuite démarrer le service et lancer au démarrage du système</p>
<pre class="brush: bash; title: ; notranslate">
#Pour CentOS/Red Hat/Fedora
chkconfig ntpd on
service ntpd start

#Pour Debian/Ubuntu
update-rc.d ntp defaults
service ntp start
</pre>
<p>Pour forcer la mise à jour de l&rsquo;heure, nous utiliserons la commande <em><strong>ntpdate</strong> </em>il faudra d&rsquo;abord arrêter le service puis le relancer après la mise à jour</p>
<pre class="brush: bash; title: ; notranslate">
#Pour CentOS/Red Hat/Fedora/Debian/Ubuntu
service ntpd stop
ntpdate 0.fr.pool.ntp.org
service ntpd start
</pre>
<p>Pour vérifier que le système est bien à l&rsquo;heure, il suffira d’exécuter la commande <em><strong>date</strong></em></p>
<pre class="brush: bash; title: ; notranslate">
date
</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/gardez-vos-systemes-a-lheure-avec-ntp.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effectuer des tests de montée en charge avec Tsung (Partie 3 &#8211; Le test)</title>
		<link>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-3.html</link>
		<comments>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-3.html#comments</comments>
		<pubDate>Wed, 13 Feb 2013 21:08:58 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[Développement web]]></category>
		<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[charge]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[montée en charge]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[stress]]></category>
		<category><![CDATA[stress test]]></category>
		<category><![CDATA[Tsung]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=325</guid>
		<description><![CDATA[Cet article est la dernière partie d&#8217;un tutoriel en trois phases, consacré à Tsung. Après nous être intéressé à l&#8217;installation de Tsung, puis à sa configuration nous allons dans cette troisième partie effectuer le test sur notre plateforme et générer le rapport. Sommaire du tutoriel Effectuer des tests de montée en charge avec Tsung (Partie [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Cet article est la dernière partie d&rsquo;un tutoriel en trois phases, consacré à <strong>Tsung</strong>. Après nous être intéressé à l&rsquo;<a title="Effectuer des tests de montée en charge avec Tsung (Partie 1 – Installation)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-1.html">installation de Tsung</a>, puis à sa <a title="Effectuer des tests de montée en charge avec Tsung (Partie 2 – Configuration)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-2.html">configuration</a> nous allons dans cette troisième partie effectuer le test sur notre plateforme et générer le rapport.</p>
<p><span id="more-325"></span></p>
<p><strong>Sommaire du tutoriel</strong></p>
<ol>
<li><a title="Effectuer des tests de montée en charge avec Tsung (Partie 1 – Installation)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-1.html">Effectuer des tests de montée en charge avec Tsung (Partie 1 – Installation)</a></li>
<li><a title="Effectuer des tests de montée en charge avec Tsung (Partie 2 – Configuration)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-2.html">Effectuer des tests de montée en charge avec Tsung (Partie 2 – Configuration</a>)</li>
<li><strong>Effectuer des tests de montée en charge avec Tsung (Partie 3 – Le test)</strong></li>
</ol>
<h2 class="paddingTop">1 &#8211; Lancer le test</h2>
<p>Nous pouvons ensuite<strong> lancer le test</strong> avec la commande (qui par défaut chargera le fichier de configuration ~/.tsung/tsung.xml) :</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
tsung start
</pre>
<p>Pour utiliser un autre fichier de configuration, il faut passer le chemin de ce dernier à la commande, soit :</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
tsung -f ~/.tsung/tsung-second-test.xml start
</pre>
<p>Au lancement du test, <strong>Tsung</strong> crée un dossier contenant les logs, que nous utiliserons plus tard pour générer le rapport.</p>
<p><a title="Résultat de la commande Tsung start" href="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-start.jpg" rel="lightbox"><img alt="Tsung start" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-start.jpg" /></a></p>
<p>La montée en charge est maintenant lancée vous pouvez à tout moment l&rsquo;arrêter en tapant la commande « Tsung stop » ou la combinaison de touche ctrl+c</p>
<h2 class="paddingTop">2 &#8211; Générer le rapport</h2>
<p>Une fois le test terminé, il faut se rendre dans le dossier contenant les logs :</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
Cd ~/.tsung/log/20130201-2348
</pre>
<p>Et ensuite<strong> générer le rapport</strong> avec la commande (notez qu’il sera plus pratique de créer un alias nommé par exemple « tsung-repport » que d’exécuter cette commande).</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
/usr/lib/tsung/bin/tsung_stats.pl
</pre>
<p>Le rapport se trouvera alors dans le même dossier que les logs, et se nommera «<strong> repport.html</strong> »</p>
<p>L’ouverture du rapport peut se faire entre autre avec la commande (A condition d’utiliser l’option –X de ssh)</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
firefox report.html
</pre>
<p>Le rapport possède deux parties, la première étant composée de <strong>statistiques</strong>,</p>
<p><a title="Rapport de montée en charge Tsung" href="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-rapport-1-1024x615.png" rel="lightbox"><img alt="Rapport tsung" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-rapport-1-1024x615.png" width="500px" /></a></p>
<p>et la seconde de <strong>graphiques</strong>.</p>
<p><a title="Rapport de montée en charge Tsung" href="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-rapport-2-1024x615.png" rel="lightbox"><img alt="Rapport tsung" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-rapport-2-1024x615.png" width="500px" /></a></p>
<p><a title="Rapport de montée en charge Tsung" href="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-rapport-3-1024x615.png" rel="lightbox"><img alt="Rapport tsung" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-rapport-3-1024x615.png" width="500px" /></a></p>
<p>Il ne reste maintenant plus qu’à analyser le rapport afin de tirer les conclusions de cette montée en charge. A noter que le rapport ci-dessus a été généré en quelques secondes de tests (d’où le peu d’informations qu’il contient).</p>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-3.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Effectuer des tests de montée en charge avec Tsung (Partie 2 &#8211; Configuration)</title>
		<link>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-2.html</link>
		<comments>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-2.html#comments</comments>
		<pubDate>Wed, 13 Feb 2013 21:05:53 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[Développement web]]></category>
		<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[charge]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[montée en charge]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[stress]]></category>
		<category><![CDATA[stress test]]></category>
		<category><![CDATA[Tsung]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=302</guid>
		<description><![CDATA[Cet article est la seconde partie d&#8217;un tutoriel en trois phases, consacré à Tsung. Après nous être intéressé à l&#8217;installation de Tsung, nous allons dans cette seconde partie détailler la configuration de l&#8217;outil (tout en restant dans le cadre du test d&#8217;une application web) ainsi que l&#8217;enregistrement de scénarios. Sommaire du tutoriel Effectuer des tests [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Cet article est la seconde partie d&rsquo;un tutoriel en trois phases, consacré à <strong>Tsung</strong>. Après nous être intéressé à l&rsquo;<a title="Effectuer des tests de montée en charge avec Tsung (Partie 1 – Installation)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-1.html">installation de Tsung</a>, nous allons dans cette seconde partie détailler la configuration de l&rsquo;outil (tout en restant dans le cadre du test d&rsquo;une application web) ainsi que l&rsquo;enregistrement de scénarios.</p>
<p><span id="more-302"></span></p>
<p><strong>Sommaire du tutoriel</strong></p>
<ol>
<li><a title="Effectuer des tests de montée en charge avec Tsung (Partie 1 – Installation)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-1.html">Effectuer des tests de montée en charge avec Tsung (Partie 1 – Installation)</a></li>
<li><strong>Effectuer des tests de montée en charge avec Tsung (Partie 2 – Configuration)</strong></li>
<li><a title="Effectuer des tests de montée en charge avec Tsung (Partie 3 – Le test)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-3.html">Effectuer des tests de montée en charge avec Tsung (Partie 3 – Le test)</a></li>
</ol>
<h2 class="paddingTop">1 &#8211; Copier un exemple basique dans ~/.tsung</h2>
<p><strong>Tsung</strong> propose plusieurs fichiers d’exemples de configuration, et nous allons ici en prendre un simple afin de l’adapter à notre application. Il faut tout d’abord vérifier l’existence du répertoire ~/.tsung qui est l’emplacement des fichiers de configuration et de journaux de Tsung.</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
Mkdir ~/.tsung
</pre>
<p>Copier ensuite le fichier d’exemple.</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
cp  /usr/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml
</pre>
<h2 class="paddingTop">2 &#8211; Enregistrement d’un scénario</h2>
<p>A cette étape nous allons utiliser la commande « <strong>Tsung-recorder</strong> » pour enregistrer un scénario de navigation, c’est-à-dire l’activité d’un internaute sur notre application. Cette étape est néanmoins optionnelle puisqu’il sera possible d’écrire notre scénario directement dans le fichier de configuration de <strong>Tsung</strong> (un scénario peut être juste le chargement d’une page, un fichier etc.).</p>
<p>Pour lancer l’enregistrement d’un scénario il suffit de taper la commande :</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
tsung-recorder start
</pre>
<p><strong>Tsung-recorder</strong> lancera un proxy qui écoutera sur le port 8090 et enregistrera la navigation dans un fichier. Il suffira ensuite de paramétrer un navigateur internet afin qu’il utilise ce proxy.</p>
<p><strong>Tsung recorder</strong> nous indiquera aussi le nom du fichier généré.</p>
<p><a title="Résultat de la commande Tsung-recorder start" href="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-recorder.jpg" rel="lightbox"><img alt="Tsung recorder" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/tsung-recorder.jpg" width="500" /></a></p>
<p>L’étape suivante est de lancer le navigateur (ici Firefox) installé sur le serveur. Si vous ne possédez pas d’interface graphique sur le serveur, il faudra rediriger la sortie graphique avec l’option –X de ssh.</p>
<p>Pour ce faire, il faut tout d’abord installer les paquets X Window.</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
yum groupinstall 'X Window System'
</pre>
<p>Ouvrir une nouvelle session SSH.</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
ssh –X utilisateur@serveur
</pre>
<p>Puis lancer Firefox via la commande.</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
Firefox
</pre>
<p>Votre navigateur doit alors s’ouvrir. Il suffit maintenant de configurer le proxy et de naviguer sur l’application que l’on souhaite tester.</p>
<p><a title="Configurer le proxy de Firefox pour Tsung" href="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/proxy-firefox.png" rel="lightbox"><img alt="Tsung recorder" src="http://www.blog.florian-bogey.fr/wp-content/uploads/2013/02/proxy-firefox.png" width="500" /></a></p>
<p>Une fois terminé, taper la commande suivante pour arrêter l’enregistrement :</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
tsung-recorder stop
</pre>
<p>Nous pouvons visualiser l’enregistrement en ouvrant le fichier :</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
cat  ~/.tsung/tsung_recorder20130201-2335.xml
</pre>
<p>Voici un extrait du contenu :</p>
<pre class="brush: xml; auto-links: false; gutter: true; title: ; notranslate">
&lt;request&gt;&lt;http url='/index.html' version='1.1' method='GET'&gt;&lt;/http&gt;&lt;/request&gt;
&lt;request&gt;&lt;http url='/contact.html' version='1.1' method='GET'&gt;&lt;/http&gt;&lt;/request&gt;
</pre>
<h2 class="paddingTop">3 &#8211; Configuration du test</h2>
<p>Maintenant que tout est installé et que notre scénario est enregistré, nous allons éditer la configuration de notre test afin de renseigner tous les paramètres de la montée en charge. Pour cela il faut éditer le fichier<strong> tsung.xml</strong></p>
<p>Dans le XML de configuration, quatre nœuds vont nous intéresser :</p>
<ul>
<li><strong>&lt;Clients&gt;</strong> : Il s’agit de définir les clients utilisés par Tsung. Il est possible de définir les IP, nombre d’utilisateurs maximum, nombre de processeurs etc.</li>
<li><strong>&lt;Servers&gt;</strong> : Défini le serveur cible (notre plateforme à tester).</li>
<li><strong>&lt;Load&gt;</strong> : Défini la/les phase(s) d’arrivée(s) de nos visiteurs, c’est-à-dire les étapes de notre montée en charge. Le nœud Load est donc composé d’un ou plusieurs nœuds <strong>arrivalphase</strong>.
<ul>
<li><strong>&lt;Arrivalphase&gt;</strong> : Contient les détails d’une phase d’arrivée : durée, nombre d’utilisateurs à simuler, fréquence d’arrivée des visiteurs …</li>
<li>Généralement, plusieurs phases seront définies en accentuant la montée en charge, jusqu’à arriver à un stress intensif.</li>
</ul>
</li>
<li><strong>&lt;Sessions&gt;</strong> : Contient les scénarios d’utilisation possible. Chaque scénario équivaut à un nœud « Session », et est composé de « Request ». A noter qu’il est possible de définir des probabilités pour les scénarios (le total des probabilités doit toujours être égal à 100).
<ul>
<li><strong>Les boucles</strong> : permettent d’augmenter le nombre de requêtes à effectuer sur l’application. Tsung nous permet de boucler sur les balises <strong>&lt;request&gt;</strong>, via l’utilisation de <strong>&lt;For&gt;</strong> …</li>
<li>&lt;for from=&nbsp;&raquo;1&Prime; to=&nbsp;&raquo;10&Prime; var=&nbsp;&raquo;i&nbsp;&raquo;&gt;&lt;request&gt;&#8230;&lt;/request&gt;&lt;/for&gt; : Pour boucler 10 fois sur les &lt;<strong>Request&gt;</strong>, de façon à générer encore plus de requêtes sur notre plateforme.</li>
</ul>
</li>
</ul>
<p>Maintenant que nous avons présenté rapidement les principaux points du fichier de configuration, nous allons passer à l’édition. Pour ce faire, il suffit d’ouvrir le fichier<strong> ~/.tsung/tsung.xml</strong>, et de le modifier afin de créer la configuration de test idéale pour votre architecture, vos besoins, etc.</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
vi ~/.tsung/tsung.xml
</pre>
<p>Voici un exemple de fichier XML :</p>
<pre class="brush: xml; auto-links: false; gutter: true; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!DOCTYPE tsung SYSTEM &quot;/usr/share/tsung/tsung-1.0.dtd&quot;&gt;
&lt;tsung loglevel=&quot;notice&quot; version=&quot;1.0&quot;&gt;

	&lt;!-- Configuration du client --&gt;
	&lt;clients&gt;
		&lt;client host=&quot;localhost&quot; use_controller_vm=&quot;true&quot;/&gt;
	&lt;/clients&gt;

	&lt;!-- Configuration du serveur --&gt;
	&lt;servers&gt;
		&lt;server host=&quot;192.168.1.11&quot; port=&quot;80&quot; type=&quot;tcp&quot;&gt;&lt;/server&gt;
	&lt;/servers&gt;

	&lt;!-- phases d'arrivée, 3 paliers de 10 minutes où l'on augmente la fréquence d'arrivée de 1 puis 10 puis 30 visiteurs par seconde --&gt;
    &lt;load&gt;
        &lt;arrivalphase phase=&quot;1&quot; duration=&quot;10&quot; unit=&quot;minute&quot;&gt;
            &lt;users arrivalrate=&quot;1&quot; unit=&quot;second&quot;&gt;&lt;/users&gt;
        &lt;/arrivalphase&gt;
        &lt;arrivalphase phase=&quot;2&quot; duration=&quot;10&quot; unit=&quot;minute&quot;&gt;
            &lt;users arrivalrate=&quot;10&quot; unit=&quot;second&quot;&gt;&lt;/users&gt;
        &lt;/arrivalphase&gt;
        &lt;arrivalphase phase=&quot;3&quot; duration=&quot;10&quot; unit=&quot;minute&quot;&gt;
            &lt;users arrivalrate=&quot;30&quot; unit=&quot;second&quot;&gt;&lt;/users&gt;
        &lt;/arrivalphase&gt;
    &lt;/load&gt;

	&lt;!-- Les scénarios --&gt;
	&lt;sessions&gt;
		&lt;!-- Scénarios 1 avec 70% de probabilité, l'internaute charge successivement 3 pages --&gt;
		&lt;session name=&quot;scenario1&quot; probability=&quot;70&quot; type=&quot;ts_http&quot;&gt;
			&lt;request&gt;&lt;http url='/page1.html' version='1.1' method='GET'&gt;&lt;/http&gt;&lt;/request&gt;
			&lt;request&gt;&lt;http url='/page2.html' version='1.1' method='GET'&gt;&lt;/http&gt;&lt;/request&gt;
			&lt;request&gt;&lt;http url='/page3.html' version='1.1' method='GET'&gt;&lt;/http&gt;&lt;/request&gt;
		&lt;/session&gt;
		&lt;!-- Scénarios 2 avec 30% de probabilité, l'internaute charge 10 fois la page 1 --&gt;
		&lt;session name=&quot;scenario2&quot; probability=&quot;30&quot; type=&quot;ts_http&quot;&gt;
			&lt;for from=&quot;1&quot; to=&quot;10&quot; var=&quot;i&quot;&gt;
				&lt;request&gt;&lt;http url='/page1.html' version='1.1' method='GET'&gt;&lt;/http&gt;&lt;/request&gt;
			&lt;/for&gt;
		&lt;/session&gt;
	&lt;/sessions&gt;
&lt;/tsung&gt;
</pre>
<p>Dans la troisième et dernière partie de ce tutoriel nous verrons comment <a title="Effectuer des tests de montée en charge avec Tsung (Partie 3 – Le test)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-3.html">lancer le test de montée en charge et générer un rapport</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effectuer des tests de montée en charge avec Tsung (Partie 1 &#8211; Installation)</title>
		<link>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-1.html</link>
		<comments>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-1.html#comments</comments>
		<pubDate>Wed, 13 Feb 2013 21:00:09 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[Développement web]]></category>
		<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[charge]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[montée en charge]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[stress]]></category>
		<category><![CDATA[stress test]]></category>
		<category><![CDATA[Tsung]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=268</guid>
		<description><![CDATA[Cet article est la première partie d&#8217;un tutoriel en trois phases, consacré à Tsung, un outil de test de montées charge multi-protocoles. Dans cette première partie nous ferons une brève introduction concernant l&#8217;outil et les tests de montée en charge, puis nous verrons comment installer Tsung sur une distribution Linux. Tsung est un outil permettant [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Cet article est la première partie d&rsquo;un tutoriel en trois phases, consacré à <strong>Tsung</strong>, un outil de test de montées charge multi-protocoles. Dans cette première partie nous ferons une brève introduction concernant l&rsquo;outil et les tests de montée en charge, puis nous verrons comment installer Tsung sur une distribution Linux.</p>
<p><span id="more-268"></span></p>
<p><strong>Tsung</strong> est un outil permettant d’effectuer des tests de montée en charge sur une architecture. Une de ses particularités, est qu’il ne se limite pas au protocole <strong>HTTP</strong>, mais gère aussi WebDAV, SOAP, PostgreSQL, <strong>MySQL</strong> ou encore LDAP. Tsung est gratuit, distribué sous licence GPLv2 et dispose d’une <a title="Documentation Tsung" href="http://tsung.erlang-projects.org/user_manual.html" target="_blank">documentation </a>relativement claire.</p>
<p>Le principe est relativement simple : l’application va simuler l’arrivée de nombreux utilisateurs sur la plateforme. Le plus de <strong>Tsung</strong> par rapport à ses concurrent est de pouvoir créer des scénarios d’utilisation (et propose même un utilitaire d’enregistrement de scénario). Cela signifie que l’application ne se contente pas de charger une page à intervalle régulier, mais de simuler la navigation sur la plateforme.</p>
<p>Une fois le test terminé, <strong>Tsung</strong> nous permettra de générer un rapport contenant une série de graphiques ; l’analyse sera donc relativement simple.</p>
<p>L’utilisation d’utilitaires de montée en charge comme Tsung permet :</p>
<ul>
<li>De connaître la charge qu’une plateforme peut supporter</li>
<li>Vérifier que la capacité d’accueil de la plateforme est conforme aux spécifications (et donc aux demandes d’un client par exemple)</li>
</ul>
<p>Avant d’utiliser cet outil, il est bon de s’assurer de deux choses :</p>
<ul>
<li>Que le réseau est suffisamment dimensionné : en effet un réseau sous dimensionné créera un goulot d’étranglement en amont de notre plateforme.</li>
<li>La plateforme doit vous appartenir. Dans le cas contraire, vous devez avoir un accord de l’hébergeur.</li>
</ul>
<p>Nous allons ici nous intéresser à la mise en place d’un test simple sur une application web. Nous effectuerons les manipulations sous <strong>CentOS</strong>, les commandes seront donc identiques sous <strong>Fedora</strong> et <strong>Red Hat</strong> (RHEL). Pour les autres distributions, seuls les noms des paquets devraient changer ainsi que deux ou trois commandes.</p>
<p><strong>Sommaire du tutoriel</strong></p>
<ol>
<li><strong>Effectuer des tests de montée en charge avec Tsung (Partie 1 – Installation)</strong></li>
<li><a title="Effectuer des tests de montée en charge avec Tsung (Partie 2 – Configuration)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-2.html">Effectuer des tests de montée en charge avec Tsung (Partie 2 – Configuration)</a></li>
<li><a title="Effectuer des tests de montée en charge avec Tsung (Partie 3 – Le test)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-3.html">Effectuer des tests de montée en charge avec Tsung (Partie 3 – Le test)</a></li>
</ol>
<h2 class="paddingTop">1 &#8211; Installer CentOS</h2>
<p>Comme dit précédemment, nous utiliserons <strong>CentOS</strong>, la version 6.3 minimale. Pour le téléchargement, c’est par <a title="Télécharger CentOS" href="http://www.centos.org/modules/tinycontent/index.php?id=31" target="_blank">ici</a>.</p>
<p>La première étape sera donc l’installation de la distribution.</p>
<h2 class="paddingTop">2 &#8211; Ajouter les dépôts additionnels</h2>
<p>Nous installons ici les dépôts <strong>RPMForge</strong>, <strong>EPEL</strong> et <strong>Remi</strong> qui nous servirons à installer les paquets requis pour l’installation de <strong>Tsung</strong>.</p>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
</pre>
<h2 class="paddingTop">3 &#8211; Mise à jour de la distribution et installation des paquets utiles</h2>
<p>Nous allons maintenant mettre à jour la distribution et installer les paquets Man, Locate, Bash-Completion, Make et Wget.</p>
<pre class="brush: bash; auto-links: false; title: ; notranslate">
yum update
yum install man mlocate bash-completion make wget
</pre>
<h2 class="paddingTop">4 &#8211; Installer les pré-requis</h2>
<p>Nous allons maintenant installer les paquets requis pour l’installation de <strong>Tsung</strong>. Il s’agit d’<strong>Erlang</strong>, <strong>Perl</strong>, Gnuplot ainsi que certains modules de Perl.</p>
<pre class="brush: bash; auto-links: false; title: ; notranslate">
yum install erlang perl gnuplot perl-RRD-Simple.noarch perl-Log-Log4perl-RRDs.noarch perl-Template-Toolkit
</pre>
<p>Nous installerons aussi Firefox car il nous servira pour la visualisation des rapports.</p>
<pre class="brush: bash; auto-links: false; title: ; notranslate">
yum --enablerepo=remi install Firefox
</pre>
<h2 class="paddingTop">5 &#8211; Installation de Tsung</h2>
<p>Nous allons maintenant passer à l’installation de <strong>Tsung</strong> à proprement parler. A l’heure de l’écriture de ce guide, Tsung est en version 1.4.2. La dernière version se trouve sur <a title="Télécharger Tsung" href="http://tsung.erlang-projects.org" target="_blank">le site officiel</a>.</p>
<p>Pour le téléchargement :</p>
<pre class="brush: bash; auto-links: false; title: ; notranslate">
cd /tmp
wget http://tsung.erlang-projects.org/dist/tsung-1.4.2.tar.gz
</pre>
<p>Ensuite il faut décompresser l’archive et compiler Tsung. Cette dernière opération peut être un peu longue.</p>
<pre class="brush: bash; auto-links: false; title: ; notranslate">
tar zxfv  tsung-1.4.2.tar.gz
cd tsung-1.4.2
./configure &amp;&amp; make &amp;&amp; make install
</pre>
<p><a title="Effectuer des tests de montée en charge avec Tsung (Partie 2 – Configuration)" href="http://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-2.html">Partie 2 : La configuration de Tsung</p>
<p></a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/tutoriel-tests-montee-charge-tsung-partie-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer Cron (Crond, Crontab) sur CentOS/Fedora/RHEL</title>
		<link>https://www.blog.florian-bogey.fr/installer-cron-crond-crontab-sur-centosfedorarhel.html</link>
		<comments>https://www.blog.florian-bogey.fr/installer-cron-crond-crontab-sur-centosfedorarhel.html#comments</comments>
		<pubDate>Tue, 12 Feb 2013 18:02:51 +0000</pubDate>
		<dc:creator><![CDATA[Florian]]></dc:creator>
				<category><![CDATA[Administration Linux]]></category>
		<category><![CDATA[Logiciels]]></category>
		<category><![CDATA[Systèmes et réseaux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[Cron]]></category>
		<category><![CDATA[Crond]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[crontabs]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[vixie-cron]]></category>

		<guid isPermaLink="false">http://www.blog.florian-bogey.fr/?p=295</guid>
		<description><![CDATA[Bien souvent les installations minimales des distributions du type CentOS/Fedora/Red Hat (RHEL) n&#8217;ont pas Cron d&#8217;installé par défaut. Voici comment installer facilement et rapidement la Crontab ainsi que le démon Crond sur ces distributions.]]></description>
				<content:encoded><![CDATA[<p>Bien souvent les installations minimales des distributions du type CentOS/Fedora/Red Hat (RHEL) n&rsquo;ont pas Cron d&rsquo;installé par défaut. Voici comment installer facilement et rapidement la Crontab ainsi que le démon Crond sur ces distributions.</p>
<p><span id="more-295"></span></p>
<pre class="brush: bash; title: ; notranslate">

yum install vixie-cron crontabs
chkconfig crond on
service crond start

</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.blog.florian-bogey.fr/installer-cron-crond-crontab-sur-centosfedorarhel.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
