# articles

feed_id: http://blog.nicolargo.com/?p=6934
title: BatInfo, une lib Python pour vos batteries
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/Rop3p2v_yPo/6934.html
content:
<p
style="text-align: justify;">Je souhaitais ajouter dans Glances un plugin permettant de superviser l'état des batteries. J'ai donc commencé à chercher une librairie Python permettant de s'acquiter le plus simplement possible de cette tache qui sous un système GNU/Linux consiste à analyser le répertoire /sys/class/power_supply maintenu à jour par le noyau Linux.</p><p>Comme je n'ai pas trouvé mon bonheur, j'ai donc décidé de développer un librairie Python: BatInfo.</p><p>Les sources de cette librairie <a
href="https://github.com/nicolargo/batinfo">sont disponibles sur Github</a> en licence LGPL.</p><h1>Installation</h1><p>L'installation sur votre système peut se faire simplement via la librairie Pypi:</p><pre class="crayon-plain-tag">sudo pip install batinfo</pre><p>L'utilisation de la librairie dans vos développement Python est la suivante, on commence par inclure la librairie:</p><pre class="crayon-plain-tag">import batinfo</pre><p>Puis on créé une instance (bat) de la classe principale (batteries):</p><pre class="crayon-plain-tag">bat = batinfo.batteries()</pre><p>On peut récupérer les données brutes (format JSON) en utilisant:</p><pre class="crayon-plain-tag">bat.stat
[{"status": "Full", "capacity": 50, "name": "CMB1", "uevent": "POWER_SUPPLY_NAME=CMB1\nPOWER_SUPPLY_STATUS=Full\nPOWER_SUPPLY_PRESENT=1\nPOWER_SUPPLY_TECHNOLOGY=Li-ion\nPOWER_SUPPLY_CYCLE_COUNT=0\nPOWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000\nPOWER_SUPPLY_VOLTAGE_NOW=12496000\nPOWER_SUPPLY_CURRENT_NOW=0\nPOWER_SUPPLY_CHARGE_FULL_DESIGN=5800000\nPOWER_SUPPLY_CHARGE_FULL=5800000\nPOWER_SUPPLY_CHARGE_NOW=3900000\nPOWER_SUPPLY_CAPACITY=100\nPOWER_SUPPLY_MODEL_NAME=CP293550-01\nPOWER_SUPPLY_MANUFACTURER=Fujitsu\nPOWER_SUPPLY_SERIAL_NUMBER=01A-Z100320001158Z", "alarm": 0, "charge_full": 5800000, "voltage_now": 12496000, "serial_number": "01A-Z100320001158Z", "cycle_count": 0, "current_now": 0, "charge_now": 3900000, "voltage_min_design": 10800000, "path": "/sys/class/power_supply/CMB1", "technology": "Li-ion", "manufacturer": "Fujitsu", "type": "Battery", "model_name": "CP293550-01", "present": 1, "charge_full_design":5800000}]</pre><p></p><p
style="text-align: justify;">Les données brutes se présentent sous la forme d'une liste de dictionnaire (un dictionnaire par batterie présente sur votre système). Comme la plupart du temps les machines (portable) ont une seule batterie, on peut avoir le dictionnaire associé à cette première batterie avec:</p><p></p><pre class="crayon-plain-tag">bat.stat[0]
{"status": "Full", "capacity": 100, "name": "CMB1", "uevent": "POWER_SUPPLY_NAME=CMB1\nPOWER_SUPPLY_STATUS=Full\nPOWER_SUPPLY_PRESENT=1\nPOWER_SUPPLY_TECHNOLOGY=Li-ion\nPOWER_SUPPLY_CYCLE_COUNT=0\nPOWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000\nPOWER_SUPPLY_VOLTAGE_NOW=12496000\nPOWER_SUPPLY_CURRENT_NOW=0\nPOWER_SUPPLY_CHARGE_FULL_DESIGN=5800000\nPOWER_SUPPLY_CHARGE_FULL=5800000\nPOWER_SUPPLY_CHARGE_NOW=3900000\nPOWER_SUPPLY_CAPACITY=100\nPOWER_SUPPLY_MODEL_NAME=CP293550-01\nPOWER_SUPPLY_MANUFACTURER=Fujitsu\nPOWER_SUPPLY_SERIAL_NUMBER=01A-Z100320001158Z", "alarm": 0, "charge_full": 5800000, "voltage_now": 12496000, "serial_number": "01A-Z100320001158Z", "cycle_count": 0, "current_now": 0, "charge_now": 3900000, "voltage_min_design": 10800000, "path": "/sys/class/power_supply/CMB1", "technology": "Li-ion", "manufacturer": "Fujitsu", "type": "Battery", "model_name": "CP293550-01", "present": 1, "charge_full_design":5800000}</pre><p>Les statistiques présentes dans le dictionnaire dépende de votre batterie. Mais on retrouve un certain nombre d'informations génériques comme par exemple la capacité restante (en %):</p><pre class="crayon-plain-tag">bat.stat[0].capacity
50</pre><p>la capacité maximale:</p><pre class="crayon-plain-tag">bat.stat[0].charge_full
5800000</pre><p>ou encore la capacité courante:</p><pre class="crayon-plain-tag">bat.stat[0].charge_now
3900000</pre><p>On peut aussi avoir des informations constructeurs:</p><pre class="crayon-plain-tag">bat.stat[0].manufacturer
'Fujitsu'
bat.stat[0].technology
'Li-ion'</pre><p>En espérant que cette librairie soit utile à certains. Si vous avez des remarques/rapports de bug à faire, merci d'utiliser le Github: <a
href="https://github.com/nicolargo/batinfo/issues">https://github.com/nicolargo/batinfo/issues</a></p><p>Il ne me reste plus, pour ma part, qu'à intégrer cela dans Glances.</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/06/6934.html">BatInfo, une lib Python pour vos batteries</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Rop3p2v_yPo:602vI68K5qQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Rop3p2v_yPo:602vI68K5qQ:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/Rop3p2v_yPo" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7082
title: Support de présentation SophiaConf 2013 &#8211; Raspberry Pi
uri: Support-de-présentation-SophiaConf-2013-Raspberry-Pi
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/-Bicc8HdmrQ/support-de-presentation-sophiaconf-2013-raspberry-pi.html

content:
<p
style="text-align: justify;">Pas trop le temps de bloguer en ce moment entre le boulot, le développement de <a
href="https://github.com/nicolargo/glances/issues?milestone=3&amp;page=1&amp;state=open">la prochaine version de Glances</a> et... la préparation de la conf de présentation du Raspberry Pi que j'ai faite jeudi dernier dans le cadre <a
href="http://www.telecom-valley.fr/pagecmsblog/0407-open-source-open-hardware-dyi">des SophiaConf 2013</a>.</p><p>Voici donc le support de présentation que j'ai utilisé et qui est bien sûr ré-utilisable comme tout ce que je publie sur ce site (<a
href="http://creativecommons.org/licenses/by/3.0/deed.fr">licence CC BY 3.0</a>).</p><p>Elle est disponible <a
href="http://www.nicolargo.com/press/sophiaconf2013">à partir de ce lien</a> ou en cliquant sur l'image ci-dessous (j'ai utilisé <a
href="https://github.com/shower/shower">le framework de présentation Shower</a>).</p><p><a
href="http://www.nicolargo.com/press/sophiaconf2013/index.html"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7090" alt="Raspberry - SophiaCOnf 2013" src="media/313a677e.capture_100.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/07/capture_100.png" width="557" height="499" /></a></p><p>Pour avoir une version PDF, il suffit <a
href="http://www.nicolargo.com/press/sophiaconf2013/index.html">d'ouvrir la présentation dans votre navigateur</a> Web et de faire imprimer vers PDF !</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/07/support-de-presentation-sophiaconf-2013-raspberry-pi.html">Support de présentation SophiaConf 2013 &#8211; Raspberry Pi</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=-Bicc8HdmrQ:gzjGiBW79sY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=-Bicc8HdmrQ:gzjGiBW79sY:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/-Bicc8HdmrQ" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7157
title: Présentation des nouveautés de Glances 1.7
uri: Présentation-des-nouveautés-de-Glances-1-7
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/97lMlJ8u3nI/presentation-des-nouveautes-de-glances-1-7.html

content:
<p
style="text-align: justify;">De retour de congés avec dans ma besace une nouvelle version de <a
href="http://nicolargo.github.io/glances/">Glances</a> qui sera la dernière version majeure de la série 1.x. La prochaine version sera donc une 2.x avec notamment un gros travail initial de refactoring/découpage du code en modules car le script initial atteint une taille critique (plus de 4400 lignes) qui commence à le rendre difficilement évolutif.</p><p>Mais revenons donc à nos moutons pour parler de cette version de Glances 1.7:</p><p
style="text-align: center;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-7160" alt="screenshot Glances 1.7" src="media/7aeb4afe.screenshot.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/screenshot.png" width="536" height="438" /></p><h1>Un peu d'histoire</h1><p
style="text-align: justify;">Pour ceux d'entre vous qui découvrent Glances dans ce billet, c'est un projet que j'ai lancé maintenant il y a 2 ans pour palier à un manque dans les outils de supervision système. En effet, j'utilisais tout un tas de logiciels (netstat, top, ntop, ifstat, dstat...) pour investiguer les éventuels problèmes de performance sur un système d'exploitation. Mais aucun ne permettait une visualisation simple (via un terminal par une connexion SSH) et rapide (sur un seul écran) des statistiques nécessaires. Glances était née.</p><p
style="text-align: justify;">Cette version apporte, en plus de son lot de corrections de bugs, d'améliorations des performances et de la documentation de nouvelles fonctionnalité que nous allons détailler ensemble</p><h1>Les "Monitored Processes List"</h1><p
style="text-align: justify;">L'objectif qui se cache derrière cette nouvelle fonction est de pouvoir, en un clin d'oeil, voir l'état d'un ensemble de processus regroupés ensemble sous une même thématique.</p><p
style="text-align: justify;">Par exemple, sur un machine hébergeant un serveur Web dynamique, la supervision des processus "importants" peut se découper de la manière suivante:</p><ul><li>Serveur Nginx: processus NGinx</li><li>Serveur PHP: processus PHP-FPM</li><li>Serveur de caching des pages: processus Varnish</li><li>Serveur de base de données: processus MySQL</li><li>Serveur de caching des objets: processus Memcached</li></ul><p
style="text-align: justify;">On a donc 5 objets à superviser. Dans Glances, la définition de ces objets est faite via le fichier de configuration glances.conf. Chaque objet est défini par:</p><ul><li><strong>description</strong>: description des processus (au maximum 16 caractères, exemple: Serveur Web Nginx)</li><li><strong>regex</strong>: expression régulière permettant de regrouper les processus dans l'objet (exemple: .*nginx.*)</li></ul><p>et optionnellement par:</p><ul><li><strong>command</strong>: chemin complet vers un script qui sera executé par Glances à chaque rafraichissement (donc toutes les 3 secondes par défaut) et qui devra retourner une chaine de caractère d'une seule et unique ligne contenant des informations utiles pour cet objet. Attention à ne pas utiliser un script trop consommateur de ressources ou bien d'augmenter le temps de rafraichissement (option -t &lt;secondes&gt;)</li><li><strong>countmin</strong>: nombre minimal de processus attendus. Un message de warning sera affiché si le nombre de processus passe en dessous de cette valeur.</li><li><strong>countmax</strong>: nombre maximal de processus attendus. Un message de warning sera affiché si le nombre de processus passe en dessus de cette valeur.</li></ul><p><em>Note: par défaut, Glances par sur le principe ou le groupe ne contient qu'un seul processus (donc countmin = countmax = 1)</em></p><p>Ainsi, la configuration de l'objet n°1 (on peut définir jusqu'à 10 objets) correspondant au serveur Web Nginx est donc la suivante:</p><pre class="crayon-plain-tag">[monitor]
list_1_description=Serveur Web Nginx
list_1_regex=.*nginx.*
list_1_command=nginx -v
list_1_countmin=1
list_1_countmax=4</pre><p>Dans Glances, l'affichage des objets se fait de la manière suivante:</p><p
style="text-align: center;"><img
alt="monitored" src="media/6438b302.monitored.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/monitored.png" width="479" height="106" /></p><p>La couleur détermine l'état de l'objet. Si le nombre de processus:</p><ul><li>est compris entre countmin et countmax alors Glances affichera l'objet en vert (état OK)</li><li>est différent de 0 mais non compris entre countmin et countmax alors Glances affichera l'objet en orange (état WARNING)</li><li>est égal à 0 alors Glances affichera l'objet en rouge (état CRITICAL)</li></ul><p>Comme pour toutes les autres statistiques importantes de Glances, le changement des états est logué.</p><p
style="text-align: justify;">En mode client/serveur la liste des items est défini au niveau serveur. Une nouvelle entrée dans l'API permet au client de récupérer la liste sur le serveur.</p><h1>Supervision de la température des disques</h1><p
style="text-align: justify;">Sur certain système, notamment les NAS, la température des disques est un critére important à surveiller. En partant de ce postulat, MendelGusmao a développé un module optionnel (activable en passant l'option -y au lancement de Glances) permettant d'aller récupérer la température des disques sur le daemon HDDTemp qui doit être lancé sur votre machine (<a
href="http://www.cyberciti.biz/tips/howto-monitor-hard-drive-temperature.html">voir ici les instructions d'installation de HDDTemp sur Debian/Ubuntu</a>).</p><p>Sur ma machine (qui ne comporte qu'un seul disque dur), j'obtiens l'affichage suivant:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7163" alt="hddtemp" src="media/7c4504da.hddtemp.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/hddtemp.png" width="193" height="58" /></p><p
style="text-align: justify;">Il est bien sûr possible de définir les seuils d'alertes dans la section [hddtemperature] du fichier de configuration de Glances. Les valeurs par défaut sont: CAREFUL=45 / WARNING = 52 / CRITICAL = 60 (en ° celcus).</p><h1>Information sur l'état de charge de la batterie</h1><p
style="text-align: justify;">J'ai reçu plusieurs demandes d'utilisateur de Glances souhaitant superviser la capacité de la batterie (notamment dans le cas d'utilisation de nano PC autonomes). Premier problème, PsUtil ne remonte pas ce genre de statistiques (du moins dans la version actuelle 1.0). Après une rapide et non exhaustive recherche sur le net d'une bibliothéque Python permettant d'obtenir simplement les informations disponibles sur les systèmes Linux j'ai du me résoudre à coder moi même quelque chose. C'est donc ainsi que Batinfo est apparu il y a quelques semaines.</p><p
style="text-align: justify;">L'intégration de la librairie Batinfo a été ensuite une formalité et Glances propose donc, si une ou plusieurs batteries sont détectés, l'affichage du pourcentage de capacité restante au milieu du footer:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7162" alt="battery" src="media/b7d113f1.battery.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/battery.png" width="600" height="90" /></p><p>Limitation: cette statistique est uniquement disponible sur les systèmes Linux.</p><h1>Une option pour un Glances "low CPU"</h1><p
style="text-align: justify;">Le traitement de la liste comprenant les processus est un des facteur principaux de la consommation CPU de Glances. Sur certain système (notamment les nanos PC comme les Raspberry Pi), il est conseillé de réduire le taux de rafraichissement des statistiques pour faire baisser cette consommation CPU. Cependant, si vous avez besoin d'un taux de rafraichissement important sans avoir besoin du détail des processus alors l'option -r codé par J.Renner est faite pour vous. En lançant Glances avec l'option -r, vous allez désactiver tout les traitements des processus (liste dynamique, monitored process list...) et ainsi disposer d'un Glances faiblement consommateur de CPU.</p><p>Sur ma machine de développement, l'utilisation de cette option fait passer la consommation CPU de 2.9% à 0.3%.</p><h1>Détail de la CPU au lancement de Glances</h1><p
style="text-align: justify;">Une version précédante de Glances voyait apparaître une option (activable en appuyant sur la touche '1' dans Glances) permettatn d'afficher le détail de la CPU par coeur et non plus globalement. Une nouvelle option sur la ligne de commande (-1) permet de lancer par défaut ce mode d'affichage.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7167" alt="per-cpu" src="media/d6d45e96.per-cpu.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/per-cpu.png" width="317" height="72" /></p><h1>IPv6</h1><p>Enfin un vrai support IPv6 pour le mode client serveur de Glances.</p><p>A tester simplement et localement avec:</p><pre class="crayon-plain-tag">glances -s -B ::0</pre><p>pour lancer le serveur en mode IPv6 avec un bind sur toutes les interfaces.</p><p>Puis ensuite on lance le client sur le localhost IPv6:</p><pre class="crayon-plain-tag">glances -c ::1</pre><p></p><h1>Et puis...</h1><p>Quelques autre petites nouveautés:</p><ul><li>Platform/architecture is more specific now</li><li>Add support for local conf file</li><li>Add a uninstall script</li><li>Add getNetTimeSinceLastUpdate() getDiskTimeSinceLastUpdate() and getProcessDiskTimeSinceLastUpdate() in the API</li><li>Add more translation: Italien, Chinese</li></ul><h1>Conclusion</h1><p>Tout d'abord un grand merci aux principaux contributeurs de cette nouvelle version:</p><ul><li><a
href="https://github.com/asergi">Alessio Sergi</a></li><li><a
href="https://github.com/MendelGusmao">Mendel Gusmao</a></li><li><a
href="https://github.com/jrenner">Jon Renner</a></li><li><a
href="https://github.com/dongwm">Dong weiming</a></li></ul><p
style="text-align: justify;">Ensuite, je compte sur vous pour tester cette nouvelle version qui est dès à présent disponible sous Pypi (les packages Debian, BSD, Windows et Mac ne devrait pas trop tarder).</p><h1 style="text-align: justify;">Installation et mise à jour de Glances 1.7</h1><p>Si vous avez installé Glances via Pypi (ce que je conseille), une mise à jour peut se faire simplement via la ligne de commande:</p><pre class="crayon-plain-tag">sudo pip install --upgrade Glances</pre><p>Pour une installation toute fraîche (pour les nouveaux venus ayant les droits root):</p><pre class="crayon-plain-tag">sudo pip install Glances</pre><p>ou la commande équivalente pour une installation locale (pour les nouveaux venus sans les droits root):</p><pre class="crayon-plain-tag">pip install --user Glances</pre><p>Si vous préférerez utiliser les packages Debian/Ubuntu, Windows et Mac OS, il va falloir attendre un peu que mes "packagers" attitrés bossent un peu.</p><p>J'attend vos retours sur les commentaires suivants ou vos retour de bug/demande d'amélioration <a
href="https://github.com/nicolargo/glances">sur le site du dépôt officiel</a>.</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/08/presentation-des-nouveautes-de-glances-1-7.html">Présentation des nouveautés de Glances 1.7</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=97lMlJ8u3nI:V_mqzH-vqmo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=97lMlJ8u3nI:V_mqzH-vqmo:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/97lMlJ8u3nI" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7191
title: L’écosystème autour de Glances
uri: L-écosystème-autour-de-Glances
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/berJUvLBYhM/lecosysteme-autour-glances.html
content:
<p>Le nombre de projets gravitant autour de <a
href="http://nicolargo.github.io/glances/">Glances</a> étant devenu assez important, j'ai dessiné le schéma suivant (à partir <a
href="https://www.gliffy.com/">du service en ligne Gliffy</a> pour les plus curieux d'entre vous):</p><div
style="width: 604px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;" class="wp-caption aligncenter"><a
href="https://github.com/nicolargo/glances/wiki/The-Glances-eco-system"><img
class="  " alt="L'écosystème Glances" src="https://dl.dropboxusercontent.com/s/p03wx11cs1lst6p/glances-echosystem.png?token_hash=AAEtflQdMWU2jbBuKT9m488xLKKF0b_MRoc0Xu-PDntI5A&amp;dl=1" width="594" height="511" /></a><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">L'écosystème Glances</p></div><p>Le cœur de Glances (source disponible <a
href="https://github.com/nicolargo/glances">sur le Github officiel</a>) est <strong><span
style="color: #339966;">représenté en vert</span></strong>.</p><p>On trouve ensuite <strong><span
style="color: #00ccff;">en bleu</span></strong> les projets composant son écosystème:</p><ul><li><span
style="line-height: 16px;"><a
href="http://nicolargo.github.io/checkglances/">Glances plugin (ou CheckGlances)</a> est un plugin pouvant de récupérer les statistiques d'un serveur Glances à partir de Nagios, Centreon ou de Shinken (ou de tout autre système compatible avec les plugins Nagios). <a
href="http://blog.nicolargo.com/2012/12/checkglances-ou-la-rencontre-de-glances-et-de-nagios.html">Voir ce billet</a> pour un exemple de mise en oeuvre.</span></li></ul><div
style="width: 584px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;" class="wp-caption aligncenter"><a
href="http://nicolargo.github.io/checkglances/"><img
class=" " alt="" src="media/efde688f.checkglances.png" data-original-source="https://github.com/nicolargo/checkglances/raw/master/doc/checkglances.png" width="574" height="198" /></a><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">CheckGlances</p></div><ul><li><a
href="https://github.com/spin0us/MetaGlances">MetaGlances</a> est une interface Web qui permet de centraliser les statistiques de plusieurs serveurs Glances. L'interface est "responsive" et donc compatible avec les écrans des PC, des tablettes et des smartphones (<a
href="http://blog.nicolargo.com/2013/04/metaglances-une-interface-pour-les-gouverner-tous.html">plus d'informations sur ce billet</a>)</li></ul><div
style="width: 330px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;" class="wp-caption aligncenter"><a
href="https://github.com/spin0us/MetaGlances"><img
alt="" src="media/dff8aace.screenshot-02.png" data-original-source="https://github.com/spin0us/MetaGlances/raw/master/doc/screenshot-02.png" width="320" height="480" /></a><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">MetaGlances</p></div><p>&nbsp;</p><ul><li><a
href="https://github.com/Progi1984/PHPGlances">PHPGlances</a> est une API PHP pour s'interfacer simplement avec un serveur Glances. C'est la brique utilisé par MetaGlances. Pour un <a
href="http://rootslabs.net/blog/168-phpglances-une-librairie-php-pour-glances">exemple de mise en oeuvre</a>, vous pouvez lire ce billet sur le blog RootsLabs</li></ul><ul><li><a
href="https://github.com/jrenner/java-glances">JavaGlances</a> est une API Java pour Glances développé par Jon Renner, un contributeur actif du coeur de Glances. Jon a notamment utilisé cette librairie pour développer l'application Glances pour Android, <a
href="https://play.google.com/store/apps/details?id=org.jrenner.androidglances">disponible gratuitement en téléchargement sur Google Play</a> et dont les sources <a
href="https://github.com/jrenner/android-glances">sont proposées sur Github</a>.</li></ul><div
style="width: 312px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;" class="wp-caption aligncenter"><a
href="https://play.google.com/store/apps/details?id=org.jrenner.androidglances"><img
class="  " alt="" src="media/ab19a9ed.glances_screenshot.png" data-original-source="https://github.com/jrenner/android-glances/raw/master/img/glances_screenshot.png" width="302" height="538" /></a><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Android Glances</p></div><p>&nbsp;</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/08/lecosysteme-autour-glances.html">L’écosystème autour de Glances</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=berJUvLBYhM:va3Xanl3u2A:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=berJUvLBYhM:va3Xanl3u2A:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/berJUvLBYhM" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7187
title: Distributed Monitoring Nagios à l’aide de Mod-Gearman
uri: Distributed-Monitoring-Nagios-à-l-aide-de-Mod-Gearman
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/JgoUZinkzqM/distributed-monitoring-nagios-laide-mod-gearman.html

content:
<p
style="text-align: justify;"><span
style="color: #ff0000;">Pour nous parler de Nagios et de supervision distribuée, j'ai le plaisir d’accueillir sur ce blog, en tant que rédacteur invité, <strong>Laurent Hugot</strong>. Laurent travaille actuellement pour la société Altair en Belgique et à en charge les activités de supervision.</span></p><p
style="text-align: center;"><span
style="color: #ff0000;">===</span></p><p
dir="ltr" style="text-align: justify;">Le "Distributed Monitoring" est une solution utilisée lorsque l’on veut surveiller plusieurs sites avec une seule installation de Nagios, qu’elle soit redondante ou non. La solution mise en avant dans ce billet est <a
href="https://labs.consol.de/lang/en/nagios/mod-gearman/">Mod-Gearman</a> qui est un module Nagios abouti, performant et fiable.</p><h1 dir="ltr">Que nécessite cette solution ?</h1><p
dir="ltr">Le DistributedMonitoring de Nagios avec Mod-Gearman nécessite au minimum deux éléments :</p><ul><li>Un serveur qui sera à la fois le serveur Nagios et le serveur de jobs Mod-Gearman</li><li>Un Worker qui peut être indépendant ou présent sur le serveur de jobs Mod-Gearman</li></ul><h1 dir="ltr">Comment cela fonctionne-t-il ?</h1><p
dir="ltr">Mod-Gearman fonctionne de cette façon :</p><ul><li>Un côté Job Server qui distribuera les jobs et rapatriera les résultats</li><li>Et un côté Worker qui réalisera les checks sur les hôtes de ses hostgroups</li></ul><p
style="text-align: left;">De manière plus précise le fonctionnement détaillé est le suivant:</p><ol><li>Le serveur de Jobs attend d’être contacté par des workers</li><li>Lorsque les workers contactent le job server , ils s’authentifient auprès de lui, et il les répertorie</li><li>Le serveur de jobs dispose d’un Event Broker que l’on insère dans Nagios</li><li>Il remplacera donc la partie de Nagios qui réalise les checks, pour pouvoir les distribuer à sa guise</li></ol><p
style="text-align: left;">Un worker peut avoir plusieurs hostgroups d’assignés. Pour chaque hostgroup auquel il sera assigné, il prendra les jobs que le serveur de jobs mettra à disposition.</p><h2 style="text-align: left;">Côté technique</h2><p
dir="ltr">Le serveur de Jobs ne contacte pas les workers. Ce sont les workers qui contactent le serveur de jobs.</p><p
dir="ltr" style="text-align: justify;">Cela implique qu’il soit joignable depuis l’extérieur, mais cela implique surtout que vos workers , à l’abris derrière des firewalls bien configurés, pourront communiquer sans le moindre souci avec votre serveur de jobs. Cela vous épargne de devoir percer le moindre trou dans les Firewalls de vos précieux clients.</p><p
dir="ltr" style="text-align: justify;">Les connexions entre vos workers et votre (ou vos) job server(s) sont chiffrées, vous pouvez configurer votre structure pour désactiver ce chiffrement, si vous le souhaitez. On peut configurer la structure pour gérer les hosts et les services ou alors gérer les hostgroups. Ici j’aborderai la solution Hostgroups, pour le distributed monitoring, le mode host&amp;services serait plutôt du failOver et loadbalancing pur.</p><h2 dir="ltr">Côté pratique</h2><p
dir="ltr">Pour faire simple (mais alors vraiment simple): on installe le serveur jobs sur le serveur de Nagios, on configure le NEB (Nagios Event Broker) dans la configuration de Nagios, et ensuite on configure un worker par site à surveiller, on le branche et c’est terminé. (Oui, aussi simple.)</p><p
dir="ltr">Plus sérieusement : la configuration sera expliquée plus bas, mais le système est fait de telle façon à accueillir chaque worker qui se connecte au serveur de jobs, et de cette façon la distribution est totalement automatique tant que la configuration des hostgroups et du worker est faite comme il se doit.</p><h1 style="text-align: left;">Un peu de théorie</h1><p
dir="ltr">Avant de parler d’installation et de configuration, apprenons le concept, et le fonctionnement d’un Nagios fonctionnant avec un Mod-Gearman.</p><p
dir="ltr">Voici un schéma illustrant mon serveur Nagios en production:</p><p
dir="ltr"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7188" alt="nagios-modgearman" src="media/c808edd2.nagios-modgearman-580x445.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/nagios-modgearman-580x445.png" width="580" height="445" /></p><p
dir="ltr">On voit ici la façon dont j’ai architecturé mon Nagios pour gérer des clients facilement.</p><p
dir="ltr">Chaque dossier client qui se trouve dans /etc/nagios3/conf.d/hosts/ contient un fichier de définition de hostgroup , et un fichier par machine , et un dernier fichier comprennant les personnes de contact à mailer pour les alertes, et les plages horaires.</p><p
dir="ltr">Le reste des fichiers de configuration sont dans /etc/nagios3/conf.d/</p><p
dir="ltr">Ici sont les templates utilisés pour tous les clients , et les templates /contacts / timeperiods utilisés pour notre infrastructure.</p><p
dir="ltr">J’ai représenté deux workers qui contactent, à travers plusieurs Firewalls mon serveur de jobs , qui prend les checks à nagios et qui lui restitue les résultats.</p><p
dir="ltr">Il n’y a pas de modifications à apporter à Nagios pour dire. Une mention pour chaque hôte lui spécifiant quel worker doit se charger de lui, un Event Broker dans /etc/nagios3/nagios.cfg et c’est tout. Pour le reste c’est de la config de Workers.</p><h1 dir="ltr">Préparatifs et installation étape par étape</h1><p
dir="ltr">Pour préparer un serveur de jobs et un worker, il faut suivre quelques étapes cruciales.</p><p
dir="ltr">Nous avons besoin avant de commencer :</p><p
dir="ltr">Un Serveur Nagios 3.4.1 sur une Debian 7 (la manœuvre ne diffère pas beaucoup selon les OS , juste la façon de compiler qui devrait être différente, mais je n’expliquerai ici que la méthode que j’ai réalisé pour Debian, travaillant exclusivement sur cet OS. Merci Antoine Habran :D )</p><p
dir="ltr">Et en bonus : Un Worker Raspberry Pi mod. B. (ou sinon un autre pc.)</p><p
dir="ltr">En bonus car on peut s’en passer, car le Job Server peut contenir un Worker. Mais l’idée c’est de mettre le Worker ailleurs sur le net et le voir contacter notre serveur, pas vrai ? </p><h2 dir="ltr">Explications</h2><p
dir="ltr" style="text-align: justify;">Nous allons télécharger et installer sur notre serveur Nagios « Gearmand »  qui est le « moteur » de mod-gearman , et ensuite, mod-gearman. La seconde étape consiste à configurer Nagios en mode Broker et à configurer le job server. Ensuite, on passera à la création d’un hôte d’exemple pour expliquer comment il sera géré et que vous puissiez vous en inspirer. Pour terminer on configurera un Worker (je ferai un exemple d’un worker Raspberry Pi Mod.B et un worker sur un debian 7 normal sur VM machine physique)</p><h2 dir="ltr">Installation de Mod-Gearman</h2><p
dir="ltr">Ah ouais, là on y est ! les prochaines lignes vont décrire les étapes nécessaires a l’installation de mod-gearman , et on va procéder comme suit :</p><ol><li>Installation des packages pour l’installation</li><li>Téléchargement de la source de Gearmand</li><li>Décompression de la source Gearmand</li><li>Compilation de Gearmand</li><li>Installation de Gearmand</li><li>Téléchargement de la source de mod-gearman</li><li>Décompression de la source mod-gearman</li><li>Compilation de mod-gearman</li><li>Installation de mod-gearman</li><li>Configuration du job server mod-gearman</li><li>Configuration du N.E.B de Nagios</li><li>Configuration du Worker mod-gearman</li></ol><p
style="text-align: left;">Là nous aurons un serveur mod-gearman complet et opérationnel.</p><p
dir="ltr">Il ne manquera qu’un Worker pour surveiller un site distant, mais le serveur sera fonctionnel et autonome, déjà.</p><p
style="text-align: left;">D’abord avant de faire quoi que ce soit, il faut installer tous les prérequis pour la compilation et l’installation de gearmand, et mod-gearman.</p><p
dir="ltr">Donc , si vous avez bien mis à jour votre système (apt-get update , apt-get upgrade)</p><p
dir="ltr">On lance ceci :</p><p></p><pre class="crayon-plain-tag">apt-get install libcurl4-gnutls-dev autoconf automake make gcc g++ netcat uuid-dev libltdl7 libltdl-dev libncurses5-dev libevent-dev libboost-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev build-essential libboost-thread-dev libcloog-ppl0</pre><p>On devrait avoir à ce stade tous les éléments pour la compilation, sauf un (libgearman6) qui doit s’installer après.</p><p
dir="ltr"><p
dir="ltr">On passe ensuite au téléchargement et décompression des sources de Mod-Gearman:</p><p></p><pre class="crayon-plain-tag">cd /tmp
wget https://launchpad.net/gearmand/1.2/1.1.9/+download/gearmand-1.1.9.tar.gz
tar zxvf gearmand-1.1.9.tar.gz
cd gearmand-1.1.9</pre><p></p><p
dir="ltr">Maintenant on prépare le système pour réaliser l’installation de gearmand dans le dossier /opt/ en faisant comme ça , on peut le mettre à jour très facilement et proprement , ou le supprimer. Tapons ces deux lignes :</p><p></p><pre class="crayon-plain-tag">echo «opt/lib/» /etc/ld.so.conf.d/opt_lib.conf
ldconfig</pre><p></p><p
dir="ltr">On lance l'installation:</p><p></p><pre class="crayon-plain-tag">./configure --prefix=/opt
make
make install</pre><p>Et si jusqu’ici tout a bien fonctionné et que vous n’avez pas d’erreurs : Le plus dur est fait !.</p><p
dir="ltr">Maintenant que Gearmand est installé, on peut installer Mod-Gearman.</p><p></p><pre class="crayon-plain-tag">cd /tmp
wget http://labs.consol.de/wp-content/uploads/2010/09/mod_gearman-1.4.2.tar.gz
tar zxvf mod-gearman-1.4.2.tar.gz
cd mod-gearman-1.4.2</pre><p>Puis on lance l'installation:</p><pre class="crayon-plain-tag">./configure --prefix=/opt --with-gearman=/opt --with-user=nagios --with-init-dir=/etc/init.d
make
make install
make install-config</pre><p>On doit maintenant copier un fichier vers /etc/init.d pour pouvoir lancer proprement gearmand.</p><pre class="crayon-plain-tag">cp ./extras/gearmand-init /etc/init.d/gearmand</pre><p>ensuite il faut ajouter un shell a l’utilisateur Nagios </p><pre class="crayon-plain-tag">chsh nagios
&gt;&gt; /bin/bash
chmod –R 770 /opt/var/log/mod_gearman
chown –R nagios:nagios /opt/var/log/mod_gearman</pre><p>Voila qui est fait.</p><p
dir="ltr"><span
style="text-decoration: underline; color: #c0c0c0;">Note: Correction du script de démarrage de Gearmand </span></p><p
dir="ltr"><span
style="color: #c0c0c0;">Si vous subissez un plantage lorsque vous tentez de démarrer gearmand , (ce qui était systématiquement mon cas…)  il y a une modification à faire dans le script de démarrage /etc/init.d/gearmand</span></p><p
dir="ltr"><p
dir="ltr"><span
style="color: #c0c0c0;">Démarrez gearmand :</span></p><p></p><pre class="crayon-plain-tag"><span style="color: #c0c0c0;">/etc/init.d/gearmand start</span></pre><p><span
style="color: #c0c0c0;">Si vous avez un crash, c’est quasi obligatoirement ceci : La ligne 89 du script contient un argument de verbosité qui fait planter gearmand.</span></p><p
dir="ltr"><span
style="color: #c0c0c0;">Supprimez l’argument de verbosité dans cette ligne :</span></p><p
dir="ltr"><span
style="color: #c0c0c0;">CMD="$DAEMON -p $PORT -P $PIDFILE $OPTIONS --log-file=$LOGFILE --verbose=2 --listen=$LISTEN"</span></p><p
dir="ltr"><span
style="color: #c0c0c0;">Et retirez le --verbose=2</span></p><p
dir="ltr"><span
style="color: #c0c0c0;">Cette option, pour une raison qui m’échappe fait planter gearmand.</span></p><p
style="text-align: left;">Si tout fonctionne, arrêtez Gearmand (On le rallumera plus tard).</p><p></p><pre class="crayon-plain-tag">/etc/init.d/gearmand stop</pre><p></p><h2>Configuration du Job Server sur le serveur</h2><p
dir="ltr">Configurons le serveur de jobs pour l’intégrer à nagios et le rendre prêt à accueuillir un worker.</p><p
dir="ltr">Éditons le fichier de config <strong>/opt/etc/mod_gearman_neb.conf</strong>:</p><p></p><pre class="crayon-plain-tag">debug=0
logfile=/opt/var/log/mod_gearman/mod_gearman_neb.log
server=127.0.0.1:4730
do_hostchecks=yes
encryption=yes
key=Superpasswordquidéchire
use_uniq_jobs=on
localhostgroups=
localservicegroups=
queue_custom_variable=WORKER
result_workers=1
perfdata=no
perfdata_mode=1
orphan_host_checks=yes
orphan_service_checks=yes
accept_clear_results=no</pre><p>Ici l’important, c’est la key, elle doit être identique sur votre fichier NEB et sur vos workers.</p><p
dir="ltr">La « queue_custom_variable » est essentielle aussi, elle définit ce qui qualifie un worker pour la configuration d’un hôte. Vous verrez pourquoi on définit cette valeur plus loin.</p><p
dir="ltr">On va passer au worker maintenant.</p><h2 style="text-align: left;">Configuration du Worker sur le serveur</h2><p
dir="ltr">On va configurer notre serveur pour qu’il surveille le site dans lequel il se trouve. En faisant cela, notre serveur Nagios – mod-Gearmand va surveiller le hostgroup dans lequel vous avez mis toutes vos machines, un peu comme avant l’installation de mod-gearman.</p><p
dir="ltr">Pour ça , on édite le fichier /opt/etc/mod_gearman_worker.conf (avec quelques informations masquées... je conserve un peu de secret concernant mon infrastructure de production :D):</p><p
dir="ltr"><p></p><pre class="crayon-plain-tag">debug=0
hostgroups=hostgroup1-servers,hostgroup2-servers
logfile=/opt/var/log/mod_gearman/mod_gearman_worker.log
server=127.0.0.1:4730
encryption=yes
key=Superpasswordquidéchire
job_timeout=60
min-worker=5
max-worker=50
idle-timeout=30
max-jobs=1000
spawn-rate=1
fork_on_exec=no
load_limit1=0
load_limit5=0
load_limit15=0
show_error_output=yes
enable_embedded_perl=on
use_embedded_perl_implicitly=off
use_perl_cache=on
p1_file=/opt/share/mod_gearman/mod_gearman_p1.pl
workaround_rc_25=off</pre><p>Voila, c’est une configuration basique, pour le worker du serveur. Ajoutez les hostgroups que vous souhaitez checker avec CE worker , le mot de passe partagé par le serveur et les workers, et l’ip du serveur. Le reste sert à gérer le comportement du worker, ses limites, seuils.</p><p
style="text-align: left;">A partir de là , le système est prêt à fonctionner, mais… pas la configuration de Nagios. On va donc s’occuper de ça !</p><h2 dir="ltr">Configuration de Nagios</h2><p
dir="ltr">Nous devons éditer Nagios pour lui dire que maintenant c’est papa qui s’occupe des checks.</p><p
dir="ltr"><em>ATTENTION : Ne JAMAIS inclure ou retirer de module BROKER (comme on va faire là) a chaud, ne jamais modifier quelque fichier que ce soit d’un module BROKER a chaud.</em></p><p
dir="ltr">Distinction entre fichiers de module et fichier de config de mod-gearman toutefois.</p><p
dir="ltr">Mod-gearman est indépendant du module broker et peut être redémarrer pendant que nagios tourne. Pour l’inclusion du Broker dans nagios, on arrête celui-ci.</p><p></p><pre class="crayon-plain-tag">/etc/init.d/nagios3 stop</pre><p>On va éditer son fichier de configuration /etc/nagios3/nagios.cfg</p><pre class="crayon-plain-tag">Broker_module=/opt/lib/mod_gearman/mod_gearman.o config=/opt/etc/mod_gearman_neb.conf</pre><p>Note: En une ligne séparé d’un espace.</p><h1 style="text-align: left;">Configuration des hostgroups</h1><p
dir="ltr">Il nous est nécessaire d’avoir une configuration orientée hostgroups pour mettre en place votre architecture distribuée.</p><p
dir="ltr">Je vais illustrer cette configuration comme sur le schéma du début du document. On va donc créer deux hostgroups : hostgroup1-servers et hostgroup2-servers :</p><p></p><pre class="crayon-plain-tag">touch /etc/nagios3/conf.d/hosts/client1/hostgroup1.cfg
touch /etc/nagios3/conf.d/hosts/client2/hostgroup2.cfg</pre><p>ensuite on va ajouter des machines, il nous faut au moins une machine par hostgroup.</p><pre class="crayon-plain-tag">touch /etc/nagios3/conf.d/hosts/client1/serveurnagios.cfg
touch /etc/nagios3/conf.d/hosts/client2/serveurlambda.cfg</pre><p>il nous faut un worker sur le site distant, disons que le client2 est a 200Km d’où je me trouve, je me rend sur place, je déploie un worker, dont on parlera plus bas, et je ne m’en occupe plus, mais il faut le surveiller aussi le petit coquin </p><pre class="crayon-plain-tag">touch /etc/nagios3/conf.d/hosts/client2/worker.cfg</pre><p>Voici le fichier contenu de mon fichier hostgroup1.cfg:</p><pre class="crayon-plain-tag">define hostgroup{
hostgroup_name hostgroup1-servers
alias mes serveurs du hostgroup 1
members hostgroup1-serveurnagios
}
define hostextinfo{
hostgroup_name hostgroup1-servers
notes serveurs du hostgroup1
icon_image base/uneimage.png
icon_image_alt hostgroup1 logo
vrml_image base/uneimage.png
statusmap_image base/uneimage.png
}</pre><p>Ici rien de spécial, comme vous le voyez. Le hostgroup est défini normalement.</p><p
dir="ltr">Voici un fichier pour l’hôte « hostgroup1-serveurnagios » /etc/nagios3/conf.d/hosts/hostgroup1/serveurnagios.cfg</p><p></p><pre class="crayon-plain-tag">define host{
       use generic-host
       host_name hostgroup1-serveurnagios
       alias hostgroup1-serveurnagios
       address 127.0.0.1
       _WORKER hostgroup_hostgroup1-servers
       }
define service{
       use generic-service
       host_name hostgroup1-serveurnagios
       check_command check_ssh
       }</pre><p></p><p
dir="ltr">Voila un fichier d’hôte lambda, pour aller avec le fichier de hostgroup correspondant. J’ai mis un service lambda aussi, un check ssh.</p><p
style="text-align: left;">Le second hostgroup sera comme suit :</p><p></p><pre class="crayon-plain-tag">define hostgroup{
hostgroup_name hostgroup2-servers
alias mes serveurs du hostgroup 2
members hostgroup2-serveurlambda,hostgroup2-worker
}
define hostextinfo{
hostgroup_name hostgroup2-servers
notes serveurs du hostgroup2
icon_image base/uneimage2.png
icon_image_alt hostgroup2 logo
vrml_image base/uneimage2.png
statusmap_image base/uneimage2.png
}</pre><p></p><p
dir="ltr">Voici le fichier hôte de la machine serveur lambda:</p><p></p><pre class="crayon-plain-tag">define host{
       use generic-host
       host_name hostgroup2-serveurlambda
       alias hostgroup2-serveurlambda
       address 192.168.1.200
       _WORKER hostgroup_hostgroup2-servers
       }
define service{
       use generic-service
       host_name hostgroup2-serveurlambda
       check_command check_ssh
       }</pre><p>et le fichier de config du worker</p><pre class="crayon-plain-tag">define host{
       use generic-host
       host_name hostgroup2-worker
       alias hostgroup2-worker
       address 192.168.1.100
       _WORKER hostgroup_hostgroup2-servers
       }
define service{
       use generic-service
       host_name hostgroup2-worker
       check_command check_ssh
       }</pre><p></p><h2>Configuration du worker présent sur le serveur</h2><p
dir="ltr">Alez sur votre serveur éditer le fichier de config /opt/etc/mod_gearman_worker.conf et modifiez pour que la ligne:</p><p></p><pre class="crayon-plain-tag">hostgroups=</pre><p>soit :</p><pre class="crayon-plain-tag">hostgroups=hostgroup1-servers</pre><p></p><h1>Démarrage de l’infrastructure</h1><p
style="text-align: left;">D’abord, on va démarrer Nagios,  gearmand, ensuite le worker mod-gearman.</p><p></p><pre class="crayon-plain-tag">/etc/init.d/nagios3 start
/etc/init.d/gearmand start</pre><p>Et ensuite :</p><pre class="crayon-plain-tag">su nagios -c '/etc/init.d/mod_gearman_worker start'</pre><p>Le worker doit être démarré par l’utilisateur Nagios pour fonctionner. Donc on l’éxécute avec la commande su et l’option -c .</p><p
dir="ltr">Pour faciliter les choses, éditez /etc/rc.local et ajoutez les deux lignes :</p><p></p><pre class="crayon-plain-tag">/etc/init.d/gearmand start
su nagios -c '/etc/init.d/mod_gearman_worker start'</pre><p>Note: AVANT la ligne “exit 0” (sinon ça ne fonctionnera pas)</p><p
style="text-align: left;">Et comme ça à chaque reboot vos services seront exécutés comme il se doit.</p><p
dir="ltr">Là tout devrait tourner proprement, et les checks pour votre serveur Nagios être exécutés, pas les autres.</p><p
dir="ltr">Le worker du hostgroup2 et le serveur lambda du hostgroup2 qui n’existent d’ailleurs pas ne devraient pas rendre de critical car ils ne sont pas pris en charge.Il vous faudra ajouter un worker avec la ligne :</p><p></p><pre class="crayon-plain-tag">Hostgroups=hostgroup2-servers</pre><p>On peut évidemment mettre plusieurs workers pour un seul hostgroup, il suffit de les mettre avec la même configuration.</p><h1 style="text-align: left;">Worker Raspberry Pi Mod. B</h1><p
dir="ltr">Ce que je trouve magique avec l’architecture distribuée Gearman , c’est qu’elle peut être utilisée avec des Raspberry… Si vous ne connaissez pas, vous devriez vraiment vous pencher sur ces machines merveilleuses !</p><p
dir="ltr">Pour réaliser un worker sur un raspberry PI mod.B , rien de plus simple. Une fois l’installation du Raspbian faite sur votre carte SD, lancez votre raspberry, configurez le avec le raspi-config, et ensuite mettez le à jour . (apt-get update , apt-get upgrade)</p><p
dir="ltr">Ensuite, on tape :</p><p></p><pre class="crayon-plain-tag">apt-get install mod-gearman-worker</pre><p>Il va s’installer, et vous n’aurez qu’à le configurer basiquement pour qu’il soit pris en charge </p><p
dir="ltr">Exemple de config : /etc/mod-gearman-worker/worker.conf</p><p></p><pre class="crayon-plain-tag">server=ippublique:4730
key= Superpasswordquidéchire
hostgroup=hostgroup2-servers
encryption=yes
job_timeout=60
p1_file=/usr/share/mod-gearman/mod_gearman_p1.pl</pre><p>Ouais… C’est tout!</p><p
dir="ltr">Par défaut il va gérer le worker comme un petit chef, rien besoin de plus que ceci.</p><p
dir="ltr">Le serveur, le password, le(s) hostgroup(s) , l’encryption, et par contre…</p><p
dir="ltr">SURTOUT spécifier ce job_timeout=60 (60 ou ce qui conviendra à vos check, si vous avez par ex. un check qui met 2Mn à rendre son résultat, montez la valeur)</p><p
dir="ltr">Si vous ne le faites pas et qu’un check « casse » en route, suite à un souci de connexion ou autre, votre worker attendra vita aeternam le résultat , et sera par conséquent… Planté ! ça ne vous ferait pas plaisir de faire 200Km en voiture pour débrancher et rebrancher un pc grand comme une carte de crédit, pas vrai ? (Comment ça, ça sent le vécu ? Je ne vous perm… oui c’est vrai.)</p><p
dir="ltr">Donc , créez une machine virtuelle ou autre, sur une range inaccessible par votre serveur Nagios, avec l’ip spécifiée dans le fichier de config, (192.168.1.200) configurez la pour qu’elle réponde au ping et au ssh. Ensuite branchez un worker configuré comme expliqué sur le réseau ou elle se trouve… (en respectant la config d’ip selon le fichier de config dans nagios bien sûr)</p><p
dir="ltr">Et comme par magie les deux machines seront prises en charge, de part leur configuration , le worker va contacter le job server, lui signaler sa présence, et là il enverra des tâches de check au worker qui les éxécutera et renverra le résultat au job server qui lui-même répondra à Nagios.</p><h1 dir="ltr">Surveillance des jobs</h1><p
style="text-align: left;">Je vous vois venir, vous pensez : « Mais comment est-ce que je vois ce qui se passe derrière tout ça ?</p><p
dir="ltr">Et bien il y a une solution toute faite : gearman_top !</p><p
dir="ltr">Il se trouve dans /opt/bin/</p><p
dir="ltr">On peut ajouter son path dans la variable path en ajoutant :</p><p></p><pre class="crayon-plain-tag">PATH=$PATH:/opt/bin</pre><p></p><p
dir="ltr">Dans le fichier /root/.bashrc</p><p
dir="ltr">Comme ça, vous pourrez le lancer comme n’importe quelle commande.</p><p
dir="ltr">Lancez le , et admirez :</p><p
dir="ltr"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7189" alt="capture_115" src="media/4fd08d38.capture_115.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/capture_115.png" width="563" height="261" /></p><p
dir="ltr">Voici une petite illustration d’une infrastructure avec 8 hostgroups , et des workers.</p><p
dir="ltr">J’ai mis un serveur qui en gère 6 à lui seul , et 2 workers qui en gèrent un chacun.</p><p
dir="ltr">J’ai utilisé des noms de clients donc je les ai censurés pour cet exemple.</p><h1 dir="ltr">Performances</h1><p
dir="ltr">Mod-gearman améliore énormément les performances de Nagios !</p><p
dir="ltr">Même si vous ne comptez ni utiliser le distributed monitoring, ni le load balancing, ou le fail over, le choix d’utiliser mod-gearman sur votre nagios améliorera très nettement (on parle là de la moitié de consommation processeur, mesdammes !) les performances du serveur Nagios.</p><p
dir="ltr">Pour les cas testés, et pas uniquement par moi, les gains de performances sont de pratiquement 50%</p><p
dir="ltr">Tests réalisés sur des serveurs qui ont une utilisation moyenne de 55-60% de processeur, le fait de juste passer sur Gearman fait chuter la consommation processeur vers les 25%.</p><p
dir="ltr">Mod-gearman EST un must, chers amis !</p><h1 dir="ltr">Problèmes rencontrés</h1><p
dir="ltr">Voici une petite liste des problèmes que j’ai rencontré en démarrant seul sans aucune info sur mod-gearman , le jour ou j’ai décidé de me pencher sur cette technologie et d’apprendre a partir de rien à m’en servir.</p><p
dir="ltr"><strong>Timeout sur workers :</strong></p><p
dir="ltr">Au début je n’avais pas défini de temps de timeout sur les workers… ça m’a vallu un déplacement aussi long qu’inutile pour aller reboot le raspberry pi, n’oubliez pas de définir le job_timeout= sur vos workers…</p><p
dir="ltr"><strong>Compilation gearman :</strong></p><p
dir="ltr">En temps normal je me contente de faire apt-get install lorsque j’ai besoin de quelque chose.</p><p
dir="ltr">Or quand j’ai commencé à me servir de mod-gearman, les packages n’étaient pas disponibles en repo pour l’apt-get install… donc j’ai du me mettre à le compiler moi-même , d’où la procédure ou on voit sa compilation alors que des versions (évidemment pas aussi à jour que celle expliquée ici, au jour ou j’écris ceci) sont disponible en repo…</p><p
dir="ltr">Je n’ai certainement pas réalisé le sans fautes, probable que certains packages dans la phase d’installation des paquets ne sont pas essentiels, mais j’ai trié au maximum et je pense avoir fait ça proprement. Je suis preneur pour toute suggestion ou remarque </p><p
dir="ltr"><strong>Plantage gearmand au lancement :</strong></p><p
dir="ltr">Comme je le décris dans la procédure, il y a un plantage qui peut survenir au lancement de gearmand , qui se corrige par une modification du fichier dans /etc/init.d , ce problème m’a fait perdre pas loin d’une semaine, en ayant retourné le problème dans TOUS les sens , j’étais loin de suspecter qu’une option de verbosité, normalement présente pour aider a la résolution de problèmes de pantages, soit la cause du problème que je traquais… Comme quoi, il faut se méfier de tout.</p><h1 dir="ltr"><strong>Surveillance des workers</strong></h1><p
dir="ltr">Je conclus cette rubrique par ce point, la surveillance de vos workers.</p><p
dir="ltr">Si vous avez bien compris le fonctionnement des workers, on peut déceler une faille…</p><p
dir="ltr">Si un worker n’est plus accessible, comment va-t-il répondre au job server pour dire qu’il n’est pas accessible ? On est d’accord c’est impossible. Alors, comment déterminer si un worker est OOR (out of range) ou non ?</p><p
dir="ltr">J’ai pondu un petit script utilisant gearman_top qui permet ça. Le voici :</p><p
dir="ltr">Le script:</p><p></p><pre class="crayon-plain-tag">#!/bin/bash
basevalue=`/opt/bin/gearman_top -b | grep "hostgroup_$1-servers"`
value1=`echo $basevalue | cut -d "|" -f3 | tr -d ' '`
value2=`echo $basevalue | cut -d "|" -f4 | tr -d ' '`
value3=`echo $basevalue | cut -d "|" -f2 | tr -d ' '`
critical=$2
threshold=$(($2/2))
if [[ $value1 -gt $critical ]]
then    if [[ $value2 -gt $threshold ]]
       then
               echo " Accumulation de Jobs sur le worker $1, attention!"
               echo " $value1 jobs en attente , $value2 jobs en cours "
               retval=1;
               else
               echo " Le worker $1 ne prend plus de Jobs, Critical! "
               echo " $value1 jobs en attente!"
               retval=2;
       fi
else
echo "Tout va bien. $value1 Wait $value2 run $value3 avail"
echo "$value1 jobs en attente, $value2 jobs en cours et $value3 workers dispo."
retval=0;
fi
exit $retval;</pre><p>le fichier de definition de commande:</p><pre class="crayon-plain-tag">define command{
       command_name    check_workers
       command_line    /usr/lib/nagios/plugins/check_workers.sh $ARG1$ $ARG2$
       }</pre><p></p><p
dir="ltr">Et un exemple utilisé sur mon serveur :</p><p></p><pre class="crayon-plain-tag">define service{
       use                     generic-service
       host_name               ALTAIR-SRV-NAGIOS01
       service_description     Worker Altair
       check_command           check_workers!altair!15
       }</pre><p></p><p
style="text-align: left;">Ma société veut que les jobs en attente, en exécution et les workers prêts à traiter pour le hostgroup altair me soit rendus, et dans le script , j’éxécute gearman_top avec l’option –b qui ne rend qu’une réponse, et utilisable en script, je trie avec un grep pour obtenir le nom qui m’intéresse, et ensuite je décortique les chiffres, et définis selon le nombre de jobs waiting que je veux d’avoir une alerte s’ils atteignent ce seuil, avec une petite sécurité toutefois, s’il y a une accumulation de checks pour une raison , peu importe laquelle, mais que mon worker travaille, je ne veux pas recevoir d’alerte. Je le laisse bosser...</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/09/distributed-monitoring-nagios-laide-mod-gearman.html">Distributed Monitoring Nagios à l’aide de Mod-Gearman</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JgoUZinkzqM:eVxUOTyAgPM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JgoUZinkzqM:eVxUOTyAgPM:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/JgoUZinkzqM" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7200
title: Test de la nouvelle tablette Nexus 7
uri: Test-de-la-nouvelle-tablette-Nexus-7
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/81mRHR61vvM/test-nouvelle-tablette-nexus-7.html
content:
<p
style="text-align: justify;">La semaine dernière j'ai reçu la dernière tablette Nexus 7 de Google. C'est mon premier matériel sous Android et je vais, dans ce billet, partager mes premières impressions avec vous.</p><h1>Le hardware</h1><p
style="text-align: justify;">Apple ayant poussé le packaging de ces produits à un niveau très (trop ?) élevé, la concurrence s'est petit à petit mis au diapason et le déballage de la version 2013 de la tablette 7 pouces de Google, en réalité fabrique par Asus, est un vrai bonheur: qualité de fabrication de la boîte, la tablette occupant toute la surface à l'ouverture, le câble mini USB (un peu court) et le chargeur disposés en dessous.</p><p
style="text-align: justify;"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-7201" alt="capture_116" src="media/9e843e46.capture_116.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/09/capture_116.png" width="145" height="176" />Une fois dans les mains et le film protecteur retiré, la première chose qui saute aux yeux est la finesse de la Nexus 7, la découpe en biseau accentuant encore plus cette impression. Par contre son poids (290 g) n'est pas négligeable, sans toutefois sortir des normes des autres tablettes du marché. Son format (14.4 * 20 cm) est pour moi idéal car on peut la tenir verticalement dans une seule main et se servir de l'autre pour naviguer.</p><p
style="text-align: justify;">Seul bémol, quand on prend la tablette, les boutons d'allumage et de réglage du volume, positionnés sur le coté en haut à droite ne tombent pas sous la main et il faut souvent les regarder pour ne par augmenter le son au lieu de le baisser.</p><p
style="text-align: justify;">L'écran est très lumineux et toujours lisible, même si on utilise la tablette en extérieur. Il est de plus très résistant aux traces de doigt. J'ai en mon fils, le meilleur bêta testeur pour ce dernier test...</p><p
style="text-align: justify;">Je passe rapidement sur la qualité du capteur photo. C'est pour moi un gadget sur ce genre de format de tablette. Qui, mis à part certains touristes, utilise des tablettes 7 ou 10 pouces pour prendre des photos ? Coté vidéo, il est possible d'enregistrer des séquences en HD 720p même si là encore, la Nexus ne pourra pas remplacer une "vraie" caméra.</p><h1 style="text-align: justify;">Le système</h1><p
style="text-align: justify;">La Nexus 7 opus 2013 est livré avec le système <a
href="http://www.android.com/about/jelly-bean/">Android 4.3</a> (alias Jelly Bean). Vu la puissance du processeur de la tablette, la navigation dans les différentes fenêtres d'Android est parfaitement fluide. J'aime beaucoup le nouveau système de switch entre utilisateurs qui permet de partager la tablette entre plusieurs personnes d'une même famille et ainsi d'avoir au choix: un environnement complètement indépendant par personne (pour les parents) ou bien des comptes limités ou l'on choisit les applications/fonctions disponibles (pour les enfants).</p><p
style="text-align: justify;">Mis à part cela, on retrouve un système Android classique (sans surcouche), auquel j'ai immédiatement ajouté quelques applications "système" comme le très bon <a
href="https://play.google.com/store/apps/details?id=com.icecoldapps.sshserver">SSH Server</a> et l'indispensable <a
href="https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad&amp;hl=fr">MX Player</a> qui permet de lire tous vos fichiers vidéos (ce qui n'est pas le cas de l'application fournie en standard par Google).</p><p
style="text-align: justify;">Habitué à IOS sur mon smartphone, j'ai été très agréablement surpris par la gestion multitache, le switch entre applications et la fermeture rapide de ces dernières (voir screenshot ci-dessous). C'est vraiment un point ou Android a gagné des points.</p><p
style="text-align: justify;"><a
href="media/8078f0e2.Google-Nexus-7-2013-multitache.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/09/Google-Nexus-7-2013-multitache.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-7206" alt="Google-Nexus-7-2013-multitache" src="media/a604e7c3.Google-Nexus-7-2013-multitache-187x300.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/09/Google-Nexus-7-2013-multitache-187x300.jpg" width="187" height="300" /></a></p><h1 style="text-align: justify;">Les applications</h1><p
style="text-align: justify;">La grande majorité des jeux ne sont pas optimisées pour l'affichage sur l'écran HD de la Nexus 7 (écran full HD de 1900*1200 pixel) et sauf exceptions souvent signalées dans <a
href="https://play.google.com/store/apps?hl=fr">le store Google Play</a>, on se retrouve avec une interpolation qui va doubler les pixels et produire donc un affichage relativement grossier. C'est par exemple le cas sur des applications aussi connues que <a
href="https://play.google.com/store/apps/details?id=com.king.candycrushsaga&amp;hl=fr">Candy Cruch</a> ou  <a
href="https://play.google.com/store/apps/details?id=com.pastagames.ro1mobile&amp;hl=fr">Rayman Jungle Run</a>. Pour les jeux HD, on tire alors profit de la puissance de la machine et je ne constate aucun ralentissement sur les jeux gourmands comme <a
href="https://play.google.com/store/apps/details?id=com.gameloft.android.ANMP.GloftA8HM&amp;hl=fr">Asphalt 8</a>.</p><p
style="text-align: center;"><iframe
width="480" height="360" src="//www.youtube.com/embed/ugDJt8lt1tY?rel=0" frameborder="0" allowfullscreen=""></iframe></p><p
style="text-align: justify;">Avec les applications d'informations et orientées média sociaux, on profite d'un affichage HD de toute beauté. C'est ainsi, le cas pour <a
href="https://play.google.com/store/apps/details?id=com.facebook.katana&amp;hl=fr">Facebook</a>, <a
href="https://play.google.com/store/apps/details?id=com.pinterest&amp;hl=fr">Pinterest</a> ou <a
href="https://play.google.com/store/apps/details?id=com.mobilesrepublic.appygeek&amp;hl=fr">Appy Geek</a> pour ne citer qu'elles.</p><h1 style="text-align: justify;">Conclusion</h1><p
style="text-align: justify;">Je suis satisfait de mon achat. La tablette a déjà été adopté par mes enfants et de mon coté je trouve l'expérience utilisateur très agréable. Je reparlerai prochainement de mon nouveau jouet.</p><p><em>Si vous voulez un test technique exhaustif, je vous conseille la lecture des reviews de <a
href="http://www.pcworld.fr/tablettes/tests,test-tablette-asus-google-nexus-7-2-2013,541813,1.htm">PC World (en Fr)</a> ou de <a
href="http://www.pastemagazine.com/articles/2013/09/nexus-7-2013-review.html">Paste Mag (en En)</a>.tio</em></p><p>Cet article <a
href="http://blog.nicolargo.com/2013/09/test-nouvelle-tablette-nexus-7.html">Test de la nouvelle tablette Nexus 7</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=81mRHR61vvM:ZoIUrAtjYYM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=81mRHR61vvM:ZoIUrAtjYYM:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/81mRHR61vvM" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7211
title: Supervision d&#8217;un NAS NetApp avec Nagios ou Shinken
uri: Supervision-d-un-NAS-NetApp-avec-Nagios-ou-Shinken
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/022CxbeMOdA/supervision-dun-nas-netapp-nagios-shinken.html

content:
<p
style="text-align: justify;">Dans la jungle très lucrative des "NAS appliance", c'est à dire des serveurs NAS intégré dans un hardware et un système spécifique, NetApp fait office de leader pour la qualité prix de ses produits. Nous allons voir ensemble dans ce billet comment superviser une machine NetApp FAS2200 à partir de Nagios ou de Shinken.</p><p><a
href="media/951b7b79.nas01.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/09/nas01.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" alt="nas01" src="media/d2ecdcd2.nas01-580x323.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/09/nas01-580x323.png" width="580" height="323" /></a></p><p
style="text-align: justify;"><em>Note: ce billet doit également être valable pour l'ensemble des produits NetApp.</em></p><h1 style="text-align: justify;">Récupération du plugin chek-netapp-ng</h1><p
style="text-align: justify;">En cherchant un peu sur le Web, j'ai trouvé <a
href="https://github.com/ranl/IT/tree/master/Nagios">un plugin Nagios permettant de superviser finement ses machines NetApp</a>. Bien que datant un peu, ce plugin est parfaitement fonctionnel.</p><p
style="text-align: justify;">Une fois connecté en SSH (en root) sur son serveur Nagios / Shinken (la procédure est la même), on commence donc par récupérer le plugin:</p><p></p><pre class="crayon-plain-tag">mkdir -p ~/tmp
cd ~/tmp
wget --no-check-certificate https://raw.github.com/ranl/IT/master/Nagios/check-netapp-ng.pl
chmod a+x check-netapp-ng.pl</pre><p></p><h1>Installation du plugin chek-netapp-ng</h1><p>L'installation différe ici si vous utilisez Nagios ou Shinken.</p><p>Pour installer le plugin sur Nagios, il faut saisir:</p><pre class="crayon-plain-tag">cp ~/check-netapp-ng.pl /usr/local/nagios/libexec/check-netapp-ng.pl
chown nagios:nagios /usr/local/nagios/libexec/check-netapp-ng.pl</pre><p>Pour Shinken:</p><pre class="crayon-plain-tag">cp ~/check-netapp-ng.pl /usr/local/shinken/libexec/check-netapp-ng.pl
chown shinken:shinken /usr/local/shinken/libexec/check-netapp-ng.pl</pre><p></p><h1>Configuration du plugin chek-netapp-ng</h1><p>Il faut ensuite éditer le fichier (par exemple /usr/local/shinken/libexec/check-netapp-ng.pl) pour y éditer la ligne numéro 15 avec le chemin vers les librairies:</p><pre class="crayon-plain-tag">use lib "/usr/local/shinken/libexec";</pre><p><span
style="color: #888888;"> Note: Respectivement /usr/local/nagios/libexec pour Nagios.</span></p><p>On doit ensuite faire connaître le plugin à Shinken (ou Nagios) en ajoutant les lignes suivantes dans votre fichier commands.cfg (sous /usr/local/shinken/etc):</p><pre class="crayon-plain-tag">################################################################################
# Netapp check
#===============================================================================
# https://github.com/ranl/IT/blob/master/Nagios/check-netapp-ng.pl
################################################################################
define command {
    command_name    check_netapp_globalstatus
    command_line    $PLUGINSDIR$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -T GLOBALSTATUS
}
define command {
    command_name    check_netapp_temp
    command_line    $PLUGINSDIR$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -T TEMP
}
define command {
    command_name    check_netapp_fan
    command_line    $PLUGINSDIR$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -T FAN
}
define command {
    command_name    check_netapp_ps
    command_line    $PLUGINSDIR$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -T PS
}
define command {
    command_name    check_netapp_cpuload
    command_line    $PLUGINSDIR$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -T CPULOAD
}
define command {
    command_name    check_netapp_nvram
    command_line    $PLUGINSDIR$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -T NVRAM
}
define command {
    command_name    check_netapp_diskused
    command_line    $PLUGINSDIR$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -T DISKUSED --vol $ARG1$
}
define command {
    command_name    check_netapp_faileddisk
    command_line    $PLUGINSDIR$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ -T FAILEDDISK
}</pre><p></p><h1>Déclaration de votre serveur NAS</h1><p>Il ne reste plus qu'à définir votre serveur NAS dans la configuration de Shinken (ou de Nagios). Par exemple, j'ai un fichier nas01.cfg qui contient:</p><pre class="crayon-plain-tag">define host {
  use   ssh,generic-host
  host_name nas01
  address   192.168.1.130
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP Global status
  check_command check_netapp_globalstatus
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP Temperature
  check_command check_netapp_temp
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP FAN
  check_command check_netapp_fan
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP Power Supply
  check_command check_netapp_ps
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP CPU LOAD
  check_command check_netapp_cpuload
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP NVRAM
  check_command check_netapp_nvram
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP Disk used Home
  check_command check_netapp_diskused!/vol/vol0/
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP Disk used Archive
  check_command check_netapp_diskused!/vol/vol_ARCHIVE/
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP Disk used Install
  check_command check_netapp_diskused!/vol/vol_INSTALL/
}
define service {
  use generic-service
  host_name nas01
  service_description NetAPP Failed disk
  check_command check_netapp_faileddisk
}</pre><p>Une fois Shinken (ou Nagios) redémarré et après les premiers checks, vous devriez voir la page de supervision apparaître dans l'interface Web (comme au début de ce billet).</p><p>On peut donc superviser les choses suivantes:</p><ul><li>La charge CPU (ce qui peut être utile si votre serveur NAS est trop chargé, par exemple trop d'accès simultanés)</li><li>La taille utilisé par partitions</li><li>L'état des ventilateuts</li><li>L'état des disques (supervision du RAID)</li><li>Le status global</li></ul><p>Voilà une bonne chose de faite: la supervision du serveur le plus sensible (il y a toutes vos données dessus normalement) de votre infrastructure.</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/09/supervision-dun-nas-netapp-nagios-shinken.html">Supervision d&#8217;un NAS NetApp avec Nagios ou Shinken</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=022CxbeMOdA:RypmqImlDZE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=022CxbeMOdA:RypmqImlDZE:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/022CxbeMOdA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7218
title: Dropbox et la ligne de commande
uri: Dropbox-et-la-ligne-de-commande
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/MmFignaZQvo/dropbox-ligne-commande.html
content:
<p
style="text-align: justify;">Je suis utilisateur du service <a
href="http://db.tt/lF7Ja98l">Dropbox</a> depuis maintenant quelques temps. Il me permet de synchroniser les fichiers entres mes différentes machines (<a
href="http://blog.nicolargo.com/2010/10/profiter-de-sa-dropbox-sur-son-serveur-gnulinux.html">même les serveurs</a>). Depuis ses débuts, Dropbox propose un client pour système GNU/Linux complètement intégré dans l’environnement graphique.</p><p
style="text-align: justify;">Ce qui est moins connu, c'est l'utilisation de la bonne vieille ligne de commande pour profiter de ce service. C'est ce que nous allons voir ensemble dans ce billet en parcourant quelques fonctions disponibles.</p><h1>Ré-initialiser du cache</h1><p
style="text-align: justify;">Dans certains cas, il se peut que votre client Dropbox tourne dans le vide (l'icône de notification reste bloqué sur une mise à jour de fichier). Je suis bien placé pour le savoir car cela vient de m'arriver...</p><p
style="text-align: justify;">Pour repartir d'une configuration propre, il est nécessaire de nettoyer le cache de Dropbox. Il n'y a pas de commande à proprement parler pour faire cela mais un simple:</p><p></p><pre class="crayon-plain-tag">rm -R ~/Dropbox/.dropbox.cache/*</pre><p>devrait suffire à remettre votre Dropbox dans le droit chemin de la synchronisation.</p><h1>Arrêter puis relancer Dropbox en ligne de commande</h1><p>Si vous avez à écrire un script shell qui va générer des fichiers non désirables (ou bien trop volumineux) dans un des répertoire de votre Dropbox, il peut être utile d'arrêter puis de relancer le service depuis le script. On évitera ainsi de saturer sa ligne internet avec des transferts inutiles.</p><p>Pour cela on utilisera les commandes:</p><pre class="crayon-plain-tag">dropbox stop
...
&lt;votre script ici&gt;
...
dropbox start</pre><p></p><h1>Obtenir des informations sur l'état de Dropbox</h1><p>Pour obtenir le status du démon Dropbox (processus dropboxd), il est possible d'utiliser:</p><pre class="crayon-plain-tag">$ dropbox  status
Idle</pre><p><em>Note: la commande 'dropbox running' renvoie le code retour 1 si le démon Dropbox est lancé, 0 sinon. </em></p><p>Si vous souhaitez avoir l'état de synchronisation de votre répertoire ~/Dropbox:</p><pre class="crayon-plain-tag">$ dropbox filestatus ~/Dropbox/
/home/nicolargo/Dropbox/: up to date</pre><p>Il est possible de passer en paramètre de cette dernière fonction un fichier (ou un répertoire):</p><pre class="crayon-plain-tag">$ dropbox filestatus ~/Dropbox/Public/ESIL2010-Cloud.pdf
/home/nicolargo/Dropbox/Public/ESIL2010-Cloud.pdf: up to date</pre><p></p><h1>Obtenir l'URL publique des fichiers de votre Dropbox</h1><p>Last but not least, Dropbox permet de partager vos fichiers en générant une URL publique. Celle-ci peut être obtenue en ligne de commande (ou dans vos scripts) via:</p><pre class="crayon-plain-tag">$ dropbox puburl ~/Dropbox/Public/ESIL2010-Cloud.pdf
https://dl.dropboxusercontent.com/u/1112933/ESIL2010-Cloud.pdf</pre><p></p><h1>Pour aller plus loin: l'API Python</h1><p>Si (comme moi), vous développez en Python, il existe une API permettant de jouer avec le service Dropbox. Je vous conseille <a
href="https://www.dropbox.com/developers/core/start/python">la lecture de la page officielle sur le sujet</a>.</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/09/dropbox-ligne-commande.html">Dropbox et la ligne de commande</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=MmFignaZQvo:SlXNHuwE8Nk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=MmFignaZQvo:SlXNHuwE8Nk:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/MmFignaZQvo" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7231
title: Gérer ces processus/démons Python avec Supervisor
uri: Gérer-ces-processus-démons-Python-avec-Supervisor
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/SPnetfCX0Mc/gerer-ces-processusdemons-python-supervisor.html

content:
<p
style="text-align: justify;">C'est en lisant la document <a
href="http://0bin.net/">du projet 0Bin</a>, une implémentation libre et auto-hébergé de PasteBin dont je reparlerai bientôt, que je suis tombé sur <a
href="http://supervisord.org/">Supervisor</a>. Supervisor est un système de contrôle de processus (comme launchd ou runinit) simple et orienté utilisateur (<a
href="http://supervisord.org/">voir la documentation et les avantages ici</a>) et donc idéal pour lancer des processus Python en mode démon (par un exemple un serveur Glances, mais ce n'est qu'un exemple...).</p><h1>Installation de Supervisor</h1><p>Sur un système Debian/Ubuntu, l'installation de Supervisor se résume à la saisie de la commande suivante dans un terminal:</p><pre class="crayon-plain-tag">sudo apt-get install supervisor</pre><p>Une fois l'installation terminé, nous allons maintenant configurer Supervisor en utilisant le fichier <strong>/etc/supervisor/supervisord.conf</strong> (sur un système Debian).</p><h1>Ajout d'un démon dans Supervisor</h1><p
style="text-align: justify;">Nous allons donc prendre l'exemple d'un administrateur système qui souhaite que le serveur Glances soit lancé au démarrage de la machine et que celui ci soit redémarré automatiquement dans le cas ou Glances plante &lt;mauvaisefois&gt;ce qui n'arrive jamais&lt;/mauvaisefois&gt;.</p><p>Pour lancer Glances en mode serveur, il faut utiliser la ligne de commande suivante:</p><pre class="crayon-plain-tag">/usr/local/bin/glances -s -C /etc/glances/glances.conf -P motdepasse</pre><p>Il suffit donc d'ajouter la section suivante en fin du fichier  <strong>/etc/supervisor/supervisord.conf</strong>:</p><pre class="crayon-plain-tag">; Glances server section
[program:glances]
command=/usr/local/bin/glances -s -C /etc/glances/glances.conf -P motdepasse
user=nicolargo
autostart=true
autorestart=true</pre><p></p><p
style="text-align: justify;">On demande a ce que le processus soit exécuté avec les droits d'un utilisateur standard (<em>user=nicolargo</em> dans mon exemple) et que le processus démarre automatiquement au démarrage de Supervisor (<em>autostart=true</em>) et qu'il soit bien redémarré si Supervisor détecte un problème sur le processus Glances.</p><h1>Prendre en compte la configuration et administrer nos processus</h1><p>Pour que notre configuration soit prise en compte, il faut relancer Supervisor avec les lignes de commandes:</p><pre class="crayon-plain-tag">sudo service supervisor stop
sudo service supervisor start</pre><p>Normalement, à ce stade, votre processus Glances server doit être lancé. Pour le vérifier vous pouvez utiliser la commande <strong>supervisorctl</strong> qui permet d'avoir un statu des processus et un moyen simple de les arrêter / démarrer.</p><p>Vérification du statu du service Glances server:</p><pre class="crayon-plain-tag">$ sudo supervisorctl status
glances                          RUNNING    pid 5844, uptime 0:26:11</pre><p>Je vous laisse regarder les autres commandes disponibles avec <strong>supervisorctl</strong>:</p><pre class="crayon-plain-tag">$ sudo supervisorctl help
default commands (type help &lt;topic&gt;):
=====================================
add    clear  fg        open  quit    remove  restart   start   stop  update
avail  exit   maintail  pid   reload  reread  shutdown  status  tail  version</pre><p>&nbsp;</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/10/gerer-ces-processusdemons-python-supervisor.html">Gérer ces processus/démons Python avec Supervisor</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=SPnetfCX0Mc:zxEsjISouYM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=SPnetfCX0Mc:zxEsjISouYM:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/SPnetfCX0Mc" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7252
title: Installation d&#8217;un serveur proxy HTTP Squid sous Debian
uri: Installation-d-un-serveur-proxy-HTTP-Squid-sous-Debian
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/tWdwxrX04yE/installation-dun-serveur-proxy-http-squid-debian.html

content:
<p
style="text-align: justify;">Marre de ne pas pouvoir regarder une vidéo  basse résolution sur YouTube alors que votre FAI adoré (<a
href="http://www.quechoisir.org/telecom-multimedia/internet/etude-qualite-de-l-acces-a-internet-signez-la-petition-de-l-ufc-que-choisir">Free pour ne pas le citer</a>) annonce un débit sur votre ligne de plusieurs megabits par seconde ?</p><p
style="text-align: justify;">Il suffit de disposer d'un simple serveur dédié ou virtuel chez un hébergeur (autre que Free bien sûr), d'y installer un proxy HTTP et à vous les vidéos en HD même en pleine soirée.</p><p
style="text-align: justify;">Pour illustrer ce billet, j'ai donc installé Squid (le plus connu des proxy Web) sur mon serveur OVH qui dispose d'une liaison directe, illimitée et non bridée vers Internet à 100 Mbps.</p><p
style="text-align: justify;"><a
href="media/3da7948e.squid.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/10/squid.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7257" alt="squid" src="media/416d2e34.squid-580x373.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/10/squid-580x373.png" width="580" height="373" /></a></p><h1 style="text-align: justify;">Installation du serveur Squid</h1><p>On commence par mettre à jour son système avec la combo:</p><pre class="crayon-plain-tag">sudo apt-get update &amp;&amp; sudo apt-get upgrade</pre><p>Ensuite on installe le logiciel Squid qui à le bon goût d'être dans les dépôts officiels de Debian:</p><pre class="crayon-plain-tag">sudo apt-get install squid</pre><p>Puis on arrête le service Squid (qui doit maintenant tourner en tache de fond) en attendant sa configuration:</p><pre class="crayon-plain-tag">sudo service squid stop</pre><p>On édite la configuration qui se trouve centralisée dans le fichier <strong>/etc/squid/squid.conf</strong> en éditant notamment:</p><ol><li>La gestion de l'accès au service uniquement réservé aux adresses IP clairement identifiées (par exemple remplacer AAA.BBB.CCC.DDD par <a
href="http://whatismyipaddress.com/">l'adresse IP publique de votre domicile</a>). Vous pouvez ajouter autant de ligne que d'adresse IP.<br
/><pre class="crayon-plain-tag">acl nicolargo src AAA.BBB.CCC.DDD/32 # Home sweet home
http_access allow nicolargo</pre></li><li>On masque notre adresse IP dans le header HTTP (<em>X-Forwarded-For: unknown</em>)<br
/><pre class="crayon-plain-tag">forwarded_for off</pre></li></ol><p><span
style="color: #808080;"><span
style="text-decoration: underline;">Note</span>: la liste des options disponibles est décrite <a
href="http://wiki.squid-cache.org/ConfigExamples"><span
style="color: #808080;">sur le site officiel</span></a> (la version de Squid disponible sous Wheezy est, au moment de l'écriture de ce billet, la branche 2.7) ou par la commande 'man squid.conf'.</span></p><p>Une fois la configuration finalisé en fonction de vos besoins, il suffit de relancer le service:</p><pre class="crayon-plain-tag">sudo service squid start</pre><p></p><h1>Configuration des machines clientes</h1><p>Il ne rest plus qu'à configurer son/ses clients (PC, Smarthphone ou tablette) pour utiliser le serveur proxy Squid fraîchement installé.</p><p>Avec une configuration par défaut, Squid est en écoute sur <strong>le port TCP numéro 3128</strong>. Il faut donc, pour utiliser le serveur proxy Squid configurer l'adresse IP de votre machine hébergeant Squid et le port 3128.</p><p>Si vous utilisez Chromium comme navigateur Web, je vous conseille l'installation du plugin <em>TunnelSwitch</em> (<a
href="https://chrome.google.com/webstore/detail/tunnelswitch/nfpphleklkamlblagdkbkomjmaedanoh/related?utm_source=chrome-ntp-icon">lien vers le store</a>) qui va vous permettre de passer rapidement (en un seul click de souris) entre un lien direct (sans proxy) et indirect (avec proxy).</p><p><a
href="media/01d9ecb7.capture_133.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/10/capture_133.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7255" alt="capture_133" src="media/ef824027.capture_133-580x119.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/10/capture_133-580x119.png" width="580" height="119" /></a></p><p>&nbsp;</p><p><a
href="media/aea5b015.capture_134.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/10/capture_134.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7256" alt="capture_134" src="media/ddd38528.capture_134-580x487.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/10/capture_134-580x487.png" width="580" height="487" /></a></p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/10/installation-dun-serveur-proxy-http-squid-debian.html">Installation d&#8217;un serveur proxy HTTP Squid sous Debian</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=tWdwxrX04yE:7wVV-TjLp24:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=tWdwxrX04yE:7wVV-TjLp24:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/tWdwxrX04yE" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7260
title: Nagios 4: Résoudre l&#8217;erreur &#8220;Can&#8217;t open /etc/rc.d/init.d/functions&#8221;
uri: Nagios-4-Résoudre-l-erreur-Can-t-open-etc-rc-d-init-d-functi
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/bsVxXWgmuFo/nagios-4-resoudre-lerreur-cant-open-etcrc-dinit-dfunctions.html

content:
<p
style="text-align: justify;">La version 4 de Nagios est enfin sortie et vous avez décidé de l'installer sur votre serveur Debian/Ubuntu. Il y a de forte chance que vous tombiez sur un message d'erreur au lancement du démon Nagios. Nous allons voir dans ce billet comment résoudre ce problème.</p><h1 style="text-align: justify;">Identification du problème</h1><p
style="text-align: justify;">Vous avez le message suivant quand vous lancer Nagios ?</p><p></p><pre class="crayon-plain-tag"># /etc/init.d/nagios start
/etc/init.d/nagios: 20: .: Can't open /etc/rc.d/init.d/functions</pre><p>alors ce billet est fait pour vous...</p><h1>Explication du pourquoi...</h1><p
style="text-align: justify;">Depuis la mise à jour de Nagios vers la version 4.0 (et la version corrective 4.0.1) un bug plutôt gênant peut impacter les machines Debian et Ubuntu. En effet le script de démarrage de Nagios qui se trouve dans le fichier /etc/init.d/nagios fait un appel à un ensemble de fonctions génériques sous <strong>/etc/rc.d/init.d/functions</strong>. Malheureusement, ce fichier n'existe pas sous ce nom sur les dernières versions de Debian/Ubuntu mais il est disponible sous  <strong>/lib/lsb/init-functions</strong>.</p><h1 style="text-align: justify;">Comment résoudre le problème étape par étape...</h1><p
style="text-align: justify;">On commence par installer le logiciel daemon qui est utilisé par le script d'installation nouvelle mouture:</p><p></p><pre class="crayon-plain-tag">sudo apt-get install daemon</pre><p>Puis on hack le script de démarrage:</p><pre class="crayon-plain-tag">sudo sed -i 's/^\.\ \/etc\/rc.d\/init.d\/functions$/\.\ \/lib\/lsb\/init-functions/g' /etc/init.d/nagios
        sudo sed -i 's/status\ /status_of_proc\ /g' /etc/init.d/nagios
        sudo sed -i 's/daemon\ --user=\$user\ \$exec\ -ud\ \$config/daemon\ --user=\$user\ --\ \$exec\ -d\ \$config/g' /etc/init.d/nagios
        sudo sed -i 's/\/var\/lock\/subsys\/\$prog/\/var\/lock\/\$prog/g' /etc/init.d/nagios
        sudo sed -i 's/\/sbin\/service\ nagios\ configtest/\/usr\/sbin\/service\ nagios\ configtest/g' /etc/init.d/nagios
        sudo sed -i 's/\"\ \=\=\ \"/\"\ \=\ \"/g' /etc/init.d/nagios
        sudo sed -i "s/\#\#killproc\ \-p\ \${pidfile\}\ \-d\ 10/killproc\ \-p \${pidfile\}/g" /etc/init.d/nagios
        sudo sed -i "s/runuser/su/g" /etc/init.d/nagios
        sudo sed -i "s/use_precached_objects=\"false\"/&amp;\ndaemonpid=\$(pidof daemon)/" /etc/init.d/nagios
        sudo sed -i "s/killproc\ -p\ \${pidfile}\ -d\ 10\ \$exec/\/sbin\/start-stop-daemon\ --user=\$user\ \$exec\ --stop/g" /etc/init.d/nagios
        sudo sed -i "s/\/sbin\/start-stop-daemon\ --user=\$user\ \$exec\ --stop/&amp;\n\tkill -9 \$daemonpid/" /etc/init.d/nagios</pre><p>Il ne reste plus qu'à redémarrer Nagios:</p><pre class="crayon-plain-tag">sudo service nagios start</pre><p></p><h1> ...Ou utiliser un script qui fait tout pour vous</h1><p>Pour les gros flemmards que vous êtes, j'ai créé un script qui va vérifier que le problème existe sur votre configuration et le corriger pour vous:</p><pre class="crayon-plain-tag">wget https://raw.github.com/nicolargo/nagiosautoinstall/master/hack4nagiosstart.sh
chmod a+x ./hack4nagiosstart.sh
./hack4nagiosstart.sh</pre><p><strong>Note</strong>: J'ai également ajouter l'appel à ce hack dans <a
href="https://github.com/nicolargo/nagiosautoinstall">mes scripts d'installation et de mise à jour automatique de Nagios</a>.</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/10/nagios-4-resoudre-lerreur-cant-open-etcrc-dinit-dfunctions.html">Nagios 4: Résoudre l&#8217;erreur &#8220;Can&#8217;t open /etc/rc.d/init.d/functions&#8221;</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=bsVxXWgmuFo:c2EUd0eSl5I:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=bsVxXWgmuFo:c2EUd0eSl5I:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/bsVxXWgmuFo" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7270
title: Glances 1.7.2 et son interface pour Windows
uri: Glances-1-7-2-et-son-interface-pour-Windows
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/8nMa78R7D_g/glances-1-7-2-interface-windows.html

content:
<p
style="text-align: left;"><a
href="media/5340508a.glances-white-256.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/glances-white-256.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-7174" alt="glances-white-256" src="media/5340508a.glances-white-256.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/08/glances-white-256.png" width="154" height="154" /></a></p><p
style="text-align: left;">Glances est maintenant disponible dans sa version 1.7.2. Au chapitre des nouveautés, une nouvelle interface cliente pour ceux d'entre vous qui ne peuvent pas se passer, par choix ou par contrainte, du système d'exploitation Microsoft Windows.  Cette interface se base sur la librairie <a
href="https://code.google.com/p/colorconsole/">ColorConsole</a> et permet dans une console de commande Windows d'avoir un "look and feel" qui se rapproche de la version GNU/Linux.</p><p
style="text-align: justify;">Voici le résultat dans une console standard sous Windows 7:</p><p
style="text-align: justify;"><a
href="media/f7941845.glances-1.7.2-windows-cmd.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/11/glances-1.7.2-windows-cmd.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7272" alt="glances-1.7.2-windows-cmd" src="media/e8a996db.glances-1.7.2-windows-cmd-580x292.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/11/glances-1.7.2-windows-cmd-580x292.png" width="580" height="292" /></a></p><p
style="text-align: justify;">Je vous conseille cependant de télécharger la console <a
href="http://sourceforge.net/projects/console/">Console2</a> qui comble en partie les manques de la console par défaut (cmd).</p><p
style="text-align: justify;"><a
href="media/99aa686d.glances-1.7.2-windows-console2.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/11/glances-1.7.2-windows-console2.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7273" alt="glances-1.7.2-windows-console2" src="media/6dd076f8.glances-1.7.2-windows-console2-580x350.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/11/glances-1.7.2-windows-console2-580x350.png" width="580" height="350" /></a></p><p
style="text-align: justify;">Afin de faciliter l'installation sur Windows, Frédéric Aoustin a eu la bonne idée de créer un installeur qui installe Python, les librairies nécessaires ainsi que Glances. L'installeur est disponible ici:</p><p
style="text-align: center;"><a
href="http://glances.s3.amazonaws.com/Glances-1.7.2-win32.msi"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="size-full wp-image-3277 aligncenter" alt="download" src="media/0d3b04ee.download.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2010/07/download.png" width="64" height="64" />Glances-1.7.2-win32.msi</a><br
/> <a
href="http://glances.s3.amazonaws.com/Glances-1.7.2-win32.msi">(32-bit, MD5: dba4f6cc9f47b6806ffaeb665c093270)</a></p><p
style="text-align: justify;">Je pense que la plupart des lecteurs de ce blog ne seront jamais arrivés jusqu'ici mais si c'est le cas, ils seront heureux d'apprendre que cette version apporte également les améliorations suivantes:</p><ul><li>Mise à jour de la documentation</li><li>Amélioration du packaging pour BSD et OpenSuse</li><li>Correction de <a
href="https://github.com/nicolargo/glances/issues?page=1&amp;state=closed">nombreux bugs</a></li></ul><p><span
style="text-align: justify;">Pour les Linuxiens, une mise à jour à partir de Pip est à faire avec la ligne de commande:</span></p><pre class="lang:sh decode:true">sudo pip install --upgrade Glances</pre><p
style="text-align: justify;">A vos commentaires...</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/11/glances-1-7-2-interface-windows.html">Glances 1.7.2 et son interface pour Windows</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=8nMa78R7D_g:0ZbXQVNMAYs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=8nMa78R7D_g:0ZbXQVNMAYs:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/8nMa78R7D_g" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7281
title: Supervision de son PC bureautique avec Glances
uri: Supervision-de-son-PC-bureautique-avec-Glances
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/F3v42W-57Nc/supervision-pc-bureautique-glances.html

content:
<p>D'abord orienté vers la supervision de machines distantes, Glances permet également de surveiller l'ensemble des paramètres systèmes de ses machines bureautique. De plus, depuis <a
href="http://blog.nicolargo.com/2013/11/glances-1-7-2-interface-windows.html">sa version 1.7.2</a> , Glances offre <a
href="http://en.wikipedia.org/wiki/Curses_(programming_library)">une interface Curses</a> sur l'ensembles des plateformes: GNU/Linux, BSD, Mac OS et même ... MS Windows.</p><p>Il est en effet fréquent d'observer un ralentissement, voir un blocage de sa machine locale. Nous allons voir comment configurer puis utiliser Glances pour en trouver les causes et ainsi prendre les actions adéquates.</p><h1>Configuration de Glances</h1><p>Après installation de Glances sur son système (<a
href="http://nicolargo.github.io/glances/">le plus simple étant de passer par PyPI</a>), un fichier de configuration par défaut est disponible sous <strong>/etc/glances/glances.conf</strong> sous GNU/Linux (<a
href="https://github.com/nicolargo/glances/blob/master/docs/glances-doc.rst#configuration">voir ici</a> pour les emplacements sur les autres systèmes). Je vous conseille de copier ce fichier en local dans votre répertoire de configuration standard (~/.config/glances ou $XDG_CONFIG_HOME/glances).</p><pre class="crayon-plain-tag">mkdir -p ~/.config/glances
cp /etc/glances/glances.conf ~/.config/glances/</pre><p>On peut ensuite éditer son fichier selon ses besoins: <strong>~/.config/glances/glances.conf</strong></p><p>Voici le fichier que j'utilise sur mon PC portable:</p><pre class="crayon-plain-tag">[cpu]
# Limits values for CPU user in %
# Defaults values if not defined: 50/70/90
user_careful=50
user_warning=70
user_critical=90
# Limits values for CPU system in %
# Defaults values if not defined: 50/70/90
system_careful=50
system_warning=70
system_critical=90
# Limits values for CPU iowait in %
# Defaults values if not defined: 40/60/80
# Not easy to tweek...
# Source: http://blog.scoutapp.com/articles/2011/02/10/understanding-disk-i-o-when-should-you-be-worried
#         http://blog.logicmonitor.com/2011/04/20/troubleshooting-server-performance-and-application-monitoring-a-real-example/
#         http://blog.developpeur-neurasthenique.fr/auto-hebergement-iowait-ma-tuer-1-2-vmstat-mpstat-atop-pidstat.html (FR)
iowait_careful=40
iowait_warning=60
iowait_critical=80
[load]
# Value * Core
# Defaults values if not defined: 0.7/1.0/5.0 per Core
# Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
#         http://www.linuxjournal.com/article/9001
careful=0.7
warning=1.0
critical=5.0
[memory]
# Defaults limits for free RAM memory in %
# Defaults values if not defined: 50/70/90
careful=50
warning=70
critical=90
[swap]
# Defaults limits for free swap memory in %
# Defaults values if not defined: 50/70/90
careful=50
warning=70
critical=90
[temperature]
# Temperatures in °C for sensors
# Defaults values if not defined: 60/70/80
careful=60
warning=70
critical=80
[hddtemperature]
# Temperatures in °C for hddtemp
# Defaults values if not defined: 45/52/60
careful=45
warning=52
critical=60
[filesystem]
# Defaults limits for free filesytem space in %
# Defaults values if not defined: 50/70/90
careful=50
warning=70
critical=90
[process]
# Limits values for CPU per process in %
# Defaults values if not defined: 50/70/90
cpu_careful=50
cpu_warning=70
cpu_critical=90
# Limits values for MEM per process in %
# Defaults values if not defined: 50/70/90
mem_careful=50
mem_warning=70
mem_critical=90
[monitor]
# Define the list of processes to monitor
# *** This section is optionnal ***
# The list is composed of item (list_#nb &lt;= 10)
# An item is defined:
# * description: Description of the processes (max 16 chars)
# * regex: regular expression of the processes to monitor
# * command: (optional) full path to shell command/script for extended stat
#            Use with caution. Should return a single line string.
# * countmin: (optional) minimal number of processes
#             A warning will be displayed if number of process &lt; count
# * countmax: (optional) maximum number of processes
#             A warning will be displayed if number of process &gt; count
list_1_description=Chromium browser
list_1_regex=.*chromium-browse.*
list_1_countmax=50
list_2_description=OpenVPN
list_2_regex=.*openvpn.*
list_2_countmin=1
list_3_description=Dropbox
list_3_regex=.*dropbox.*
list_3_countmin=1
list_3_command=dropbox filestatus ~/Dropbox</pre><p>En plus des jeux de limites pour les alertes de CPU, de charge (LOAD) et de mémoire (MEM), je souhaiterai que l'on s'attarde un peu sur la section [monitor] qui permet de mettre en avant une liste de processus jugés importants.</p><pre class="crayon-plain-tag">&quot; lang=&quot;sh&quot; decode=&quot;true&quot;  title=&quot;Zoom sur la section [monitor]&quot;][monitor]
# Define the list of processes to monitor
# *** This section is optionnal ***
# The list is composed of item (list_#nb &amp;lt;= 10)
# An item is defined:
# * description: Description of the processes (max 16 chars)
# * regex: regular expression of the processes to monitor
# * command: (optional) full path to shell command/script for extended stat
#            Use with caution. Should return a single line string.
# * countmin: (optional) minimal number of processes
#             A warning will be displayed if number of process &amp;lt; count
# * countmax: (optional) maximum number of processes
#             A warning will be displayed if number of process &amp;gt; count
list_1_description=Chromium browser
list_1_regex=.*chromium-browse.*
list_1_countmax=50
list_2_description=OpenVPN
list_2_regex=.*openvpn.*
list_2_min=1
list_3_description=Dropbox
list_3_regex=.*dropbox.*
list_3_countmin=1
list_3_command=dropbox filestatus ~/Dropbox</pre><p>Je défini donc 3 groupes de processus qui vont donner l'affichage suivant dans l'interface de Glances:</p><p><a
href="media/2e57ebb3.capture_142.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/11/capture_142.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7282" alt="capture_142" src="media/049960b6.capture_142-580x68.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/11/capture_142-580x68.png" width="580" height="68" /></a></p><h3>Supervision de Chromium</h3><p>Le premier groupe (list_1) permet de surveiller les processus relatifs à mon navigateur Web (Chromium).</p><p>Pour cela je lui donne un label (list_1_description) qui est une chaîne de caractères complètement arbitraire (mais limité à 15 caractères):</p><pre class="crayon-plain-tag">&quot;]list_1_description=Chromium browser</pre><p>Ensuite, il faut définir l'expression régulière qui va permettre de regrouper les processus:</p><pre class="crayon-plain-tag">&quot;]list_1_regex=.*chromium-browse.*</pre><p>Le problème avec Chromium, c'est qu'il peut être très consommateur de ressources (notamment mémoire) si l'on ouvre un grand nombre de pages. Je configure donc une surveillance du nombre maximum de processus. Glances affichera donc la ligne en rouge si ce nombre est dépassé:</p><pre class="crayon-plain-tag">&quot;]list_1_countmax=50</pre><p>Je ne défini pas de commande (list_1_command) associé à ce groupe. Donc par défaut Glances va calculer la consommation CPU et la mémoire globale des processus de ce groupe.</p><h3>Supervision d'OpenVPN</h3><p>J'utilise souvent <a
href="http://blog.nicolargo.com/2010/09/configurer-vpntunnel-sous-ubuntu.html">un service VPN</a> pour surfer (entre autre...) sur le Web. J'ai donc ajouté une supervision du processus OpenVPN:</p><pre class="crayon-plain-tag">&quot;]list_2_description=OpenVPN
list_2_regex=.*openvpn.*
list_2_min=1</pre><p>Contrairement à Chromium, je pose ici une alerte si le nombre de processus est inférieur à 1 (donc si OpenVPN n'est pas lancé).</p><h3>Supervision de Dropbox</h3><p>Avoir ces fichiers disponibles sur toutes ses machines est devenu pour moi complètement indispensable. La supervision du service Dropbox est faite par Glances de la manière suivante:</p><pre class="crayon-plain-tag">&quot;]list_3_description=Dropbox
list_3_regex=.*dropbox.*
list_3_countmin=1
list_3_command=dropbox filestatus ~/Dropbox</pre><p>Rien de bien nouveau sur les 3 première lignes, la dernière nécessite cependant quelques explications. La commande (shell) passée en paramètre de (list_3_command) sera exécuté à chaque "check" de Glances (donc par défaut toutes les 3 secondes). Cette commande va demander à Dropbox l'état de synchronisation mon répertoire (voir <a
href="http://blog.nicolargo.com/2013/09/dropbox-ligne-commande.html">ce billet pour apprendre à  administrer Dropbox en ligne de commande</a>).</p><h1>Utilisation de Glances</h1><p>Votre Glances est maintenant prêt à être utilisé. Donc si vous rencontrez un problème sur votre machine, il faudra ouvrir un terminal et saisir la commande:</p><pre class="crayon-plain-tag">glances -ey -C ~/.config/glances/glances.conf</pre><p>Glances va se lancer et afficher les informations sur votre système:</p><p><a
href="media/afe64916.capture_143.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/11/capture_143.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7283" alt="capture_143" src="media/06eefe03.capture_143-580x401.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/11/capture_143-580x401.png" width="580" height="401" /></a></p><p>&nbsp;</p><p>En plus de la section [monitor] ou l'on retrouve la supervision de nos groupes Chromium, OpenVPN et Dropbox, on a également l'ensemble des informations systèmes.</p><p>Dans le bandeau du haut, les informations sur la CPU, la charge et la mémoire. Les codes couleurs sont standards:</p><div><strong><span
style="color: #339966;"><tt>GREEN</tt></span></strong> stat counter is <tt>"OK"</tt></div><div><strong><span
style="color: #0000ff;"><tt>BLUE</tt></span></strong> stat counter is <tt>"CAREFUL"</tt></div><div><span
style="color: #ff6600;"><strong><tt>MAGENTA</tt></strong></span> stat counter is <tt>"WARNING"</tt></div><div><strong><span
style="color: #ff0000;"><tt>RED</tt></span></strong> stat counter is <tt>"CRITICAL"</tt></div><p>Sur le panneau de gauche, on a les informations moins critiques comme: les débits des interfaces réseau, les capteurs de température, les IO disques et l'espace disque.</p><p>Au centre, sur la section [monitor], on retrouve la liste des processus avec, par défaut, un tri "intelligent". Par exemple, en cas de consommation mémoire excessive, le tri sera automatiquement fait sur la consommation RAM des processus.</p><p>Enfin en bas de l'écran, un rappel des dernières alertes.</p><p>Pour une description précise des fonctions de Glances, je vous conseille la lecture de la documentation officielle (<a
href="https://github.com/nicolargo/glances/blob/master/docs/glances-doc.rst">lisible ici</a>).</p><h1>Conclusion</h1><p>Nous arrivons à la fin de ce billet. Je n'ai pas parlé du mode client serveur qui permet de lancer Glances en tache de fond et de l’interroger à la demande mais je pense que ce mode d'utilisation est plus utilise pour la supervision de serveurs.</p><p><strong>Si vous avez des configurations spécifiques de Glances (et surtout du [monitor]) pour surveiller vos PC, partager cela (configuration et screenshot) avec nous !</strong></p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/11/supervision-pc-bureautique-glances.html">Supervision de son PC bureautique avec Glances</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=F3v42W-57Nc:Fxq9efzSBtw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=F3v42W-57Nc:Fxq9efzSBtw:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/F3v42W-57Nc" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7286
title: Ma shortlist d&#8217;Ultrabooks sous GNU/Linux
uri: Ma-shortlist-d-Ultrabooks-sous-GNU-Linux
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/uHP3OS5B5jg/shortlist-dultrabooks-gnulinux.html
content:
<p
style="text-align: center;"><a
href="media/ae982ddc.dellxps.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/dellxps.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-7287" alt="dellxps" src="media/ae982ddc.dellxps.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/dellxps.jpg" width="245" height="254" /></a></p><p>Je cherche à remplacer mon bon vieux PC laptop personnel qui commence un peu à dater (Fujitsu Lifebook S Series de 2009). L'utilisation que je fais de ce PC est assez varié: Surf sur le Web, blogging, développement, traitement d'image (photo)...</p><p>A partir de mon expérience sur le Fujitsu, les caractéristiques minimales sont les suivantes (par ordre décroissant d'importance):</p><ul><li>composant compatible avec les distributions <strong>GNU/Linux (Ubuntu pour mon cas)</strong></li><li>écran avec une <strong>résolution Full HD</strong> avec une diagonale minimale de <strong>13"</strong></li><li><strong>8 Go</strong> de RAM</li><li>disque dur système <strong>SSD</strong> car une fois que l'on y a goûté, il est impossible de revenir en arrière</li><li>processeur <strong>i5</strong> ou supérieur</li><li>qu'il ne soit <strong>pas trop moche</strong> car il traîne <del>souvent</del> dans mon salon et <strong>pas trop lourd</strong> car je l'emporte avec moi en voyage et déplacement</li><li>un clavier <strong>AZERTY</strong> normal (donc ce qui met hors jeu des Apple MacBook Pro...)</li><li>un prix autour des <strong>1200€</strong></li></ul><p>Comme vous pouvez le voir, ces caractéristiques collent parfaitement avec les laptop de type <a
href="http://en.wikipedia.org/wiki/Ultrabook">ultrabook</a>.</p><p
style="text-align: justify;">J'ai donc commencé à chercher sur le net des informations sur les machines pouvant coller à mes besoins. De manière assez surprenante, la liste n'est pas si grande que cela. En effet, à l'heure actuelle (décembre 2013), beaucoup d'Ultrabooks ne proposent qu'une résolution "HD Ready"  (1366x778 pixels) ou d'une mémoire trop juste (4 Go).</p><p>Ainsi, ma shortlist  initiale se compose d'une dizaine de machines: <strong><a
href="https://docs.google.com/spreadsheet/ccc?key=0AsEpq-n6Jw7hdGZQVHVfcE9PVVRLWUROMU5XWnI1bEE&amp;usp=sharing">CLIQUEZ ICI</a></strong> pour consulter ma liste sur Google Drive.</p><p>Voici, par ordre alphabétique, les ultrabooks qui sortent du lot par rapport à mes besoins/goûts.</p><p><strong>Clevo W840SU 14"</strong></p><p
style="text-align: justify;">Proposé par le site Anglais <a
href="http://pcspecialist.co.uk/notebooks/cosmosII/">PCSpecialist</a>, ce laptop n'est pas à proprement parler un ultrabook mais dispose d'une configuration paramétrable, d'un port Ethernet (oui madame !) et de composant de qualité. Il peut de plus être commandé sans OS Windows, d'ou un prix de vente assez concurrentiel (moins de 1200 € pour une configuration musclée).</p><p>Le seul problème pour moi est le design général qui n'est pas vraiment glamour.</p><p><a
href="media/669d66a7.cosmos.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/cosmos.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7289" alt="cosmos" src="media/d26ed51c.cosmos-580x349.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/cosmos-580x349.jpg" width="580" height="349" /></a></p><p>&nbsp;</p><p>&nbsp;</p><p><strong>Dell XPS 13 Dev</strong></p><p
style="text-align: justify;">La deuxième machine est beaucoup plus connue car elle avait fait le buzz au moment de sa commercialisation. Imaginer un ultrabook design, doté d'une configuration musclée pour les développeurs sous Ubuntu (au moins on est sûr de la compatibilité) !</p><p
style="text-align: justify;">Vous en avez rêvé ? Dell a essayé de le faire avec son <a
href="http://www.dell.com/fr/entreprise/p/xps-13-linux/pd">XPS 13 Dev Edition</a>.</p><p>Au niveau du look, rien à dire, c'est une belle machine que l'on a pas honte de sortir en public. Au chapitre des points négatifs: pas de port Ethernet et un prix qui grimpe à plus de 1300€ avec la livraison.</p><p><a
href="media/dcaeb5cf.dellxps2.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/dellxps2.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7290" alt="dellxps2" src="media/dcaeb5cf.dellxps2.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/dellxps2.jpg" width="420" height="361" /></a></p><p>&nbsp;</p><p><strong>Lenovo Ideapad Yoga 2 Pro 59386559</strong></p><p>Quoi ? Un IBM (enfin Lenovo) dans cette sélection ? Et oui, <a
href="http://shop.lenovo.com/us/en/laptops/ideapad/yoga/yoga-2-pro/#customize">l'Ideapad Yoga 2</a> est une bien belle machine avec notamment une dalle HD avec une résolution de 3200x1800 pixels, un design très sympa (si on aime le orange) et une configuration qui tient la route pour 1200€.</p><p>Il est par contre très difficile de le trouver en France et la compatibilité avec Linux demande quelques manipulations.</p><p><a
href="media/a19303bd.lenovo.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/lenovo.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7291" alt="lenovo" src="media/a19303bd.lenovo.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/lenovo.jpg" width="400" height="300" /></a></p><p>&nbsp;</p><p><strong>MOUNTAIN Portátil LightU T744G</strong></p><p>Enfin, pour finir cette sélection, nous allons aller du coté de l'Espagne ou<a
href="http://www.mountain.es/MOUNTAIN-Portatil-LightU-T744G"> l'intégrateur Mountain</a> propose des PC et laptops à configurer et compatible avec Ubuntu (il propose même d'installer nativement l'OS avant de vous l'expédier).</p><p>La configuration est bonne, le design plus sexy que le Clevo Anglais mais le prix grimpe à plus de 1300€.</p><p><a
href="media/99db41f3.capture_145.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/capture_145.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7292" alt="capture_145" src="media/9d49a038.capture_145-580x407.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/capture_145-580x407.png" width="580" height="407" /></a></p><p>&nbsp;</p><h1>Conclusion</h1><p>Je ne suis pas encore fixé sur mon choix final. Pour l'instant, le Montain, le Dell et le Lenovo tiennent la corde.</p><p>Avez-vous d'autres pistes ?</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/12/shortlist-dultrabooks-gnulinux.html">Ma shortlist d&#8217;Ultrabooks sous GNU/Linux</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=uHP3OS5B5jg:xU3GxRVsOA4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=uHP3OS5B5jg:xU3GxRVsOA4:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/uHP3OS5B5jg" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7301
title: Utilisation des CTags avec Sublime Text
uri: Utilisation-des-CTags-avec-Sublime-Text
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/EjYfxX04hEA/utilisation-des-ctags-avec-sublime-text.html

content:
<p
style="text-align: justify;"><a
href="media/91f39d9d.capture_147.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/capture_147.png"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-7302" alt="capture_147" src="media/91f39d9d.capture_147.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/12/capture_147.png" width="283" height="117" /></a>CTags est un outil pour les développeurs permettant de construire un index des fonctions et classes utilisées. Cela permet donc à un éditeur de texte compatible avec CTags de ce déplacer rapidement et sans "parsing" inutile dans l’arborescence de votre projet. On peut ainsi, à l'aide d'une simple combinaison de touches, aller directement à la définition d'une fonction.</p><p
style="text-align: justify;">Nous allons dans ce billet voir comment installer et configurer CTags avec l'éditeur de texte Sublime Text 3 dans un environnement Debian/Ubuntu.</p><p
style="text-align: justify;">Note: la procédure est grosso modo la même pour d'autres éditeurs comme <a
href="http://blog.stwrt.ca/2012/10/31/vim-ctags">Vim</a> , <a
href="http://www.emacswiki.org/emacs/BuildTags">Emacs</a> ou <a
href="http://www.micahcarrick.com/gedit-symbol-browser-plugin.html">GEdit</a>.</p><h1 style="text-align: justify;">Installation de CTags</h1><p
style="text-align: justify;">CTags est disponible dans les dépôts de toutes les distributions. Sous Ubuntu, une simple ligne de commande:</p><p></p><pre class="crayon-plain-tag">sudo apt-get install ctags</pre><p>devrait suffire pour installer une version stable de CTags.</p><p><em>Note: Pour installer CTags à partir des sources, toutes les informations se trouvent sur <a
href="http://ctags.sourceforge.net/">le site officiel</a>.</em></p><h1>Création de l'index pour votre projet</h1><p>Il existe de nombreuses manières pour construire les fichiers index CTags. La plus simple est de se rendre dans le répertoire de votre projet (par exemple ~/dev/monprojet) puis de saisir la commande suivante:</p><pre class="crayon-plain-tag">cd ~/dev/monprojet
ctags -R -f .tags</pre><p>On demande donc au logiciel ctags de générer le fichier index nommé .tags (option -f .tags) à effectuant un parsing récursif (option -R) de l'arborescence de votre projet.</p><p>Ce fichier doit être régénéré à chaque ajout de fonction ou de classe. Cela se fait par une combinaison de touche dans SublimeText mais peut aussi être <a
href="http://longair.net/blog/2011/04/09/missing-git-hooks-documentation/">automatisé par un hook après un commit Git</a>.</p><h1>Installation du plugin Ctags dans Sublime Text</h1><p>Je pars sur le principe ou votre <a
href="http://www.sublimetext.com/3">Sublime Text est installé</a> avec le plugin Package Manager (si ce n'est pas le cas,<a
href="https://sublime.wbond.net/installation"> suivre cette procédure</a>).</p><p>Une fois Sublime Text lancé, on commence par appuyer sur la combinaison de touche <strong>SHIFT+CTRL+P</strong> puis de saisir le mot clé <strong>Install Package</strong>. La liste des plugins disponibles va se charger, on cherche ensuite le plugin <strong>CTags</strong> et on l'installe.</p><h1>Utilisation de CTags dans Sublime Text</h1><p>Au démarrage de Sublime Text dans le répertorie de votre projet (~/dev/monprojet) , le fichier index de Ctags (.tags)  va automatiquement être chargé. Il ne vous reste plus qu'à utiliser les combinaisons de touches suivantes pour naviguer dans les classes et fonctions de votre code source:</p><table
class="aligncenter" border="1"><thead
valign="bottom"><tr><th>Commande</th><th>Key Binding</th></tr></thead><tbody
valign="top"><tr><td>Générer / Re-générer le fichier index Ctags</td><td>CTRL+t, CTRL+r</td></tr><tr><td>Aller à la définition de la fonction/classe</td><td>CTRL+t, CTRL+t</td></tr><tr><td>Revenir en arrière</td><td>CRTL+t, CTRL+b</td></tr><tr><td>Affiche la liste des fonctions/classes (fichier en cours)</td><td>ALT+s</td></tr><tr><td>Affiche la liste des fonctions/classes (tous les fichiers du projet)</td><td>ALT+SHIFT+s</td></tr></tbody></table><h1 style="text-align: left;">Conclusion</h1><p>L'utilisation des CTags apporte un gain de productivité non négligeable lors du développement logiciel. Le fait d'avoir une base commune et ouverte (le fichier .tags étant à plat et au format texte) permet de passer d'un éditeur à un autre sans perte de fonctionnalité.</p><p>Utilisez-vous les Ctags ? Si oui comment.</p><p>Partagez cela avec nous !</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/12/utilisation-des-ctags-avec-sublime-text.html">Utilisation des CTags avec Sublime Text</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=EjYfxX04hEA:2nAibJh1lBM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=EjYfxX04hEA:2nAibJh1lBM:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/EjYfxX04hEA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7306
title: Ma playlist Spotify Top 2013
uri: Ma-playlist-Spotify-Top-2013
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/NQkjnEursKw/ma-playlist-spotify-top-2013.html
content:
<p>Comme chaque année, voici <a
href="http://open.spotify.com/user/nicolargo/playlist/5WKcL2EEPBNDIfL3PqBqPv">ma playlist Spotify</a> avec une sélection des mes chansons coups de cœur de l'année 2013.</p><p><center><iframe
src="https://embed.spotify.com/?uri=spotify:user:nicolargo:playlist:5WKcL2EEPBNDIfL3PqBqPv" width="300" height="380" frameborder="0" allowtransparency="true"></iframe></center></p><p>Bonne écoute et partagez avec nous vos playlists !</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2013/12/ma-playlist-spotify-top-2013.html">Ma playlist Spotify Top 2013</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=NQkjnEursKw:BbbD2EfYbmY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=NQkjnEursKw:BbbD2EfYbmY:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/NQkjnEursKw" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7311
title: Tu fais quoi ?
uri: Tu-fais-quoi
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/3-LQFsgqQsY/tu-fais-quoi.html
content:
<p>Un premier billet en forme d'excuse pour les lecteurs de ce blog.</p><p>En effet, depuis quelques temps, je ne suis pas très actif sur ce site. Le (vrai) boulot et la (vraie) vie ne me laissent que trop peu de loisirs. J'ai donc fait le choix de privilégier mes autres activités dans le domaine des logiciels libres.</p><p>En tête de gondole, <a
href="https://github.com/nicolargo/glances">Glances</a> va bientôt sortir en version 1.7.4. Je suis d'ailleurs à la recherche de bêta testeurs de la version RC notamment sur les systèmes d'exploitation BSD, Mac OS et Windows (<a
href="https://github.com/nicolargo/glances/wiki/Install-and-test-Glances-development-version">suivre cette procédure</a> pour l'installer sur votre système sans impacter la version de Glances existante).</p><p
style="text-align: center;"><a
href="media/87fb9c64.glances-1.7.4.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/glances-1.7.4.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="size-large wp-image-7312 aligncenter" alt="glances-1.7.4" src="media/3722505a.glances-1.7.4-580x395.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/glances-1.7.4-580x395.png" width="580" height="395" /></a></p><p>Ensuite, le script Python <a
href="https://github.com/nicolargo/sxxexx">SxxExx</a> permet de récupérer via la ligne de commande les torrents de vos séries préférés (juste les torrents hein, car télécharger les séries est interdit par Monsieur Hadopi... paix à son âme). En gros, l'idée est de pouvoir lancer des recherches (seulement sur Piracy Bay pour l'instant) en fonction du nom de la série, de la saison, de l'épisode.</p><p>Voici quelques exemples:</p><pre class="crayon-plain-tag">$ sxxexx -t homeland -s 3 -e 10
Homeland S3E10 name is "Good Night"
Title:   Homeland S03E10 HDTV x264-ASAP [eztv]
Seeders: 3567
Magnet:  magnet:?xt=urn:btih:522b99e066bf97753a9c0</pre><p></p><pre class="crayon-plain-tag">$ sxxexx.py -t &quot;Breaking bad&quot; -s 5 -a
Breaking Bad has 16 episodes in season 5
*******************************************************************************
Title:   Breaking Bad - The Complete Season 5 [BDRip-HDTV] + EXTRAS
Seeders: 2097
Magnet:  magnet:?xt=urn:btih:82eb1fbb413038dd551eb8c5d4f6a891ff2d190f&amp;amp;dn=Breaking+Bad+-+The+Complete+Season+5+%5BBDRip-HDTV%5D+%2B+EXTRAS&amp;amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;amp;tr=udp%3A%2F%2Ftracker.istole.it%3A6969&amp;amp;tr=udp%3A%2F%2Ftracker.ccc.de%3A80&amp;amp;tr=udp%3A%2F%2Fopen.demonii.com%3A1337
*******************************************************************************
Title:   Breaking Bad S05E16 REPACK HDTV x264-ASAP[ettv]
Seeders: 1928
Magnet:  magnet:?xt=urn:btih:24d076e1c0f041977346e7bbf4277ceccf1086b0&amp;amp;dn=Breaking+Bad+S05E16+REPACK+HDTV+x264-ASAP%5Bettv%5D&amp;amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;amp;tr=udp%3A%2F%2Ftracker.istole.it%3A6969&amp;amp;tr=udp%3A%2F%2Ftracker.ccc.de%3A80&amp;amp;tr=udp%3A%2F%2Fopen.demonii.com%3A1337
*******************************************************************************
...</pre><p></p><pre class="crayon-plain-tag">$ sxxexx -t &quot;how i met your mother&quot; -s 9 -e 9 -d
How I Met Your Mother S9E9 name is &quot;Platonish&quot;
Title:   How I Met Your Mother S09E09 HDTV x264-2HD [eztv]
Seeders: 3631
Magnet:  magnet:?xt=urn:btih:11633c741fe5e0a0774c2222cfa6c05</pre><p>J'utilise ce script en parallèle d'un autre projet libre: <a
href="https://github.com/nicolargo/witsub">Witsub</a>. Ce dernier permet de rechercher, également en ligne de commande ("fuck the gui") les sous-titres des séries téléchargés.</p><p>&nbsp;</p><p>Je participe également à d'autre développements. Je vous invite <a
href="https://github.com/nicolargo">à suivre mon activité sur Github</a> et à consulter <a
href="https://github.com/nicolargo?tab=repositories">la liste de mes repositories</a>.</p><p>&nbsp;</p><p>&nbsp;</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/01/tu-fais-quoi.html">Tu fais quoi ?</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=3-LQFsgqQsY:W8BW3IovubE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=3-LQFsgqQsY:W8BW3IovubE:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/3-LQFsgqQsY" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7316
title: Glances 1.7.4 est dans les bacs !
uri: Glances-1-7-4-est-dans-les-bacs
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/l8FRKYkFuHU/glances-1-7-4-dans-les-bacs.html
content:
<p>Nouvelle version pour <a
href="http://nicolargo.github.io/glances/">Glances</a>, l'outil de supervision système que je développe <a
href="https://github.com/nicolargo/glances/graphs/contributors">avec d'autres contributeurs</a> depuis maintenant quelques années. On commence par le traditionnel screenshot du client en mode console:</p><p><a
href="media/b062f810.capture_154.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/capture_154.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7318" alt="capture_154" src="media/8023da99.capture_154-580x441.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/capture_154-580x441.png" width="580" height="441" /></a></p><p>&nbsp;</p><h1>Installation et mise à jour</h1><p>L'installation de Glances sur votre machine (Linux, Mac ou même Windows) se fait via la ligne de commande:</p><pre class="crayon-plain-tag">pip install glances</pre><p>La mise à jour n'est pas plus compliquée:</p><pre class="crayon-plain-tag">pip install --upgrade glances</pre><p></p><h1> Au chapitre des nouveautés</h1><p>On commence par la modification de l'affichage de la ligne résumant l'état des processus. On a séparé la notion de  'tasks' et de 'threads':</p><div><a
href="media/a796c13d.capture_155.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/capture_155.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7319" alt="capture_155" src="media/a796c13d.capture_155.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/capture_155.png" width="562" height="43" /></a></div><p>Une nouvelle statistique au niveau de la CPU des machines GNU/Linux est affiché et disponible via l'API: la steal qui peut être utile de surveiller notamment si votre machine est virtuelle (<a
href="http://blog.scoutapp.com/articles/2013/07/25/understanding-cpu-steal-time-when-should-you-be-worried">plus d'information sur la mémoire steal en lisant ce très bon billet sur le sujet</a>).</p><p><a
href="media/0dd4ef93.capture_157.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/capture_157.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7326" alt="capture_157" src="media/0dd4ef93.capture_157.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/capture_157.png" width="381" height="100" /></a></p><p>On a également ajouté l'information d'uptime (temps écoulé depuis le dernier redémarrage de la machine). Cette information est disponible en haut à droite dans l'interface et bien évidement comme toutes les statistiques via l'API (methode <em>getUptime</em>).</p><div><a
href="media/7aaa915c.capture_156.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/capture_156.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7320" alt="capture_156" src="media/7aaa915c.capture_156.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/01/capture_156.png" width="367" height="78" /></a></div><p>Il est maintenant possible, via <a
href="https://github.com/nicolargo/glances/blob/master/conf/glances-monitor.conf">le fichier de configuration de Glances</a> de cacher certains disques ou interfaces réseau:</p><div><pre class="crayon-plain-tag">[iodisk]
# Define the list of hidden disks (comma separeted)
hide=sda2,sda5
[network]
# Define the list of hidden network interfaces (comma separeted)
hide=lo</pre><br
/> Vous serez également heureux d'apprendre que<strong> Glances 1.7.4 consomme environ 10% de moins de CPU que la version précédente</strong>. En effet, certaines statistiques qui ne nécessite pas un rafraîchissement très fréquent sont maintenant mis en cache.</p></div><p>Enfin, un certain nombre de bugs ont été corrigés (<a
href="https://github.com/nicolargo/glances/issues?milestone=9&amp;page=1&amp;state=closed">voir la liste exhaustive ici</a>).</p><p>Un grand merci aux contributeurs (Alessio en tête), aux packagers (qui vont avoir un peu de boulot) et aux bêta-testeurs !</p><p>En route pour la version Glances 2.0 (re-factoring complet, gestion par plugins...) !</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/01/glances-1-7-4-dans-les-bacs.html">Glances 1.7.4 est dans les bacs !</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=l8FRKYkFuHU:71QgoJ7KjYk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=l8FRKYkFuHU:71QgoJ7KjYk:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/l8FRKYkFuHU" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7328
title: Installation de NGinx avec PageSpeed sous Debian
uri: Installation-de-NGinx-avec-PageSpeed-sous-Debian
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/HvVSHgON8a4/installation-de-nginx-avec-pagespeed-debian.html

content:
<p
style="text-align: justify;">Tous ceux qui se sont intéressés à l'optimisation du référence de leur site dans la sainte base de donnée de Google le savent bien, le temps de chargement des pages est un des facteurs clé pour en établir le classement. Google <a
href="http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html">ne s'en cache plus depuis longtemps</a> et propose toute une batterie d'outil pour <a
href="https://developers.google.com/speed/pagespeed/insights/">identifier</a> et optimiser la vitesse d'affichage de votre site.</p><p
style="text-align: justify;">Nous allons dans ce billet nous intéresser à l'optimisation de la couche basse de votre site, c'est à dire sans modification du contenu des pages, <strong>en mettant en place le module PageSpeed sur le serveur Web NGinx</strong>. J'ai utilisé un serveur sous Debian mais vous pouvez appliquer ceci, moyennant quelques adaptations, sur d'autres systèmes d'exploitations.</p><p
style="text-align: center;"><a
href="media/003f145e.capture_158.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/02/capture_158.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-7331" alt="capture_158" src="media/de7c09a7.capture_158-580x396.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/02/capture_158-580x396.png" width="464" height="317" /></a></p><p
style="text-align: justify;"><h1>PageSpeed Module ? Kesako ?</h1><p
style="text-align: justify;">Google a  regroupé sous l’acronyme <a
href="https://developers.google.com/speed/pagespeed/">PageSpeed</a>, un ensemble d'outils pour aider les Webmasters à optimiser leurs sites. Un des ces outil est nommé PageSpeed Module. C'est un module optionnel disponible pour les serveurs Web Apache et NGinx.</p><p
style="text-align: justify;">Une fois installé et configuré, ce module va, de manière dynamique et transparente, effectuer un ensemble d'optimisations lors de la mise à disposition de vos pages à vos utilisateurs. Chaque optimisation est mise en place sous la forme d'un filtre qui vont par exemple changer dynamiquement le contenu HTML de vos pages, trouver des emplacements de javascripts plus rapide ou bien optimiser les images. Comme, nous le verrons plus loin, la liste des filtres est bien sûr paramétrable au niveau des fichiers de  configuration de NGinx.</p><p
style="text-align: justify;">La liste complète des filtres fournis en standard par Google<a
href="https://developers.google.com/speed/pagespeed/module/config_filters#level"> est disponible sur cette page</a>.</p><p
style="text-align: justify;">Trêve de long discours, passons maintenant à l'installation et à la configuration de PageSpeed Module avec un serveur NGinx.</p><h1 style="text-align: justify;">Installation de NGinx + PageSpeed Module</h1><p
style="text-align: justify;">Vous savez <a
href="http://blog.nicolargo.com/tag/nginx">tout le bien que je pense</a> du serveur Web NGinx. J'ai donc profité de ce billet pour mettre à jour <a
href="https://github.com/nicolargo/debianpostinstall/blob/master/nginxautoinstall.sh">mon script d'installation automatique de NGinx</a> afin d'y intégrer le module PageSpeed. Ainsi pour les plus pressés d'entre-vous, il suffit de télécharge ce script et de le lancer à partir d'un compte administrateur pour avoir une configuration NGinx + PageSpeed.</p><p
style="text-align: justify;"><a
href="media/d4dc8743.capture_159.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/02/capture_159.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7333" alt="capture_159" src="media/d4dc8743.capture_159.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/02/capture_159.png" width="403" height="269" /></a></p><p
style="text-align: justify;">Pour les autres, les plus curieux, nous allons détailler l'installation dans la suite de ce paragraphe.</p><p
style="text-align: justify;">On commence donc par se créer un répertoire de travail:</p><p></p><pre class="crayon-plain-tag">mkdir ~/install-nginx-pagespeed
cd ~/install-nginx-pagespeed/</pre><p>Puis on télécharge les deux archives nécessaires:</p><pre class="crayon-plain-tag">wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.7.30.3-beta.zip
wget https://dl.google.com/dl/page-speed/psol/1.7.30.3.tar.gz</pre><p>On décompresse le tout:</p><pre class="crayon-plain-tag">unzip release-1.7.30.3-beta.zip
cd ngx_pagespeed-release-1.7.30.3-beta/
tar zxvf ../1.7.30.3.tar.gz
cd ..</pre><p>A ce stade, le répertoire ngx_pagespeed-release-1.7.30.3-beta contient donc le module PageSpeed prêt à être intégré aux sources de NGinx.</p><p>On récupère donc les sources de ce dernier:</p><p>wget http://nginx.org/download/nginx-1.4.4.tar.gz</p><p>On décompresse puis on installe:</p><pre class="crayon-plain-tag">tar zxvf nginx-1.4.4.tar.gz
cd nginx-1.4.4/
./configure --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --with-http_dav_module --http-client-body-temp-path=/var/lib/nginx/body --with-http_ssl_module --http-proxy-temp-path=/var/lib/nginx/proxy --with-http_stub_status_module --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug --with-http_flv_module --with-http_realip_module --with-http_mp4_module --add-module=../ngx_pagespeed-release-1.7.30.3-beta
make</pre><p>Enfin on installe la nouvelle version de NGinx contenant le module PageSpeed sur son système (attention cela va écraser votre installation existante mais <strong>pas</strong> les fichiers de configurations).</p><pre class="crayon-plain-tag">sudo make install</pre><p>On relance NGinx pour prendre en compte la nouvelle installation.</p><pre class="crayon-plain-tag">sudo service nginx restart</pre><p>On a donc un beau NGinx avec le module PageSpeed disponible. Par défaut, ce module n'est pas activé. Il faut donc passer à l'étape suivant: la configuration du module.</p><h1>Configuration du module PageSpeed pour NGinx</h1><p
style="text-align: justify;">C'est assez simple car tout est localisé dans la section <em>server</em> (ou <em>http</em> dans la cas d'une mutualisation avec plusieurs hôtes virtuels) des fichiers de configuration de NGinx. On commence donc par identifier cette section puis d'y ajouter les lignes suivantes pour activer le module PageSpeed en mode "pass through" (ce mode permet de choisir de manière exhaustive les filtres à appliquer):</p><p></p><pre class="crayon-plain-tag">server {
        ...
	# PageSpeed
        # enable ngx_pagespeed
        pagespeed on;
        pagespeed FileCachePath /var/ngx_pagespeed_cache;
        # Ensure requests for pagespeed optimized resources go to the pagespeed handler
        # and no extraneous headers get set.
        location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
                add_header "" "";
        }
        location ~ "^/ngx_pagespeed_static/" { }
        location ~ "^/ngx_pagespeed_beacon$" { }
        location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }
        location /ngx_pagespeed_global_statistics { allow 127.0.0.1; deny all; }
        location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }
       ...
}</pre><p>Ces lignes permettent:</p><ol><li>d'activer pagespeed (pagespeed on)</li><li>de configurer le répertoire utiliser par PageSpeed pour cacher ses informations (FileCachePath)</li><li>de s'assurer que les requêtes vers PageSpeed ne sont pas perturbées (location)</li></ol><p>Pour le cache on utilise le répertoire /var/ngx_pagespeed_cache qu'il faut créer et configurer au niveau des droits pour que NGinx puisse y accéder (dans mon cas, le processus NGinx est lancé avec l'utilisateur www-data).</p><pre class="crayon-plain-tag">sudo mkdir /var/ngx_pagespeed_cache
sudo chown www-data:www-data /var/ngx_pagespeed_cache</pre><p>Ensuite à la suite des autres lignes de la section <em>server </em>(ou <em>http</em>) on active les filtres souhaités. Voici un exemple des filtres que j'utilise sur mon serveur hébergeant ce blog:</p><pre class="crayon-plain-tag">server {
        ...
        # enable collapse whitespace filter
        pagespeed EnableFilters collapse_whitespace;
        # enable JavaScript library offload
        pagespeed EnableFilters canonicalize_javascript_libraries;
        # combine multiple CSS files into one
        pagespeed EnableFilters combine_css;
        # combine multiple JavaScript files into one
        pagespeed EnableFilters combine_javascript;
        # remove tags with default attributes
        pagespeed EnableFilters elide_attributes;
        # improve resource cacheability
        pagespeed EnableFilters extend_cache;
        # flatten CSS files by replacing @import with the imported file
        pagespeed EnableFilters flatten_css_imports;
        pagespeed CssFlattenMaxBytes 5120;
        # defer the loading of images which are not visible to the client
        pagespeed EnableFilters lazyload_images;
        # enable JavaScript minification
        pagespeed EnableFilters rewrite_javascript;
        # enable image optimization
        pagespeed EnableFilters rewrite_images;
        # pre-solve DNS lookup
        pagespeed EnableFilters insert_dns_prefetch;
        # rewrite CSS to load page-rendering CSS rules first.
        pagespeed EnableFilters prioritize_critical_css;
	# make Google analytics async
	pagespeed EnableFilters make_google_analytics_async;
}</pre><p></p><h1>Test et validation</h1><p
style="text-align: justify;">Il existe tout un tas d'outils pour tester la vitesse de chargement de vos pages. J'utilise personnellement <a
href="http://gtmetrix.com/dashboard.html">GTMetrix</a> et  <a
href="http://developers.google.com/speed/pagespeed/insights">PageSpeed Insights</a>. On peut ainsi facilement quantifier le gain de l'utilisation du module PageSpeed sur son site.</p><p
style="text-align: justify;">Il est clair que le module PageSpeed n'aura pas le même impact sur les les sites ayant pris en compte les problématiques de SEO et d'optimisation du chargement dès leurs conceptions que sur les autres. Mais au vu du faible overhead CPU et mémoire de ce module, je vous conseille de l'intégrer de base dans vos serveurs Web.</p><p
style="text-align: justify;">Utilisez-vous ce module (ou son pendant pour Apache ?) pour l'hébergement de vos sites ? Quels sont les filtres que vous mettez en place ?</p><p>Sources ayant servi à la rédaction de ce billet:</p><ul><li><a
href="https://developers.google.com/speed/pagespeed/module/config_filters">Liste complète des filtres pour PageSpeed</a></li><li><a
href="http://xmodulo.com/2014/01/speed-nginx-web-server-pagespeed.html">Une très bon article sur PageSpeed sur XModulo.com</a></li></ul><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/02/installation-de-nginx-avec-pagespeed-debian.html">Installation de NGinx avec PageSpeed sous Debian</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=HvVSHgON8a4:XLNt5ZpYp6M:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=HvVSHgON8a4:XLNt5ZpYp6M:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/HvVSHgON8a4" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=7342
title: Les idées et les logiciels libres
uri: Les-idées-et-les-logiciels-libres
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/QvtOnLTwar0/les-idees-les-logiciels-libres.html
content:
<p
style="text-align: justify;">Si la nature a rendu une chose moins propre que toutes les autres à la propriété exclusive, c’est l’action de la puissance pensante appelée une idée, qu’un individu possède seulement tant qu’il la garde pour soi; dès l’instant où elle est divulguée, elle s’impose à la possession de tous et celui qui la reçoit ne peut s’en défaire. Ce qui en fait aussi sa particularité est que personne ne la possède moins, car chacun la possède en entier. Celui qui reçoit une idée de moi, l’ajoute à son savoir sans diminuer le mien; de même que celui qui allume sa torche au feu de la mienne, reçoit la lumière sans me plonger dans les ténèbres.</p><p
style="text-align: right;">Thomas Jefferson</p><p
style="text-align: right;"><a
href="media/36211f83.capture_164.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/02/capture_164.png"><img
class="size-full wp-image-7343" alt="capture_164" src="media/36211f83.capture_164.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/02/capture_164.png" width="157" height="46" /></a></p><p
style="text-align: left;">Découvert lors du visionnage du <a
href="http://www.youtube.com/watch?v=crM1Z-x-o_Q">TEDx 2012 de Cédric Villani</a>.</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/02/les-idees-les-logiciels-libres.html">Les idées et les logiciels libres</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=QvtOnLTwar0:7kEKg7kwFyQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=QvtOnLTwar0:7kEKg7kwFyQ:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="//feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/QvtOnLTwar0" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7351
title: Mon avis sur le Dell XPS Dev Edition 2014
uri: Mon-avis-sur-le-Dell-XPS-Dev-Edition-2014
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/5F1g0dCTGsU/mon-avis-dell-xps-dev-edition-2014.html

content:
<p>Il y a quelques mois, j'avais rédigé un billet sur <a
href="http://blog.nicolargo.com/2013/12/shortlist-dultrabooks-gnulinux.html">ma shortlist d'UltraBooks compatible avec un système d'exploitation GNU/Linux</a>. Depuis, mon choix s'est porté vers le Dell XPS 13'' Developer Edition (version 2014 Sputnik). J'ai un peu attendu avant de me lancer dans la rédaction de cet article afin d'avoir le recul suffisant. <a
href="media/de6b1d4d.P1120760.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120760.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-7353" src="media/31be7f07.P1120760-300x168.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120760-300x168.jpg" alt="P1120760" width="300" height="168" /></a></p><h1>Outside de beast</h1><p>On commence par le premier contact avec la machine: l'extérieur. Première chose qui me vient: il est beau. La preuve: même ma femme qui ne jure que par Apple m'a complimenté sur les lignes fines et la qualité des matières (aluminium et plastique). On peut donc le laisser traîner sans problème au milieu de salon.</p><p>Au niveau de la taille, il se rapproche du format d'un MacBook Air sans en atteindre la finesse. Comparé à <a
href="http://blog.nicolargo.com/2010/05/installation-dubuntu-10-04-sur-fujitsu-lifebook-s760.html">mon ancienne machine</a>, celle-ci passe pour un dinosaure.</p><p
style="text-align: center;"><a
href="media/e9968ff0.P1120762.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120762.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7354" src="media/c5066874.P1120762-580x326.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120762-580x326.jpg" alt="P1120762" width="580" height="326" /></a></p><p
style="text-align: center;"><a
href="media/ec70404c.P1120763.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120763.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7355" src="media/3851676a.P1120763-580x326.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120763-580x326.jpg" alt="P1120763" width="580" height="326" /></a></p><p
style="text-align: center;">Taille du Dell XPS comparé à un Apple MBP 13"</p><h1>Inside de beast</h1><p
style="text-align: justify;">Basé sur processeur Intel i7 4500U cadencé à 3 GHz et disposant de 8 Go de RAM, il est livré avec un disque dur SSD de 250 Go avec Ubuntu 12.04 LTS pré-installé. Pour mon utilisation personnelle (majoritairement du développement, du blogging, de la navigation Internet et de la visualisation de films/séries TV), le dimensionnement de la machine est suffisant. J'aurai cependant aimé pouvoir gonfler la mémoire vive à 16 voir 32 Go de RAM mais Dell ne propose pas cette customisation (d'après certains forums, il semble que la RAM soit soudée à la carte mère...).</p><p
style="text-align: justify;"><strong>L'autonomie</strong> est d'environ 6 heures avec une luminosité d'écran adapté (je suis à un peu plus de 50% à l'intérieur de ma maison) et une utilisation mixte (développement, surf et visionnage de vidéos HD). On est donc dans la moyenne des machines de la même catégorie.</p><h1>L'écran</h1><p>L'écran de 13.3 pouces (résolution full HD de 1920x1024) est superbe: lumineux, uniforme en terme de rendu des couleurs et tactile. Ce dernier point est très bien géré, avec notamment la gestion des gestes comme le pincé/écarté pour le zoom/dé-zoom ou le scrolling haut et bas.</p><p>C'est un vrai bonheur à regarder. Cependant, il est brillant et donc dédié à une utilisation à l'intérieur.</p><p
style="text-align: center;"><a
href="media/074a2020.P1120764.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120764.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7356" src="media/f6ca577c.P1120764-580x326.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120764-580x326.jpg" alt="P1120764" width="580" height="326" /></a></p><p
style="text-align: center;">Ecran superbe mais brillant, donc utilisation en extérieur à éviter... (photo prise avec soleil dans le dos)</p><h1>Le clavier</h1><p>Les touches sont très agréables, relativement silencieuses. Seul bémol, il n'y a pas de touches Page Up et Page Down, il faut appuyer sur une combinaison de touches (Fn+Up et Fn+Down). C'est un peu gênant surtout pour les développeurs qui se servent souvent de ces touches pour naviguer à l'intérieur des codes sources. Cependant, après quelques jours, j'ai pris l'habitude des combinaisons.</p><p
style="text-align: center;"><a
href="media/06f2fefe.P1120766.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120766.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7357" src="media/af1da53a.P1120766-580x326.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120766-580x326.jpg" alt="P1120766" width="580" height="326" /></a></p><p
style="text-align: left;">Un rétro-éclairage du plus bel effet se déclenche automatiquement en cas de besoin. On peut donc continuer à coder dans la nuit :).</p><h1>Le touchpad</h1><p>Grand, très grand, trop grand. Bien que réactif et précis, il m'arrive régulièrement de cliquer dessus en saisissant un texte sur le clavier. Sous Ubuntu 14.04, il faut saisir la ligne de commande suivante pour avoir un touchpad fonctionnel avec la gestion multitouch:</p><pre class="crayon-plain-tag">echo "blacklist i2c_hid" | sudo tee -a /etc/modprobe.d/blacklist.conf</pre><p>Puis rebooter la machine.</p><p
style="text-align: center;"><a
href="media/5ee57ff2.P1120769.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120769.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7359" src="media/23036c66.P1120769-580x326.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/P1120769-580x326.jpg" alt="P1120769" width="580" height="326" /></a></p><h1>Système d'exploitation GNU/Linux</h1><p
style="text-align: justify;">Le Dell XPS Dev Edition est livré en standard avec Ubuntu 12.04 LTS. Au premier démarrage, on tombe donc sur le wizard qui permet de configurer le nom de la machine, le compte utilisateur et la configuration locale (clavier, heure...). Il est donc utilisable en moins de 5 minutes avec un environnement graphique Unity. Avant la réception de ma machine, j'ai consulté les forums de Dell pour savoir si une évolution vers Ubuntu 14.04 LTS était prévue: malheureusement ce n'est pas le cas. On voit ici les limites de la stratégie Linux de Dell. Si on peut louer la démarche de Dell de proposer un PC portable de cette qualité sans Windows, on ne peut que déplorer les limites comme le fait de travailler avec une version qui date de plus de deux ans (même si le support long terme est de cinq ans). Les acheteurs de ce type de configuration sont des geeks qui s'en foutent d'avoir sur leur PC perso une version "stable" de Linux, ils veulent de la nouveauté.</p><p
style="text-align: justify;">Cependant, cette machine supportant tous les systèmes de dernière génération, j'ai donc téléchargé l'ISO d'<a
href="http://ubuntugnome.org/ubuntu-gnome-14-04-lts-is-released/"><strong>Ubuntu Gnome Edition version 14.04</strong></a> et j'ai fait un test à partir d'une clés USB live pour vérifier que le matériel était compatible. Une fois fait, j'ai donc réinstallé complètement la machine.</p><p
style="text-align: center;"><a
href="media/be342a4f.Espace-de-travail-2_171.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/Espace-de-travail-2_171.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7361" src="media/bf2b7b95.Espace-de-travail-2_171-580x326.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/04/Espace-de-travail-2_171-580x326.png" alt="Espace de travail 2_171" width="580" height="326" /></a></p><p>Une fois correctement configuré, la machine est très réactive et agréable à utiliser.</p><p>Ma prochaine étape sera d'essayer une Arch Linux avec un environnement Gnome 3.12.</p><h1>Conclusion</h1><p>Je suis globalement très satisfait de mon achat. Pour avoir bien étudié les différentes alternatives, le Dell XPS est un bon compromis entre la qualité, la puissance et le coût de la machine.</p><h3>Les +:</h3><ul><li>Qualité générale de fabrication de la machine</li><li>Puissance idéale pour le développement logiciel</li><li>Poids et taille de la machine que l'on hésite pas à emporter en voyage</li><li>Ecran de grande qualité</li><li>Rapport qualité/prix (j'ai eu le mien à un peu moins de 1100€ grâce à une promotion)</li><li>Autonomie</li></ul><h3>Les -:</h3><ul><li>Pas de port Ethernet (il faut passer par un adaptateur Ethernet/USB que l'on trouve  à environ 25€ sur le Web)</li><li>Pas de lecteur de carte SD</li><li>Pas de lecteur DVD/BlueRay (perso je n'en fait rien...)</li><li>Ecran brillant donc difficilement utilisable en plein soleil</li><li><del>Léger sifflement proportionnel au niveau de rétro-éclairage du clavier</del> (voir <a
href="http://blog.nicolargo.com/2014/04/mon-avis-dell-xps-dev-edition-2014.html#comment-1362912723">commentaire ci-dessous</a> et le <a
href="http://en.community.dell.com/support-forums/laptop/f/3518/t/19538215.aspx?pi239031352">thread associé sur le forum de Dell</a>) =&gt; Une solution de contournement existe, voir ce commentaire)</li></ul><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/04/mon-avis-dell-xps-dev-edition-2014.html">Mon avis sur le Dell XPS Dev Edition 2014</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=5F1g0dCTGsU:rXnDVwAqsgg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=5F1g0dCTGsU:rXnDVwAqsgg:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="//feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/5F1g0dCTGsU" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7380
title: Glances v2.0 RC &#8211; J&#8217;ai besoin de vous !
uri: Glances-v2-0-RC-J-ai-besoin-de-vous
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/npJxwtHXSQ4/glances-v2-0-rc-jai-besoin.html
content:
<p>Cela fait maintenant plusieurs mois que je délaisse mon bébé blog pour me consacrer au développement de la version 2.0 de <a
href="https://github.com/nicolargo/glances">Glances</a>. Avec l'aide d'Alessio Sergi, nous avons effectué un refactoring complet du code et apporté de nouvelles fonctions qui, je l’espère, vous serons utiles.</p><p><a
href="media/187ad5d1.Slection_175.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_175.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7381" src="media/4e596b26.Slection_175-580x402.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_175-580x402.png" alt="Sélection_175" width="580" height="402" /></a></p><p>Cependant, avant la mise à disposition officielle, j'ai besoin de vous pour tester la première Release Candidate (RC1). Le développement ayant été fait sous Ubuntu 14.04, je recherche donc des personnes de bonne volonté pour valider cette RC1 sur d'autres système d'exploitation: autres distributions GNU/Linux, BSD, Mac OS, Windows.</p><h1>Comment tester Glances v2.0 RC1 ?</h1><p>Le plus simple est de suivre <a
href="https://github.com/nicolargo/glances/wiki/Install-and-test-Glances-DEVELOP-version">les instructions de la page Wiki</a> qui va vous permettre de tester cette nouvelle version sans impacter votre système existant (utilisation d'un environnement virtuel avec virtualenv).</p><p>Il est important de bien vérifier que<strong> l'on est sur la branche DEVELOP</strong> avant de lancer les tests suivants. Pour vérifier cela:</p><pre class="crayon-plain-tag">cd ~/tmp/glances
LANGUAGE=en_US.utf8  ~/glances-venv/bin/python -m glances -V</pre><p>devrait afficher comme résultat:</p><p><strong>Glances v<span
style="color: #ff0000;">2.0_RC</span>1 with psutil v2.1.0</strong></p><h1>Quoi tester?</h1><p>A vrai dire un peut tout...</p><h3>Le mode standalone</h3><p>Le plus simple est de commencer par lancer Glances en <strong>mode standalone</strong> (supervision de son propre système):</p><pre class="crayon-plain-tag">cd ~/tmp/glances
LANGUAGE=en_US.utf8  ~/glances-venv/bin/python -m glances -C ~/tmp/glances/conf/glances-monitor.conf</pre><p>Votre terminal devrait afficher les statistiques (rafraîchissement par défaut de 3 secondes). En appuyant sur la touche 'h', vous obtiendrez une liste des différentes fonctions.</p><h3>Mode client/serveur classique</h3><p>Je vous propose ensuite de passer au mode client/serveur qui peut être testé sur une unique machine (le client et le serveur étant lancé sur la même machine) ou bien sur deux machines différentes.</p><p>On commence par lancer le serveur:</p><pre class="crayon-plain-tag">cd ~/tmp/glances
LANGUAGE=en_US.utf8  ~/glances-venv/bin/python -m glances -C ~/tmp/glances/conf/glances-monitor.conf -s</pre><p>Puis le client:</p><pre class="crayon-plain-tag">cd ~/tmp/glances
LANGUAGE=en_US.utf8  ~/glances-venv/bin/python -m glances -C ~/tmp/glances/conf/glances-monitor.conf -c @IPSERVER</pre><p>Votre terminal va alors afficher les statistiques du serveur.</p><h3>Mode client/serveur SNMP</h3><p>C'est une nouveauté de la version 2.0. Ce mode permet de lancer un client vers une machine ou le serveur Glances n'est pas lancé. Il va ainsi essayé de se connecter a un serveur SNMP (<a
href="http://blog.nicolargo.com/2008/02/installation-dun-serveur-snmp-sous-linux.html">si celui-ci est installé sur votre serveur</a>). Cette fonction est encore expérimentale et ne fonctionne correctement qu'avec des agents SNMP GNU/Linux.</p><p>Pour tester, il suffit de lancer le client:</p><pre class="crayon-plain-tag">cd ~/tmp/glances
LANGUAGE=en_US.utf8  ~/glances-venv/bin/python -m glances -C ~/tmp/glances/conf/glances-monitor.conf -c @IPSERVER</pre><p>Votre terminal va alors afficher les statistiques minimale du serveur (par exemple, on a pas la liste des processus).</p><h3><a
href="media/f84392bd.Slection_176.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_176.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7382" src="media/1cf4eaaf.Slection_176-580x166.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_176-580x166.png" alt="Sélection_176" width="580" height="166" /></a></h3><h3>Mode Web serveur</h3><p>Egalement une nouveauté de la version 2.0, ce mode permet de lancer un serveur Glances qui va proposer une interface Web. Glances utilise pour cela le framework Bootle qui a déjà fait ses preuves dans de nombreux autres projets libres.</p><p>Pour lancer le serveur en mode Web, il faut saisir la ligne de commande suivante:</p><pre class="crayon-plain-tag">cd ~/tmp/glances
LANGUAGE=en_US.utf8  ~/glances-venv/bin/python -m glances -C ~/tmp/glances/conf/glances-monitor.conf -w</pre><p>Puis pointer son navigateur Web préféré sur l'adresse suivante: http://&lt;ip serveur&gt;:61208/</p><p><a
href="media/48e4e111.Glances-Mozilla-Firefox_177.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Glances-Mozilla-Firefox_177.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7383" src="media/29113161.Glances-Mozilla-Firefox_177-580x318.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Glances-Mozilla-Firefox_177-580x318.png" alt="Glances - Mozilla Firefox_177" width="580" height="318" /></a></p><h1>Comment remonter un bug ou une demande d'amélioration ?</h1><p>Il faut disposer d'un compte Github et de cliquer sur le lien suivant: <a
href="https://github.com/nicolargo/glances/issues/new">Remonter un bug dans Glances</a>.</p><p>Dans la description, faire systématiquement apparaître:</p><ul><li>la version de Glances testée ( <em>~/glances-venv/bin/python -m glances -V)</em></li><li>votre environnement de test (système d'exploitation, hardware, version de Python...)</li><li>un descriptif le plus précis du problème et de la manière de le reproduire (en Anglais de préférence)</li></ul><p>Je compte sur vous <img
src="media/a8d8b248.icon_smile.gif" data-original-source="http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/05/glances-v2-0-rc-jai-besoin.html">Glances v2.0 RC &#8211; J&#8217;ai besoin de vous !</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=npJxwtHXSQ4:sfJKHEw2l4g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=npJxwtHXSQ4:sfJKHEw2l4g:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="//feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/npJxwtHXSQ4" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7386
title: Virtualisation légère avec Docker
uri: Virtualisation-légère-avec-Docker
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/aCgbAZi-px4/virtualisation-legere-docker.html
content:
<p>Dans le petit monde des DevOps, la solution de virtualisation Docker a le vent en poupe. Nous allons dans ce billet essayer de décrypter ce qui ce cache derrière ce nouvel outil et proposer un tutoriel sur l'installation et les premiers pas pour une utilisation souple et efficace.<img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter wp-image-7388 size-thumbnail" src="media/5c7b8aab.Slection_178-150x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_178-150x150.png" alt="Sélection_178" width="150" height="150" /></p><h1>C'est quoi donc ?</h1><p>Docker est <a
href="https://github.com/dotcloud/docker">un logiciel open-source</a> (sous licence Apache 2.0) et <a
href="https://www.docker.io/account/signup/">un service en ligne optionnel</a> (Docker.io) permettant de gérer des conteneurs ("dockers").</p><p>Contrairement aux machines virtuelles classiques qui comprennent un système hôte ("guest OS") et les librairies/applications, les conteneurs ne contiennent, au maximum, que les applications/librairies.</p><p
style="text-align: center;"> <a
href="media/6848b5be.Slection_180.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_180.png"><img
class="alignnone wp-image-7391 size-full" src="media/6aca332f.Slection_179.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_179.png" alt="Sélection_179" width="227" height="256" /><img
class="alignnone wp-image-7390 size-full" src="media/6848b5be.Slection_180.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_180.png" alt="" width="252" height="123" /></a></p><p>Quand je dis au maximum c'est qu'une copie d'un conteneur qui ne change que la partie application ne contiendra que les différences par rapport au conteneur initial.</p><p><a
href="media/054a790d.Slection_181.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_181.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7389" src="media/054a790d.Slection_181.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/Sélection_181.png" alt="Sélection_181" width="327" height="275" /></a></p><p
style="text-align: justify;">Le système hôte est ainsi géré directement par le Docker Engine (en vert dans le premier schéma). On a ainsi une mutualisation qui permet de lancer les conteneurs de manière très rapide: le temps de lancement d'un conteneur est presque le même que le temps de lancement des applications qu'il contient. En effet, le système d'exploitation est déjà lancé. Donc pas de phase de démarrage ni d'initialisation de cette couche. Il faut quand même avoir à l'esprit que même si l'on est pas dans une machine virtuelle, on dispose tout de même d'un environnement isolé (processus, système de fichier, ports réseau). L'utilisateur n'a qu'à se préoccuper que de ce qu'il veut virtualiser (les applications/services) et ne s'occupe pas du reste.</p><p
style="text-align: justify;">L'autre gros avantage de cette technologie est la portabilité. En effet, il est tout à fait possible de concevoir un conteneur sur son PC portable puis ensuite de le déployer sur son infrastructure de production physique ou virtuelle. La taille des conteneurs étant relativement réduite, on peut donc imaginer un workflow de déploiement basée sur un repo central (type Git) et des Docker Engine installés sur les machines qui font elle même tourner des conteneurs. Il n'y a pas vraiment de limite au nombre de conteneurs qu'une machine puisse faire tourner. La limite vient de l'occupation mémoire/CPU/réseau de vos applications.</p><p>Si vous avez encore des questions sur la différence entre Docker et VM, je vous conseille la lecture de cette question sur StackOverflow: "<a
href="http://stackoverflow.com/questions/16047306/how-is-docker-io-different-from-a-normal-virtual-machine">How is Docker.io different from a normal virtual-machine ?</a>".</p><h1>Installation de Docker</h1><p
style="text-align: justify;"><span
style="text-decoration: underline;">Note (merci à <a
href="http://twitter.com/jbbarth">@jb_barth</a> pour le commentaire)</span>: jusqu'à la version 0.9, Docker se basait sur <a
href="https://linuxcontainers.org/">la technologie LXC</a> ("Linux Containers") du noyau <strong>Linux</strong> et ne fonctionnait donc que sur des distributions GNU/Linux avec un noyau <strong>&gt;= 2.6.24</strong>. La dépendance stricte à LXC a sauté depuis la v0.9.0, le driver par défaut est maintenant libcontainer, une lib pur go produite par le projet pour accéder de façon propre aux APIs dispos dans le kernel. C'est ce qui a permis de supporter des noyaux aussi vieux d'ailleurs, au début c'était &gt;= 3.8</p><p
style="text-align: justify;">Voici les étapes à suivre pour installer Docker sur une distribution Ubuntu 14.04 LTS. A noter, pour les miséreux développeurs sous Windows ou Mac OS, il est est toujours possible de faire tourner une VM Ubuntu (par exemple avec VirtualBox) et de suivre cette installation.</p><p
style="text-align: justify;">Docker est directement disponible dans les repositories d'Ubuntu, donc un simple</p><p></p><pre class="crayon-plain-tag">sudo apt-get install docker.io
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker</pre><p>suffit pour effectuer l'installation complète de Docker sur notre machine comprenant:</p><ul><li>le Docker Engine (ou service Docker)</li><li>le Docker Client (permettant de discuter avec le Docker Engine)</li></ul><p>Cependant su vous souhaiter travailler avec une version plus ressente il faut utiliser les commandes suivantes:</p><pre class="crayon-plain-tag">sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb https://get.docker.io/ubuntu docker main \ &gt; /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker</pre><p>Comme les conteneurs vont utiliser les serveurs DNS de la machine hôte, il est nécessaire de configurer les adresses des serveurs DNS dans le fichier /etc/default/docker.io (par exemple avec <a
href="http://www.opendns.com/opendns-ip-addresses/">les serveurs OpenDNS</a>):</p><pre class="crayon-plain-tag">$ vi /etc/default/docker.io
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="-dns 208.67.220.220 -dns 208.67.220.222"</pre><p>Pour que la configuration soit prise en compte, il faut relancer le service Docker avec la commande:</p><pre class="crayon-plain-tag">sudo service docker restart</pre><p>Un petit ps permet de voir que le service est bien lancé:</p><pre class="crayon-plain-tag">0.0   0.1  563M 9.65M   733 root         0 S  0:00.46     0     0 /usr/bin/docker.io -d -dns 208.67.220.220 -dns 208.67.220.222</pre><p></p><h1>Récupération des images système</h1><p>Nous allons commencer par récupérer <a
href="http://docs.docker.io.s3-website-us-west-2.amazonaws.com/terms/image/">des images qui vont servir de de bases</a> à notre conteneur. Une liste assez conséquente d'images sont disponibles sur le site officiel du projet. Vous pouvez ainsi récupérer celle qui est le plus proche de l'environnement que vous recherché. Un moteur de recherche est disponible à l'adresse <a
href="https://index.docker.io/">https://index.docker.io/</a> pour trouver des images conçues par les développeurs du projet et par des contributeurs.</p><p>On retrouve ainsi des distributions GNU/Linux minimales comme <a
href="https://index.docker.io/_/ubuntu/">Ubuntu</a>, <a
href="https://index.docker.io/_/centos/">CentOS</a>, <a
href="https://index.docker.io/_/busybox/">BusyBox</a> pour ne siter que les images officiellement supportées par le projet Docker.io (il existe également des repos non officiels avec Fedora, RH, Arch...).</p><p>Petit mention spéciale pour les images <a
href="http://www.busybox.net/">BusyBox</a> qui sont vraiment très légère (moins de 10 Mo) pour un système fonctionnel !</p><p>Même si il est possible de directement télécharger l'image au lancement du conteneur, je préfère avoir sur ma machine les images des différentes versions de l'OS que j'utilise le plus: Ubuntu.</p><p>Pour récupérer l'ensemble des images du repo Ubuntu qui contient les versio  minimale d'Ubuntu de la version 10.04 à 14.04), il faut saisir la commande suivante:</p><pre class="crayon-plain-tag">$ sudo docker pull ubuntu
74fe38d11401: Pulling dependent layers
316b678ddf48: Pulling dependent layers
3db9c44f4520: Pulling dependent layers
5e019ab7bf6d: Pulling dependent layers
99ec81b80c55: Pulling dependent layers
a7cf8ae4e998: Pulling dependent layers
511136ea3c5a: Download complete
e2aa6665d371: Downloading [==&gt;                                                ] 2.027 MB/40.16 MB 6m14s</pre><p>Note: le téléchargement initial des images peut prendre un peu de temps selon la vitesse de votre liaison Internet.</p><p>Il est également possible de faire de même avec les autres distributions citées ci-dessus:</p><pre class="crayon-plain-tag">$ sudo docker pull centos
$ sudo docker pull busybox</pre><p>Une fois le téléchargement terminé, on peut demandé à Docker un status de son état actuel:</p><pre class="crayon-plain-tag">$ sudo docker info
Containers: 64
Images: 46
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 174
Execution Driver: native-0.1
Kernel Version: 3.13.0-24-generic
WARNING: No swap limit support</pre><p>ainsi que la liste des images disponibles:</p><pre class="crayon-plain-tag">$ sudo docker images
REPOSITORY          TAG                   IMAGE ID            CREATED             VIRTUAL SIZE
busybox             buildroot-2013.08.1   352f47ad2ecf        17 hours ago        2.489 MB
busybox             ubuntu-14.04          6a95c08a9391        17 hours ago        5.609 MB
busybox             ubuntu-12.04          1720a1681f1c        17 hours ago        5.455 MB
busybox             buildroot-2014.02     f66342b343ae        17 hours ago        2.433 MB
busybox             latest                f66342b343ae        17 hours ago        2.433 MB
ubuntu              glances_develop       a483f92d9ab3        24 hours ago        556.8 MB
ubuntu              14.04_nicolargo       8574cc29575e        28 hours ago        440.8 MB
ubuntu              13.10                 5e019ab7bf6d        4 weeks ago         180 MB
ubuntu              saucy                 5e019ab7bf6d        4 weeks ago         180 MB
ubuntu              12.04                 74fe38d11401        4 weeks ago         209.6 MB
ubuntu              precise               74fe38d11401        4 weeks ago         209.6 MB
ubuntu              12.10                 a7cf8ae4e998        4 weeks ago         171.3 MB
ubuntu              quantal               a7cf8ae4e998        4 weeks ago         171.3 MB
ubuntu              14.04                 99ec81b80c55        4 weeks ago         266 MB
ubuntu              latest                99ec81b80c55        4 weeks ago         266 MB
ubuntu              trusty                99ec81b80c55        4 weeks ago         266 MB
ubuntu              13.04                 316b678ddf48        4 weeks ago         169.4 MB
ubuntu              raring                316b678ddf48        4 weeks ago         169.4 MB
ubuntu              lucid                 3db9c44f4520        5 weeks ago         183 MB
ubuntu              10.04                 3db9c44f4520        5 weeks ago         183 MB
centos              centos6               0b443ba03958        6 weeks ago         297.6 MB
centos              6.4                   539c0211cd76        14 months ago       300.6 MB
centos              latest                539c0211cd76        14 months ago       300.6 MB</pre><p>Comme alternative du moteur de recherche <a
href="https://index.docker.io/">https://index.docker.io/</a>, il est bien sûr possible d'utiliser la ligne de commande. Par exemple pour trouver toutes les images Ubuntu disponibles sur le repo central:</p><pre class="crayon-plain-tag">sudo docker search ubuntu | less</pre><p>A noter qu'il est tout à fait possible, si vous ne trouvez pas votre bonheur de concevoir "from scratch" votre propre image système en suivant cette documentation sur le site officiel (la procédure se base sur DebootStrap).</p><h1>Création de son premier conteneur</h1><p>Bon assez de préliminaires, nous allons maintenant pourvoir créer notre premier conteneur qui va se limiter à exécuter la commande 'ls' (si c'est pas du conteneur de compétition):</p><pre class="crayon-plain-tag">$ sudo docker run ubuntu:latest /bin/ls -alF
total 8280
drwxr-xr-x  46 root root    4096 May 28 06:50 ./
drwxr-xr-x  46 root root    4096 May 28 06:50 ../
-rw-r--r--   1 root root     102 May 28 06:50 .dockerenv
-rwx------   1 root root 8394118 May 27 15:37 .dockerinit*
drwxr-xr-x   2 root root    4096 Apr 16 20:36 bin/
drwxr-xr-x   2 root root    4096 Apr 10 22:12 boot/
drwxr-xr-x   4 root root    4096 May 28 06:50 dev/
drwxr-xr-x  64 root root    4096 May 28 06:50 etc/
drwxr-xr-x   2 root root    4096 Apr 10 22:12 home/
drwxr-xr-x  12 root root    4096 Apr 16 20:36 lib/
drwxr-xr-x   2 root root    4096 Apr 16 20:35 lib64/
drwxr-xr-x   2 root root    4096 Apr 16 20:35 media/
drwxr-xr-x   2 root root    4096 Apr 10 22:12 mnt/
drwxr-xr-x   2 root root    4096 Apr 16 20:35 opt/
dr-xr-xr-x 236 root root       0 May 28 06:50 proc/
drwx------   2 root root    4096 Apr 16 20:36 root/
drwxr-xr-x   7 root root    4096 Apr 16 20:36 run/
drwxr-xr-x   2 root root    4096 Apr 24 16:17 sbin/
drwxr-xr-x   2 root root    4096 Apr 16 20:35 srv/
dr-xr-xr-x  13 root root       0 May 28 06:50 sys/
drwxrwxrwt   2 root root    4096 Apr 24 16:17 tmp/
drwxr-xr-x  11 root root    4096 Apr 16 20:35 usr/
drwxr-xr-x  14 root root    4096 Apr 16 20:36 var/</pre><p>Arrêtons-nous un peu sur la commande: <span
style="color: #666699;"><strong>sudo docker.io run ubuntu:latest /bin/ls -alF</strong></span></p><p>On demande donc le lancement (<span
style="color: #666699;"><strong>run</strong></span>) d'un conteneur basée sur la dernière version d'Ubuntu (<span
style="color: #666699;"><strong>ubuntu:latest</strong></span> qui est un lien vers l'image minimale de la version 14.04) qui va exécuter la commande ls (<strong><span
style="color: #666699;">/bin/ls -alF</span></strong>). Comme vous pouvez le voir dans le résultat de la commande, on est dans un environnement isolé avec son propre système de fichier.</p><p>Première constatation, la vitesse d’exécution de notre environnement virtuel est vraiment impressionnante. Sur une petit commande,on peut voir que <em>l'overhead</em> de lancement du conteneur est négligeable:</p><pre class="crayon-plain-tag">$ time sudo docker run ubuntu:latest ls -alF /
...
real	0m0.331s
user	0m0.014s
sys	0m0.012s
$ time ls -alF /
...
real	0m0.007s
user	0m0.003s
sys	0m0.004s</pre><p></p><h1>Puis un conteneur persistant</h1><p>Passons maintenant à la création d'un conteneur persistant, c'est à dire un conteneur  qui va faire tourner une tache pendant un temps indéterminé (je prends par exemple un pin infini vers le site Google).</p><pre class="crayon-plain-tag">$ sudo docker run -d ubuntu:latest ping www.google.fr
7404bfa4beca4ba97459c96f8d93242c4fba6ecf2c5b11d18c09acd2fce9991e</pre><p>Noter le -d dans la ligne de commande pour détacher le conteneur et ainsi lui permettre de tourner en tache de fond.</p><p>En retour on obtient le numéro d'identifiant unique du conteneur qui va nous permettre de le contrôler.</p><p>On commence donc par vérifier qu'il tourne bien:</p><pre class="crayon-plain-tag">$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
7404bfa4beca        ubuntu:14.04        ping www.google.fr   3 minutes ago       Up 3 minutes                            mad_lumiere</pre><p>On peut ainsi, l'arrêter:</p><pre class="crayon-plain-tag">sudo docker stop 7404bfa4beca</pre><p>Le démarrer:</p><pre class="crayon-plain-tag">sudo docker start 7404bfa4beca</pre><p>Le redémarrer (l'équivalent d'un stop/start):</p><pre class="crayon-plain-tag">sudo docker restart 7404bfa4beca</pre><p>Lui envoyer des signaux:</p><pre class="crayon-plain-tag">sudo docker kill 7404bfa4beca</pre><p>Ensute on supprime le conteneur avec la séquence stop/rm:</p><pre class="crayon-plain-tag">sudo docker stop 7404bfa4beca
sudo docker rm 7404bfa4beca</pre><p></p><h1>Un Shell dans un conteneur</h1><p>Pour accéder à un shell dans le conteneur, il faut utiliser les options suivantes dans la ligne de commande:</p><ul><li>-t: Allocate a pseudo-tty</li><li>-i: Keep STDIN open even if not attached</li></ul><p></p><pre class="crayon-plain-tag">$ sudo docker run -i -t ubuntu:latest bash
root@bb89ed6cdd3c:/#</pre><p></p><h1>Structurer la création des conteneurs avec les Dockerfiles</h1><p>Les <a
href="https://www.docker.io/learn/dockerfile">Dockerfiles</a> sont des fichiers textes décrivant les différentes étapes pour la création d'un conteneur. Idéalement, ce sont ces fichiers que vous aller gérer en configuration et que vous aller partager avec les différentes personnes utilisatrices de votre projet. Pour illustrer mes dires, je vais prendre l'exemple d'un dockerfile qui va permettre aux contributeurs <a
href="https://github.com/nicolargo/glances">du projet Glances</a> de tester simplement la branche de développement du logiciel.</p><p>En gros, le dockfile doit:</p><ol><li>utiliser un OS de base (Ubuntu 14.04 LTS)</li><li>installer les pré-requis système</li><li>télécharger la dernière version de Glances sous Github</li></ol><p>Le dockfile <strong>glances_develop_install</strong> correspondant est alors le suivant:</p><pre class="crayon-plain-tag"># Install Glances Development branch
#
# $ sudo docker build -t ubuntu:glances_develop - &lt; glances_develop_install
#
# VERSION 1.0
# Use the ubuntu base image provided by dotCloud
FROM ubuntu
MAINTAINER Nicolargo, nicolas@nicolargo.com
# Make sure the package repository is up to date
RUN apt-get -y update
# Install prerequirement
RUN apt-get install -y python-dev python-pip git lm-sensors
RUN pip install psutil bottle batinfo https://bitbucket.org/gleb_zhulik/py3sensors/get/tip.tar.gz
# Patch for current Docker version
RUN ln -s /proc/mounts /etc/mtab
# Install Glances from the Pipy repository
RUN git clone -b develop https://github.com/nicolargo/glances.git</pre><p>Voyons un peu en détail le contenu du fichier.  On commence donc par définir l'OS de base:</p><p><strong>FROM ubuntu</strong></p><p>On peut bien sûr utiliser l'image/tag que l'on souhaite.</p><p>Ensuite on passe aux commandes que l'on souhaite exécuter:</p><p><strong>RUN apt-get -y update</strong></p><p><strong>RUN apt-get install -y python-dev python-pip git lm-sensors</strong></p><p><strong>RUN pip install psutil bottle batinfo https://bitbucket.org/gleb_zhulik/py3sensors/get/tip.tar.gz</strong></p><p><strong>RUN ln -s /proc/mounts /etc/mtab</strong></p><p><strong>RUN git clone -b develop https://github.com/nicolargo/glances.git</strong></p><p>Rien de bien compliqué, il suffit de faire précéder la commande Unix par le mot clé RUN...</p><p>Il ne reste plus qu'à lancer la construction du conteneur et son exportation vers une nouvelle image (nommé ubuntu:glances_develop) à partir de la ligne de commande:</p><pre class="crayon-plain-tag">sudo docker build -t ubuntu:glances_develop - &lt; glances_develop_install</pre><p><strong>ou</strong> alors directement depuis un repos (par exemple GitHub) ou vos Dockers files sont gérés en configuration:</p><pre class="crayon-plain-tag">sudo docker build -t ubuntu:glances_develop https://raw.githubusercontent.com/nicolargo/dockersfiles/master/glances_develop_install</pre><p>On vérifie ensuite que l'image a bien été créée:</p><pre class="crayon-plain-tag">$ sudo docker images | grep glances
ubuntu glances_develop a483f92d9ab3 31 hours ago 556.8 MB</pre><p>Puis on lance Glances depuis ce conteneur (en le metant à jour par un pull avant le lancement):</p><pre class="crayon-plain-tag">sudo docker run -i -t --entrypoint /bin/bash ubuntu:glances_develop -c "cd glances ; git pull origin develop ; python -m glances"</pre><p>Et hop c'est magique:</p><p><a
href="media/20ce2f55.bin-bash_182.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/bin-bash_182.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7400" src="media/c4c4cdd1.bin-bash_182-580x384.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/05/bin-bash_182-580x384.png" alt="Glances in a docker" width="580" height="384" /></a></p><p>Un des trucs fun avec Docker c'est que si l'on souhaite modifier un conteneur en ajoutant par exemple l'installation d'un nouveau logiciel, il suffit de modifier le Docker file puis de refaire la commande de build. L'installation ne se fera que par delta par rapport au premier conteneur.</p><h1>Controler la CPU et la mémoire de ses conteneurs</h1><p>Une fonction intéressante de Docker est sa capacité de contraindre un conteneur en terme de CPU et de MEM. Par exemple on peut limiter le conteneur à 512 Mo de RAM et donner un priorité moins forte en terme de CPU à ce conteneur par rapport aux autres. Il faut cependant que le hôte qu héberge Docker soit compatible avec ces options ce qui n'est pas mon cas:</p><pre class="crayon-plain-tag">$ sudo docker run -m 512m -i -t --entrypoint /bin/bash ubuntu:glances_develop -c "cd glances ; git pull origin develop ; python -m glances"
WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.</pre><p>Pour activer ces options sous Ubuntu, il faut modifier la configuration du Kernel via GRUB. Pour cela, il est nécessaire <a
href="http://docs.docker.io/installation/ubuntulinux/#memory-and-swap-accounting">de suivre cette procédure</a>.</p><h1>Conclusion</h1><p>L'approche est vraiment différente des solutions de virtualisation classiques mais si vous cherchez un outil simple pour valider vos applications Linux dans un environnement controlé alors Docker est définitivement une solution à envisager. Sa souplesse et sa légéreté en font une solution idéale à embarquer sur son PC portable ou à mettre en production sur son infrastructure.</p><p>Je vous conseille de vous plonger dans <a
href="http://docs.docker.io/">la documentation officielle</a> qui est vraiment complète et très bien faite.</p><p>Des expériences à nous faire partager sur l'utilisation de Docker ?</p><p><em>Quelques références:</em></p><ul><li><a
href="https://www.docker.io/">https://www.docker.io/</a></li><li><a
href="http://docs.docker.io/reference/commandline/cli/">http://docs.docker.io/reference/commandline/cli/</a></li><li><a
href="http://sametmax.com/le-deploiement-par-conteneurs-avec-docker/">http://sametmax.com/le-deploiement-par-conteneurs-avec-docker/</a></li></ul><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/06/virtualisation-legere-docker.html">Virtualisation légère avec Docker</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=aCgbAZi-px4:jkPAA806ulw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=aCgbAZi-px4:jkPAA806ulw:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="//feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/aCgbAZi-px4" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7406
title: Un sacré programme pour les SophiaConf 2014
uri: Un-sacré-programme-pour-les-SophiaConf-2014
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/QGvWDAIcv-s/sacre-programme-les-sophiaconf-2014.html

content:
<p>Cette année encore, la Telecom Valley nous gâte avec une série de 4 soirées de conférences accessible gratuitement sur le campus SophiaTech à Sophia-Antipolis (06).</p><p><a
href="media/1ba7393c.capture_170.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/06/capture_170.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7407" src="media/1ba7393c.capture_170.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/06/capture_170.png" alt="capture_170" width="433" height="112" /></a></p><table
style="width: 675px;" border="1" cellspacing="1" cellpadding="1"><tbody><tr><td></td><td><p
class="rtecenter" style="text-align: center;"><span
style="color: #006633;"><strong>Lundi 30/06</strong></span></p><p
class="rtecenter" style="text-align: center;"><a
href="http://www.telecom-valley.fr/pagecmsblog/30-06-iot-diy"><span
style="color: #0066cc;"><strong>Internet Of Things/ M2M / Do It Yourself</strong></span></a><span
style="color: #0066cc;"><a
href="http://www.telecom-valley.fr/pagecmsblog/30-06-iot-diy"><strong> </strong></a></span></p></td><td
class="rtecenter"><p
style="text-align: center;"><span
style="color: #006633;"><strong>Mardi 01/07</strong></span></p><p
style="text-align: center;"><strong><span
style="color: #0066cc;"><a
href="http://www.telecom-valley.fr/pagecmsblog/01-07-big-data-nosql-bi-securite-cloud">Big data, No SQL, BI et sécurité du cloud</a></span></strong></p></td><td
class="rtecenter"><p
style="text-align: center;"><span
style="color: #006633;"><strong>Mercredi 02/07 </strong></span></p><p
style="text-align: center;"><span
style="color: #0066cc;"><b><a
href="http://www.telecom-valley.fr/pagecmsblog/02-07-web-semantique">Web Sémantique : de la recherche à l'usage - enfin?</a></b></span></p></td><td
class="rtecenter"><p
style="text-align: center;"><span
style="color: #006633;"><strong>Jeudi 03/07</strong></span></p><p
style="text-align: center;"><a
href="http://www.telecom-valley.fr/pagecmsblog/03-07-developpement-web"><span
style="color: #0066cc;"><b>Nouvelles tendances de développement web </b></span></a></p></td></tr><tr><td><span
style="color: #006633;"><strong>Lieux</strong></span></td><td
class="rtecenter"><a
href="http://www.telecom-valley.fr/pagecmsblog/planacces"><span
style="text-decoration: underline;">Campus SophiaTech</span></a></td><td
class="rtecenter"><a
href="http://www.telecom-valley.fr/pagecmsblog/planacces"><span
style="color: #0062a0;"><span
style="text-decoration: underline;">C</span></span><span
style="text-decoration: underline;">ampus SophiaTech</span></a></td><td
class="rtecenter"><a
href="http://www.telecom-valley.fr/pagecmsblog/planacces"><span
style="color: #0062a0;"><span
style="text-decoration: underline;">C</span></span><span
style="text-decoration: underline;">ampus SophiaTech</span></a></td><td
class="rtecenter"><a
href="http://www.telecom-valley.fr/pagecmsblog/planacces"><span
style="color: #0062a0;"><span
style="text-decoration: underline;">C</span></span><span
style="text-decoration: underline;">ampus SophiaTech</span></a></td></tr><tr><td><strong><span
style="color: #006633;">Horaires</span></strong></td><td
class="rtecenter" style="text-align: center;">Accueil à 17h45</p><p><strong>18h00 - 20h00</strong></td><td
class="rtecenter" style="text-align: center;">Accueil à 17h45</p><p><strong>18h00 - 20h00</strong></td><td
class="rtecenter" style="text-align: center;">Accueil à 17h45</p><p><b>18h00 - 20h00</b></td><td
class="rtecenter" style="text-align: center;">Accueil à 17h45</p><p><strong>18h00 - 20h00</strong></td></tr><tr><td><span
style="color: #006633;"><strong>Intervenants </strong></span></td><td><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/pascal-bodin"><b>Pascal BODIN</b></a><br
/> (Orange)</p><p
class="rteleft"><strong><a
href="http://www.telecom-valley.fr/pagecmsblog/alexis-moussine-pouchkine-0">Alexis MOUSSINE-POUCHKINE </a></strong>Google<br
/> (à confirmer)</p><p
class="rteleft"><b><a
href="http://www.telecom-valley.fr/pagecmsblog/alexandru-caracas">Alexandru CARACAS</a></b><br
/> (IBM Zurich)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/jean-demartini-0"><strong>Jean DEMARTINI</strong></a><br
/> (Demtech)</p><p><a
href="http://www.telecom-valley.fr/pagecmsblog/benjamin-cabe"><strong>Benjamin CABE</strong></a><br
/> (Fondation Eclipse)</p><p><a
href="http://www.telecom-valley.fr/pagecmsblog/julien-holtzer"><strong>Julien HOLTZER </strong></a>(Pobot)</p><p>&nbsp;</p><p>&nbsp;</td><td><strong>Didier GIRARD </strong>(SFEIR, Google Developer Expert)</p><p><a
href="http://www.telecom-valley.fr/pagecmsblog/aur%C3%A9lien-goujet"><strong>Aurélien GOUJET </strong></a>(MapR)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/edmond-cisse"><strong>Edmond CISSE</strong></a><br
/> (Uraeus Consult)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/cyril-grosjean-0"><b>Cyril GROSJEAN </b></a><br
/> (Janua)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/aur%C3%A9lien-mazoyer-0"><b>Aurélien MAZOYER</b></a><br
/> (France Labs)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/olivier-tavard-0"><strong>Olivier TAVARD</strong></a><br
/> (France Labs)</p><p><a
href="http://www.telecom-valley.fr/pagecmsblog/julien-marechal"><strong>Julien MARECHAL</strong></a><strong><a
href="http://www.telecom-valley.fr/pagecmsblog/g%C3%A9rard-richter"> </a></strong><br
/> (Air France)</p><p><a
href="http://www.telecom-valley.fr/pagecmsblog/j%C3%A9r%C3%A9my-meyer"><b>Jérémy MEYER</b></a><br
/> (Amadeus)</p><p>&nbsp;</td><td><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/fabien-gandon-0"><strong>Fabien GANDON </strong></a><br
/> (Inria)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/christophe-desclaux"><strong>Christophe DESCLAUX</strong></a><br
/> (Reador)</p><p><a
href="http://www.telecom-valley.fr/pagecmsblog/myl%C3%A8ne-leitzelman"><strong>Mylène LEITZELMAN</strong></a><br
/> (Mnemotix)</p><p><a
href="http://www.telecom-valley.fr/pagecmsblog/laurent-bihanic"><strong>Laurent BIHANIC</strong></a><br
/> (Atos)</p><p><strong>Guillaume VILAND</strong></p><p>(Orange Portail)</td><td><p
class="rteleft"><strong><a
href="http://www.telecom-valley.fr/pagecmsblog/xavier-carcelle">A</a><a
href="http://www.telecom-valley.fr/pagecmsblog/alexis-moussine-pouchkine-0">lexis MOUSSINE-POUCHKINE</a></strong><br
/> (Google europe)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/bertrand-laporte-0"><b>Bertrand LAPORTE</b></a><br
/> (Amadeus)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/beno%C3%AEt-charbonier"><strong>Benoît CHARBONIER</strong></a><br
/> (Amadeus)</p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/matti-schneider"><strong>Matti SCHNEIDER</strong></a></p><p
class="rteleft"><a
href="http://www.telecom-valley.fr/pagecmsblog/pawel-kozlowski"><strong>Pawel KOZLOWSKI</strong></a><br
/> (Amadeus)</p><p
class="rteleft"></td></tr><tr><td><strong><span
style="color: #006633;">Infos pratiques</span></strong></td><td
colspan="4" rowspan="1">Entrée gratuite, inscription obligatoire</p><p>Inscrivez-vous en <a
href="http://www.telecom-valley.fr/webform/inscription-sophiaconf2014"><span
style="text-decoration: underline;">cliquant ici</span></a>.</td></tr></tbody></table><p>Vous pouvez vous inscrire en ligne à partir du site officiel: <strong><a
href="http://www.telecom-valley.fr/webform/inscription-sophiaconf2014">http://www.telecom-valley.fr/webform/inscription-sophiaconf2014</a></strong></p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/06/sacre-programme-les-sophiaconf-2014.html">Un sacré programme pour les SophiaConf 2014</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=QGvWDAIcv-s:Exm8Fnl6Jrk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=QGvWDAIcv-s:Exm8Fnl6Jrk:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/QGvWDAIcv-s" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7411
title: Glances version 2.0 est là
uri: Glances-version-2-0-est-là
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/GSH_8oUJZv8/glances-version-2-0.html
content:
<p>Après plusieurs mois de travail, la nouvelle version majeure de Glances vient d'être publié. L'objectif de ce billet est de faire une rapide présentation des nouveautés, <a
href="http://linuxfr.org/news/sortie-de-glances-version-2-0">un article plus complet est disponible sur LinuxFR</a>.</p><p>Pour ceux d'entre vous qui ne connaissent pas encore Glances, c'est un logiciel permettant de superviser le plus simplement possible ses machines en disposant sur une seule et unique page (terminal ou interface Web) les informations importantes (CPU, mémoire, charge, processus...).</p><p>Il peut être utilisé dans des configurations différentes:</p><ul><li>standalone: superviser la machine sur laquelle on se trouve à partir d'une interface Curse</li><li>client/serveur: superviser une machine distante à partir d'une interface Curse</li><li>serveur Web: superviser une machine distante à partir d'un navigateur Internet</li><li>API: accès aux statistique via une API XML/RPC</li></ul><h1><a
href="media/a6f008ce.screenshot-wide.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/06/screenshot-wide.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7412" src="media/af25c641.screenshot-wide-580x417.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/06/screenshot-wide-580x417.png" alt="screenshot-wide" width="580" height="417" /></a></h1><h1>Comment installer cette nouvelle version ?</h1><p>Le plus simple est de passer par le gestionnaire de paquet de Python (PiPy).</p><p>Pour une installation complète avec toutes les dépendances:</p><pre class="crayon-plain-tag">sudo pip install glances pysnmp bottle batinfo https://bitbucket.org/gleb_zhulik/py3sensors/get/tip.tar.gz</pre><p>Note: selon votre configuration, il est peut être  nécessaire d'installer certains pré-requis avant de faire cette installation. Par exemple sur un système Debian/Ubuntu:</p><pre class="crayon-plain-tag">sudo apt-get install -y python-dev python-pip lm-sensors</pre><p>Pour la mise à jour d'une version existante et l'installation des dépendances:</p><pre class="crayon-plain-tag">sudo pip install pysnmp bottle batinfo https://bitbucket.org/gleb_zhulik/py3sensors/get/tip.tar.gz
sudo pip install --upgrade glances</pre><p></p><h1>Les nouveautés...</h1><h3>Au niveau du code</h3><p>La plus grande nouveauté n'est pas visible car c'est<a
href="https://github.com/nicolargo/glances/tree/master/glances"> un refactoring complet du cod</a>e avec notamment l'utilisation d'un système de plugins. Toutes les statistiques collectées par Glances sont des <a
href="https://github.com/nicolargo/glances/tree/master/glances/plugins">plugins</a>. Le principal avantage de cette architecture est une rapidité de développement accrue pour les nouvelles fonctionnalités par rapport à la version précédente. Chaque plugin hérite de méthodes communes permettant de factoriser le code.</p><p>Cette version a été développée en suivant <a
href="http://danielkummer.github.io/git-flow-cheatsheet/">le workfow Git Flow</a> et les prochains correctifs et nouvelles fonctions devront respecter ce processus (<a
href="https://github.com/nicolargo/glances/wiki/How-to-contribute-to-Glances-%3F">j'ai ajouté une page sur le sujet dans le Wiki</a>).</p><h3>Interface Curse</h3><p>L'interface standalone a été optimisée pour afficher le maximum d'informations de la manière la plus lisible et dans un minimum d'espace. L'objectif principal et le but de Glance étant que <strong>le problème de performance d'une machine saute aux yeux</strong>.</p><h3>Interface Web</h3><p>A la suite de pas mal de demandes, Glances v2.0 intègre maintenant un mode serveur Web qui permet d'accéder simplement au statistique depuis n'importe quel navigateur Internet à travers une page HTML5/CSS3 (plus ou moins "Responsive Web Design" mais je suis pas un pro sur le sujet).</p><p>Pour lancer le mode serveur Web:</p><pre class="crayon-plain-tag"># glances -w
Bottle v0.12.7 server starting up (using WSGIRefServer())...
Listening on http://0.0.0.0:61208/
Hit Ctrl-C to quit.</pre><p>Par exemple sur ma tablette Nexus 5, cela donne cela:</p><p><a
href="media/a21284eb.screenshot-web2.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/06/screenshot-web2.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7413" src="media/64f8e42d.screenshot-web2-580x362.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/06/screenshot-web2-580x362.png" alt="screenshot-web2" width="580" height="362" /></a></p><h3>Le mode fallback SNMP</h3><p>Dans le cas ou il n'est pas possible de lancer un serveur Glances sur une machine (problème de droit ou "appliance"), il est maintenant possible d'accéder à certaines statistiques via le protocole SNMP (limitation actuelle au mode SNMP v2/2c).</p><p>Quand vous lancez Glances en mode client, il va d'abord essayer de détecter un serveur Glances puis essayer le protocole SNMP:</p><pre class="crayon-plain-tag"># glances -c localhost
Info: Connection to Glances server failed. Trying fallback to SNMP...</pre><p>C'est pour l'instant une fonction expérimentale qui ne fonctionne pas avec tous les agents SNMP. <a
href="https://github.com/nicolargo/glances/issues/293">Des évolutions sont prévues</a> dans les prochaines version et je suis à la recherche de contributeurs sur ce point (notamment pour un accès aux statistiques des machines Cisco et autres équipementiers réseau).</p><p><a
href="media/182d7758.Slection_213.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/06/Sélection_213.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7414" src="media/e0c3a454.Slection_213-580x288.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/06/Sélection_213-580x288.png" alt="Sélection_213" width="580" height="288" /></a></p><h3>Amélioration du fichier de configuration</h3><p>Si vous utilisiez un fichier de configuration (notamment pour fixer vos propres limites au niveau des statistiques), il va falloir l'adapter pour cette nouvelle version. Un fichier par défaut se trouve sous GNU/Linux dans  <strong>/etc/glances/glances.conf</strong>. Je vous conseille de vous inspirer de ce fichier: <a
href="https://github.com/nicolargo/glances/blob/master/conf/glances-monitor.conf">https://github.com/nicolargo/glances/blob/master/conf/glances-monitor.conf</a>.</p><h1>Conclusion</h1><p>En attendant que vous lisiez <a
href="http://linuxfr.org/news/sortie-de-glances-version-2-0">le billet sur LinuxFr</a>, j'espère que cette mise en bouche vous a convaincu d'essayer cette nouvelle version.</p><p>J'attends vos avis avec impatiente !</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/06/glances-version-2-0.html">Glances version 2.0 est là</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=GSH_8oUJZv8:Y-UYvdvGOe8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=GSH_8oUJZv8:Y-UYvdvGOe8:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/GSH_8oUJZv8" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7423
title: Utiliser son enceinte MiniJamBox sous Ubuntu
uri: Utiliser-son-enceinte-MiniJamBox-sous-Ubuntu
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/Ewt1rpKImrw/utiliser-enceinte-minijambox-ubuntu.html

content:
<p>Mes vieilles enceintes portables ayant rendu l'âme juste avant le départ des vacances estivales, j'ai décidé d'acheter une enceinte portable Bluetooth. Après quelques essais en magasin, mon choix s'est porté vers <a
href="https://jawbone.com/speakers/minijambox">une MiniJamBox du constructeur JawBone</a>. Pour environ 100€, elle offre des performances acceptables dans un volume de poche et avec une bonne autonomie.</p><p><a
href="media/4fa379c5.Slection_220.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_220.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7424" src="media/4fc40c08.Slection_220-580x385.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_220-580x385.png" alt="Sélection_220" width="580" height="385" /></a></p><p>L'association c'est effectué sans problème avec mes "eDevices": iPhones 5S &amp; Mac Book Pro de ma femme et mes iPhone 4 &amp; Google Nexus 5.</p><p>Cependant, impossible de la faire détecter par mon PC Ubuntu 14.04...</p><h1>Le problème</h1><p>Lors de la connexion Bluetooth, le message d'erreur suivant est affiché:</p><p><strong>Failed to connect to the device...</strong></p><p>En fouillant dans les logs, j'ai trouvé les messages suivants:</p><pre class="crayon-plain-tag">(bluetooth-wizard:18445): Bluetooth-WARNING **: CreateDevice failed: GDBus.Error:org.bluez.Error.ConnectionAttemptFailed: Page Timeout
** (bluetooth-wizard:18445): WARNING **: Setting up 'MINIJAMBOX by Jawbone' failed: GDBus.Error:org.bluez.Error.ConnectionAttemptFailed: Page Timeout</pre><p></p><h1>La solution</h1><p>C'est sur le forum AskUbuntu (et grâce à Xavier) que j'ai trouvé la solution à mon problème.</p><p>Pour résumer, il faut commencer par éditer le fichier /etc/bluetooth/audio.conf pour y ajouter la ligne suivant dans la section [general]:</p><pre class="crayon-plain-tag">Disable = Media</pre><p>Installer le package bluez-tools:</p><pre class="crayon-plain-tag">sudo apt-get install bluez-tools
sudo service bluetooth restart</pre><p>Effectuer l'association avec la MiniJamBox en suivant la documentation du constructeur et via le logiciel bluetooth-wizard.</p><p><a
href="media/82771026.Paramtres_218.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Paramètres_218.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7426" src="media/1bf6967f.Paramtres_218-580x305.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Paramètres_218-580x305.png" alt="Paramètres_218" width="580" height="305" /></a></p><p>Enfin commenter la ligne préalablement ajouté dans le fichier audio.conf:</p><pre class="crayon-plain-tag">#Disable = Media</pre><p>Puis relancer le service bluetooth:</p><pre class="crayon-plain-tag">sudo service bluetooth restart</pre><p>Et voilà, il ne reste plus qu'à sélectionner la MiniJamBox dans les préférences sons d'Ubuntu et de sélectionner le mode haute fidélité (A2DP):</p><p><a
href="media/5d127d8f.Slection_219.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_219.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7425" src="media/041783ba.Slection_219-580x390.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_219-580x390.png" alt="Sélection_219" width="580" height="390" /></a></p><p>Et voilà le travail !</p><p>&nbsp;</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/08/utiliser-enceinte-minijambox-ubuntu.html">Utiliser son enceinte MiniJamBox sous Ubuntu</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Ewt1rpKImrw:EaBguS7qOdk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Ewt1rpKImrw:EaBguS7qOdk:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/Ewt1rpKImrw" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7429
title: Voici Glances 2.1 qui pointe son nez
uri: Voici-Glances-2-1-qui-pointe-son-nez
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/SrB_9oH1WwM/voici-glances-2-1-pointe-nez.html
content:
<p>La nouvelle version de Glances vient d'être publiée. En voici les nouveautés.</p><h1>Comment installer Glances 2.1 ?</h1><p>La première solution et la plus simple est d'utiliser le script d'autoinstall (uniquement fonctionnel pour certaines distribution GNU/Linux):</p><pre class="crayon-plain-tag">curl -L http://bit.ly/glances | /bin/bash</pre><p>ou alors en consultant <a
href="https://github.com/nicolargo/glances">la documentation</a>.</p><h1>Amélioration de l'affichage des processus</h1><p>Cette version de Glances apporte les fonctionnalités suivantes pour l'affichage des processus dans Glances:</p><ul><li>possibilité d<strong>'appliquer un filtre (sous la forme d'une expression régulière) sur le nom et la ligne de commande des processus à afficher</strong>. Pour cela, il suffit d'appuyer sur la touche ENTREE puis de saisir le filtre. Par exemple, le filtre <span
style="color: #3366ff;"><strong>firefox</strong></span> va afficher le ou les processus du navigateur Firefox tandis que le filtre <span
style="color: #3366ff;"><strong>.*firefox.*</strong></span> va afficher tous les programmes ou le mot clé Firefox apparaît dans la ligne de commande (à noter que cette nouvelle fonction est, pour l'instant, uniquement disponible dans le mode standalone de Glances).<a
href="media/2d1e0a01.Slection_229.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_229.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7432" src="media/05429acf.Slection_229-580x338.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_229-580x338.png" alt="Sélection_229" width="580" height="338" /></a></li><li><strong>informations complémentaire pour le 'top process'</strong> (le processus que Glances juge le plus consommateur de ressources): CPU affinity, extended memory information (shared, text, lib, datat, dirty, swap), openned threads/files and TCP/UDP network sessions, IO nice level (à noter que cette nouvelle fonction est, pour l'instant, uniquement disponible dans le mode standalone de Glances).<a
href="media/3bb3aa8e.Slection_230.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_230.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7433" src="media/70e49d2a.Slection_230-580x338.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_230-580x338.png" alt="Sélection_230" width="580" height="338" /></a></li><li>optimisation du nombre de processus surveillés par Glances: dans les anciennes versions, Glances recupérait l'ensemble des statisiques pour tous les processus (même ceux qui n'étaient pas affichés). Dans cette version le nombre de processus est configurable via <a
href="https://github.com/nicolargo/glances/blob/develop/conf/glances.conf#L102">la clé de configuration max_processes du fichier de configuration</a> (par défaut top 10) .<strong>Cette version apporte donc un gain de footprint CPU d'environ 15% à 30%:</strong><a
href="media/3e0b8f06.Slection_235.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_235.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7436" src="media/ff2b92da.Slection_235-580x352.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_235-580x352.png" alt="Sélection_235" width="580" height="352" /></a>Ainsi, pour augmenter à 20 le nombre de processus affiché, il suffit d'éditer le fichier de configuration de la manière suivante:<br
/><pre class="crayon-plain-tag">[processlist]
# Maximum number of processes to show in the UI
# Note: Only limit number of showed processes (not the one returned by the API)
# Default is 20 processes (Top 20)
max_processes=20</pre><br
/> Note: si aucune configuration n'est faite alors Glances affichera tous les processus.</li><li
style="text-align: left;">il est maintenant possible de basculer entre l'affichage actuel du nom du processus (qui affiche le nom court ou la ligne de commande complète selon la place disponible) et <strong>un mode ou uniquement le nom court est affiché</strong>. Pour cela, on peut utiliser le tag --process-short-name au niveau de la ligne de commande ou bien la touche '/' pendant le fonctionnement de Glances.Mode shortname:<br
/> <a
href="media/335e35bf.Slection_233.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_233.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7434" src="media/bcfb2e13.Slection_233-580x253.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_233-580x253.png" alt="Sélection_233" width="580" height="253" /></a> Mode standard:<img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7435" src="media/ae7fe9c3.Slection_232-580x253.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/Sélection_232-580x253.png" alt="Sélection_232" width="580" height="253" /></li></ul><p>&nbsp;</p><h1>Alias pour le nom des disques, interfaces réseau et sensors</h1><p>Les noms des disques (sda par exemple sous Linux), des interfaces réseau (eth0, wlan0) et des sensors (temp1) n'est pas forcement très parlant pour un humain normalement constitué (!geek). <strong>Glances permet donc de configurer des alias qui seront affichés en lieu et place des noms "barbares".</strong> La définition se fait dans le fichier de configuration:</p><pre class="crayon-plain-tag">[network]
# WLAN0 alias name
wlan0_alias=Wireless
[diskio]
# Alias for sda1
sda1_alias=IntDisk
[sensors]
# Sensors alias
temp1_alias=Motherboard 0
temp2_alias=Motherboard 1
core 0_alias=CPU Core 0
core 1_alias=CPU Core 1</pre><p>Rien de bien compliqué. On doit utiliser la syntaxe: <em>&lt;nom barbare&gt;_alias = &lt;nom humain&gt;</em>.</p><p><a
href="media/58064686.Slection_234.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/09/Sélection_234.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7441" src="media/9b061aa9.Slection_234-580x352.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/09/Sélection_234-580x352.png" alt="Sélection_234" width="580" height="352" /></a></p><p>Cette fonction est surtout utile pour les utilisateurs de Windows ou les noms sont vraiment... comment dire... Windowsiens...</p><h1>API RESTFull pour le serveur Web</h1><p>Le serveur HTTP intégrant l'interface Web (option -w) disponible dans Glances depuis la version 2.0 ne disposait pas d'une <strong>API RESFull</strong>. C'est maintenant le cas. Il est donc possible à partir d'une application tierce de faire des requêtes du type suivant:</p><p><strong>http://&lt;serverglances&gt;:61209<em>/api/v2/mem</em></strong></p><p>qui donnera une réponse HTTP avec un code 200 et:</p><pre class="crayon-plain-tag">{&quot;available&quot;: 5071183872, &quot;used&quot;: 3255848960, &quot;cached&quot;: 1827352576, &quot;percent&quot;: 39.1, &quot;free&quot;: 5071183872, &quot;inactive&quot;: 1388982272, &quot;active&quot;: 3679604736, &quot;total&quot;: 8327032832, &quot;buffers&quot;: 477982720}</pre><p>La documentation complète de l'API est disponible <a
href="https://github.com/nicolargo/glances/wiki/The-Glances-RESTFULL-JSON-API">sur la page suivante dans le Wiki</a>.</p><h1>Fonction expérimentale de génération de graphes</h1><p>J'ai ajouté dans cette version une fonction expérimentale (uniquement disponible dans le mode standalone de Glances) qui sera améliorée dans les prochaines versions en cas de demande de la part des utilisateurs. L'objectif de cette fonction est de générer des graphiques des statistiques (CPU, LOAD et MEM) quand l'utilisateur clique sur la touche 'g'.  Concrètement, Glances va mémoriser les statistiques et les "grapher" en utilisant la librairy Matplotlib (qui doit être présente sur votre système).</p><p>Les graphes sont générés dans le répertoire /tmp:</p><pre class="crayon-plain-tag">ll /tmp/glances*.png
-rw-rw-r-- 1 nicolargo nicolargo 22911 août  31 16:09 /tmp/glances_cpu.png
-rw-rw-r-- 1 nicolargo nicolargo 19962 août  31 16:09 /tmp/glances_load.png
-rw-rw-r-- 1 nicolargo nicolargo 12059 août  31 16:09 /tmp/glances_mem.png</pre><p><a
href="media/0ce3241f.glances_mem.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/glances_mem.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7437" src="media/0ce3241f.glances_mem.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/glances_mem.png" alt="glances_mem" width="576" height="432" /></a> <a
href="media/5cf0ed0f.glances_load.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/glances_load.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-7438" src="media/5cf0ed0f.glances_load.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/glances_load.png" alt="glances_load" width="576" height="432" /></a> <a
href="media/7fc917bf.glances_cpu.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/glances_cpu.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7439" src="media/7fc917bf.glances_cpu.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/08/glances_cpu.png" alt="glances_cpu" width="576" height="432" /></a>En appuyant sur la touche <strong>'r'</strong>, l'utilisateur peut ré-initialiser l'historique et donc repartir avec un nouveau graphe (attention pour l'instant les graphes sont écrasés à chaque appui sur le bouton <strong>'g'</strong>).</p><h1>Des logs et un mode debug</h1><p>Il manquait à Glances un vrai mode débug avec un fichier de log permettant de facilement identifier les problèmes d'utilisation et d'exécution de ce logiciel. C'est maintenant chose faite avec cette version 2.1 ou un gros travail a été fait sur <strong>la généralisation des message de logs standards et debug</strong> (en utilisant l'option -d au niveau de la ligne de commande).</p><p>Le fichier de log de Glances est disponible dans le fichier /tmp/glances.log, en voici un extrait en mode normal (sans le -d):</p><pre class="crayon-plain-tag">2014-08-31 15:52:00,312 -- INFO -- Start Glances 2.1_RC7
2014-08-31 15:52:00,312 -- INFO -- CPython 2.7.6 and PSutil 2.1.1 detected
2014-08-31 15:52:00,316 -- INFO -- Read configuration file ./conf/glances-test.conf
2014-08-31 15:52:00,316 -- INFO -- Start standalone mode
2014-08-31 15:52:10,465 -- INFO -- Set process filter to firefox
2014-08-31 15:52:15,180 -- INFO -- Stop Glances</pre><p>et en mode debug (-d):</p><pre class="crayon-plain-tag">2014-08-31 15:52:47,185 -- INFO -- Start Glances 2.1_RC7
2014-08-31 15:52:47,185 -- INFO -- CPython 2.7.6 and PSutil 2.1.1 detected
2014-08-31 15:52:47,190 -- INFO -- Read configuration file ./conf/glances-test.conf
2014-08-31 15:52:47,190 -- INFO -- Start standalone mode
2014-08-31 15:52:47,218 -- DEBUG -- Available plugins list: ['load', 'core', 'uptime', 'fs', 'monitor', 'percpu', 'mem', 'cpu', 'help', 'system', 'alert', 'psutilversion', 'memswap', 'diskio', 'hddtemp', 'processcount', 'batpercent', 'now', 'processlist', 'sensors', 'network']
2014-08-31 15:52:47,219 -- DEBUG -- Monitor plugin configuration detected in the configuration file
2014-08-31 15:52:47,220 -- DEBUG -- Limit maximum displayed processes to 20
2014-08-31 15:52:47,220 -- DEBUG -- Extended stats for top process is enabled (default behavor)
2014-08-31 15:52:53,140 -- DEBUG -- User enters the following process filter patern: firefox
2014-08-31 15:52:53,140 -- INFO -- Set process filter to firefox
2014-08-31 15:52:53,140 -- DEBUG -- Process filter regular expression compilation OK: firefox
2014-08-31 15:52:57,344 -- INFO -- Stop Glances</pre><p>Cette nouvelle fonction permettra, je l'espère, <a
href="https://github.com/nicolargo/glances/wiki/Install-and-test-Glances-DEVELOP-version#how-to-report-a-bug-">de facilité les rapports de bugs remontés dans GitHub</a>.</p><h1>Et pour finir...</h1><p>En plus des corrections de bugs et amélioration diverses et variés, Glances 2.1 permet un affichage optimisé pour les tordus d'entre vous utilisant un fond blanc pour leur terminal (option --theme-white) ainsi que le support des routeurs Cisco et des serveurs VMWare ESXi pour le fallback SNMP en mode client/serveur.</p><p>Comme d'habitude, les bugs/demandes de fonctions sont à remonter dans GitHub <a
href="https://github.com/nicolargo/glances/wiki/Install-and-test-Glances-DEVELOP-version#how-to-report-a-bug-">en suivant cette procédure</a>.</p><p>Merci à vous !</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/09/voici-glances-2-1-pointe-nez.html">Voici Glances 2.1 qui pointe son nez</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=SrB_9oH1WwM:NRhSfbB-xU8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=SrB_9oH1WwM:NRhSfbB-xU8:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/SrB_9oH1WwM" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7447
title: Support de présentation de Docker
uri: Support-de-présentation-de-Docker
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/IY5Fbhx20lk/support-presentation-docker.html
content:
<p>A l'occasion de la commission open-source de la Telecom Valley, j'ai eu le plaisir de faire un <em>talk</em> sur le sujet à la mode du moment: Docker ou la virtualisation par conteneurs (j'en avais déjà parlé sur ce blog <a
href="http://blog.nicolargo.com/2014/06/virtualisation-legere-docker.html">dans un précédent billet</a>).</p><div
style="text-align: center"> <iframe
width="580" height="440" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/39005016" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p><div
style="margin-bottom: 5px; text-align: center;"><strong> <a
title="Introduction à docker.io" href="//fr.slideshare.net/nicolashennion/introduction-dockerio-39005016" target="_blank">Introduction à docker.io</a> </strong> from <strong><a
href="//www.slideshare.net/nicolashennion" target="_blank">Nicolas Hennion</a></strong></div></div><p>Au vu des questions et débats qui ont suivi la présentation, je ne doute pas de l'explosion des cas d'usage sur le sujet dans les prochains mois !</p><p>Et vous chers lecteurs, ou en êtes vous dans vos projets autours de l'écosystème Docker ? En phase de test ? De production ?</p><p>Partagez avec nous vos XP sur le sujet !</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/09/support-presentation-docker.html">Support de présentation de Docker</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=IY5Fbhx20lk:C7fO3WiugkI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=IY5Fbhx20lk:C7fO3WiugkI:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/IY5Fbhx20lk" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7458
title: Varnish, NGinx et PHP-FPM sous Docker
uri: Varnish-NGinx-et-PHP-FPM-sous-Docker
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/4xf16mJX0Wc/infra-lemp-docker.html
content:
<p>Suite au précédent article d'introduction sur Docker (<a
href="http://blog.nicolargo.com/2014/06/virtualisation-legere-docker.html">que je vous conseille de lire avant de dévorer cet article</a>), je me suis penché sur le problème suivant: comment créer et maintenir une "stack web" de compétition (Varnish + Nginx + PHP-FPM) basée sur cette technologie de virtualisation par conteneurs.</p><h1>Quel est l'objectif ?</h1><p>Nous allons donc, dans ce billet, détailler l'installation et la mise à jour d'une infrastructure, basée sur Docker, qui pourra servir à l'hébergement d'un site personnel, d'un blog ou bien du site d'une PME:</p><ul><li><em>la base de donnée sera portée par l'implémentation libre de MySQL, c'est à dire <a
href="https://mariadb.org/">MariaDB</a> (nous aborderons cette partie dans un deuxième billet)</em></li><li>pour le moteur PHP, j'utilise <a
href="http://php-fpm.org/">PHP-FPM</a></li><li>pour le serveur Web, je ne jure que par <a
href="http://nginx.org/">Nginx</a> (léger, bien documenté)</li><li>afin pour tenir la charge (notamment si vous utilisé un moteur de blog de type WordPress, j'utilise le système de cache <a
href="https://www.varnish-cache.org/">Varnish</a>)<a
href="media/2f71ba4f.LEMP-Docker2.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/10/LEMP-Docker2.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7470" src="media/ddb1372e.LEMP-Docker2-580x190.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/10/LEMP-Docker2-580x190.png" alt="LEMP (Docker)" width="580" height="190" /></a></li></ul><p>Dans le reste de de l'article, on appellera machine hôte, la machine qui hébergera Docker (lire ce billet pour <a
href="http://blog.nicolargo.com/2014/06/virtualisation-legere-docker.html">la procédure d'installation de Docker</a>).</p><p>Cette dernière peut être un PC portable ou bien un serveur dédié. C'est un des avantages de la virtualisation par conteneurs. Une fois validé sur une machine , on est sûr que le conteneur fonctionnera de manière identique sur une autre installation de Docker. Ainsi pour la rédaction de ce billet, j'ai utiisé mon PC portable sous Ubuntu 14.04 et un (superbe) VPS mis à disposition par <a
href="https://www.web4all.fr/">les amis de Web4All</a> sous Debian 7 (merci Aurélien !).</p><p>Pour respecter <a
href="https://crosbymichael.com/dockerfile-best-practices-take-2.html">la philosophie de la virtualisation par conteneur</a>, chaque brique sera mise dans un conteneur dédié. On aura ainsi 4 conteneurs sur une machine hôte.</p><p>Chaque conteneur communiquera avec les autres selon le schéma ci-dessus.</p><p>Les données (data base DB, page statique du site et cache) seront stockées sur la machine hôte.</p><h1>Création des conteneurs</h1><p>Il y a deux méthodes pour choisie les images qui seront à la base de nos conteneurs.</p><p>La première, la plus noble mais la plus longue à mettre en œuvre, est d'écrire soit même les DockersFiles permettant l'installation et l'exécution des logiciels. On garde ainsi le contrôle de notre infrastructure et la possibilité de configurer finement les applications (notamment au niveau des options de compilation). Dans ce cas, et pour respecter les "<a
href="https://crosbymichael.com/dockerfile-best-practices-take-2.html">best practices</a>" de Docker, il faudra, pour chaque conteneur, repartir d'une image de base de type Debian sur laquelle on viendra installer les briques logicielles de notre LEMP.</p><p>La seconde, que j'ai choisi dans ce billet (pas parce-que je suis un gros fainéant mais par manque de temps), est de partir des images disponibles sur la registry officielle de Docker. On gagne ainsi en rapidité de mise en place.  Les composants de notre web stack étant très populaires, on trouve des images supportées et maintenues par la communauté Docker (notamment NGinx). Cependant, on constatera une trop grande diversité dans les systèmes de bases (Ubuntu, CentOS...).</p><p>Avant de commencer, nous allons créer un répertoire sur la machine hôte qui hébergera les fichiers utiles à notre infrastructure:</p><pre class="crayon-plain-tag">mkdir -p $HOME/data/webstack/conf $HOME/data/webstack/www</pre><p></p><h3>Le conteneur NGinx</h3><p>Pierre angulaire de notre "<a
href="http://stackoverflow.com/questions/382665/what-is-meant-by-the-term-web-stack">web stack</a>", le serveur NGinx est très présent sur la "registry" officielle de Docker (plus de 900 images disponibles au moment de l'écriture de ce billet). J'ai choisi d'utiliser <a
href="https://registry.hub.docker.com/_/nginx/">l'image officielle proposé par Docker</a> (elle est conçue <a
href="https://github.com/nginxinc/docker-nginx/blob/master/Dockerfile">à partir de cete DockerFile</a>).</p><p>On commence par télécharger les images NGinx officielle:</p><pre class="crayon-plain-tag">docker pull nginx</pre><p>Puis on vérifie que les images sont visibles sur notre machine hôte (NGinx version 1.7.5 au moment de l'écriture de cet article):</p><pre class="crayon-plain-tag">$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
nginx 1.7.5 d2d79aebd368 7 days ago 100.2 MB
nginx latest d2d79aebd368 7 days ago 100.2 MB
nginx 1 d2d79aebd368 7 days ago 100.2 MB
nginx 1.7 d2d79aebd368 7 days ago 100.2 MB</pre><p>On lance le conteneur:</p><pre class="crayon-plain-tag">$ docker run --name webstack_nginx_1 -v $HOME/data/webstack/www:/usr/share/nginx/html:ro -p 8080:80 -d nginx
f7baa81cebdc8799947327e6470a74ae73fe73bb0eb644ecfb2951847c40154b</pre><p>Notre conteneur a le doux nom de <strong>webstack_nginx_1</strong>, il redirige le port <strong>TCP/8080</strong> de notre hôte vers le port TCP/80 du conteneur (port par défaut de NGinx) et il assigne, en lecture seule, le volume /usr/share/nginx/html au répertoire hôte <strong>$HOME/data/www</strong> (à adapter à votre configuration). Pour résumer, toutes les pages HTML disponible dans le répertoire /home/nicolargo/data/www, seront accessible via le port HTTP/8080 de votre machine locale.</p><p>On ajoute une page HTML statique de test et une autre pour le test PHP que l'on utilisera dans le chapitre suivant:</p><pre class="crayon-plain-tag">echo "My first page" &gt; $HOME/data/webstack/www/index.html
echo "&lt;?php phpinfo(); ?&gt;" &gt; $HOME/data/webstack/www/phpinfo.php</pre><p>Puis on valide que le serveur NGinx est bien opérationnel:</p><pre class="crayon-plain-tag">$ curl http://localhost:8080
My first page</pre><p>Ou directement depuis votre navigateur Web préféré:</p><p><a
href="media/8bdbb790.Slection_245.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/10/Sélection_245.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7487" src="media/f4a96a8b.Slection_245-580x117.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/10/Sélection_245-580x117.png" alt="Sélection_245" width="580" height="117" /></a>L'image NGinx utilisée redirige les fichiers de log (access.log et error.log vert la sortie standard). Il est donc possible de visualiser les accès à son serveur Web en "attachant" le terminal de notre hôte à la sortie standard du conteneur:</p><pre class="crayon-plain-tag">$ docker attach --sig-proxy=false webstack_nginx_1
2014/10/08 13:47:59 [error] 9#0: *1 open() "/usr/share/nginx/html/inconnu.html" failed (2: No such file or directory), client: 172.17.0.103, server: localhost, request: "GET /inconnu.html HTTP/1.1", host: "localhost"
172.17.0.103 - - [08/Oct/2014:13:47:59 +0000] "GET /inconnu.html HTTP/1.1" 404 168 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0" "172.17.42.1"</pre><p>Note: bien penser à mettre l'option <em>--sig-proxy=true</em> sous peine de stopper le conteneur lors de l'appuie sur ^C. Je vous conseille  de créer un alias dans votre shell.</p><h3>Le conteneur PHP-FPM</h3><p>Pour le moteur PHP, il n'existe pas d'image officielle. Mon choix s'est donc porté vers l'utilisation <a
href="https://registry.hub.docker.com/u/jprjr/php-fpm/">du repository de Jprjr</a> basée sur une installation de PHP-FPM sous ArchLinux avec pas mal d'extensions par défaut (<a
href="https://registry.hub.docker.com/u/jprjr/php-fpm/dockerfile/">voir la liste dans le DockerFile</a>).</p><p>On télécharge la dernière version des images avec:</p><pre class="crayon-plain-tag">docker pull jprjr/php-fpm</pre><p>On obtient bien:</p><pre class="crayon-plain-tag">$ docker images | grep jprjr
jprjr/php-fpm          latest                 d40698b35f83        6 weeks ago         347.8 MB</pre><p>On lance le conteneur:</p><pre class="crayon-plain-tag">docker run --name webstack_php_01 -p 9000:9000 -d jprjr/php-fpm</pre><p>Le conteneur est configuré par défaut pour écouter sur le port TCP/9000.</p><p>Très bien, on doit donc avoir le serveur NGinx et le moteur PHP-FPM qui sont lancés dans deux conteneurs différents. On va vérifier cela avec la commande:</p><pre class="crayon-plain-tag">$ docker ps
CONTAINER ID        IMAGE                  COMMAND                CREATED             STATUS              PORTS                           NAMES
e9dd04e7ceec        jprjr/php-fpm:latest   "php-fpm -F"           13 seconds ago      Up 12 seconds       0.0.0.0:9000-&gt;9000/tcp          webstack_php_01
f7baa81cebdc        nginx:1                "nginx -g 'daemon of   46 minutes ago      Up 46 minutes       443/tcp, 0.0.0.0:8080-&gt;80/tcp   webstack_nginx_01</pre><p></p><h3>Faire communiquer les deux conteneurs (NGinx &amp; PHP-FPM)</h3><p>Tout cela est très beau mais les deux conteneurs ne se connaissent pas. Il faut, pour cela, configurer le serveur NGinx pour utiliser le moteur PHP et donc que le conteneur NGinx connaisse l'adresse IP du conteneur PHP-FPM.</p><p>Heureusement, Docker propose l'option <strong>--link</strong> permettant de répondre à ce besoin. Cette option, à utiliser au moment du lancement du conteneur, va créer dynamiquement des entrées dans le fichier host et dans des variables d'environnement du conteneur, permettant ainsi à ce dernier de connaître comment joindre ses congénères.</p><p>Par exemple:</p><pre class="crayon-plain-tag">$ docker run -it -v --link webstack_php_01:webstack_php nginx /bin/bash
root@2ce3cdb8a767:/# cat /etc/hosts | grep webstack
172.17.0.5	webstack-php
root@d9ff8a80f12a:/# env | grep WEBSTACK
WEBSTACK_PHP_PORT=tcp://172.17.0.5:9000
WEBSTACK_PHP_PORT_9000_TCP=tcp://172.17.0.5:9000
WEBSTACK_PHP_PORT_9000_TCP_ADDR=172.17.0.5
WEBSTACK_PHP_PORT_9000_TCP_PORT=9000
WEBSTACK_PHP_NAME=/webstack_nginx/webstack_php
WEBSTACK_PHP_PORT_9000_TCP_PROTO=tcp
root@2ce3cdb8a767:/# exit
exit
$ docker rm `docker ps -lq`</pre><p>Maintenant que l'on sait comment faire communiquer les deux conteneurs, il suffit de configurer NGinx pour rediriger les fichier .PHP vers le moteur PHP-FPM du second conteneur.</p><p>Pour cela, plusieurs solutions sont là encore possibles. La plus simple est de surcharger la configuration NGinx par défaut(nginx.conf). Sur notre hôte, nous allons créer le fichier de configuration en question:</p><pre class="crayon-plain-tag">$ docker webstack_nginx_01/etc/nginx/nginx.conf $HOME/data/webstack/conf/nginx.conf
$ vi $HOME/data/webstack/conf/nginx.conf
daemon off;
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        #error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #    root   /usr/share/nginx/html;
        #}
        # Pass PHP scripts to PHP-FPM
        location ~* \.php$ {
            fastcgi_index   index.php;
            fastcgi_pass    webstack_php:9000;
            #fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
            include         fastcgi_params;
            fastcgi_param   SCRIPT_FILENAME    /srv/http$fastcgi_script_name;
            fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
        }
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        location ~ /\.ht {
            deny  all;
        }
    }
}</pre><p>Note:</p><ul><li>"fastcgi_pass webstack_php:9000;" qui utilise donc le hostname présent dans le fichier host</li><li>"fastcgi_param   SCRIPT_FILENAME    /srv/http$fastcgi_script_name;" qui va permettre à PHP-FPM d'aller chercher les pages PHP dans le même volume que le serveur Nginx mais assigné au répertoire /srv/http du conteneur (c'est la configuration par <a
href="https://registry.hub.docker.com/u/jprjr/php-fpm/dockerfile/">défaut de notre conteneur PHP-FPM</a>)</li></ul><p>Revenons à notre cas. Nous souhaitons que le conteneur NGinx (nommé webstack_nginx_01) connaisse le conteneur PHP (webstack_php_01).</p><p>On commence donc par supprimer les deux conteneurs existant:</p><pre class="crayon-plain-tag">docker stop webstack_php_01 &amp;&amp; docker rm webstack_php_01
docker stop webstack_nginx_01 &amp;&amp; docker rm webstack_nginx_01</pre><p>puis de les recréer avec l'option --link (pour le conteneur NGinx qui va initier la connexion TCP vers le moteur PHP-FPM), la nouvelle configuration de NGinx et les volumes pointant sur notre page HTML et PHP:</p><pre class="crayon-plain-tag">docker run --name webstack_php_01 -v $HOME/data/webstack/www:/srv/http:ro -p 9000:9000 -d jprjr/php-fpm
docker run --name webstack_nginx_01 -v $HOME/data/webstack/www:/usr/share/nginx/html:ro -v $HOME/data/webstack/conf/nginx.conf:/nginx.conf:ro -p 8080:80 --link webstack_php_01:webstack_php -d nginx nginx -c /nginx.conf</pre><p>On teste:</p><pre class="crayon-plain-tag">$ curl http://localhost:8080/index.html
My first page
$ curl http://localhost:8080/phpinfo.php
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;head&gt;
&lt;style type="text/css"&gt;
...</pre><p><a
href="media/9ee7215a.Slection_246.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/10/Sélection_246.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7488" src="media/7806a9a5.Slection_246-580x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/10/Sélection_246-580x150.png" alt="Sélection_246" width="580" height="150" /></a></p><p>Bingo !</p><p>A ce stade, nous avons donc deux conteneurs communiquant entre eux pour nous offrir un serveur Web compatible avec le langage PHP.</p><h3>Le conteneur Varnish en frontal</h3><p>Si vous suivez ce blog, vous savez tout le bien que je pense de l'utilisation du cache Varnish pour absorber la montée en charge des sites Web (sinon, vous pouvez effectuer une session de rattrapage <a
href="http://blog.nicolargo.com/tag/varnish">en lisant ces articles</a>). Nous allons donc créer un nouveau conteneur qui exposera le port TCP/80 et qui mettra en cache les pages construites par le serveur NGinx (qui est en écoute sur le port TCP/8080 si vous avez bien suivi...).</p><p>Nous allons utiliser <a
href="https://registry.hub.docker.com/u/jacksoncage/varnish/">l'image Varnish</a> mise à disposition et maintenue par le contributeur jacksoncage.</p><p>On commence par la récupérer:</p><pre class="crayon-plain-tag">docker pull jacksoncage/varnish</pre><p>Puis on vérifie qu'elle est bien disponible sur notre hôte:</p><pre class="crayon-plain-tag">$ docker images | grep jacksoncage
jacksoncage/varnish    latest                 46f0ea7021c1        8 months ago        472.2 MB</pre><p>Comme il est indiqué <a
href="https://registry.hub.docker.com/u/jacksoncage/varnish/">dans la documentation de l'image</a>, il faut écrire le fichier de configuration par défaut de Varnish (le fichier default.vcl):</p><pre class="crayon-plain-tag">$ vi $HOME/data/webstack/conf/default.vcl
backend default {
    .host = "webstack_nginx";
    .port = "80";
}</pre><p>On demande donc à Varnish d'aller directement communiquer avec le conteneur NGinx via l'adresse IP webstack-nginx (rappelez-vous que le hostname est créé dynamiquement par Docker au démarrage du conteneur avec l'option --link) et sur le port TCP 80 (attention, ce n'est pas le port TCP/8080 exposé par Docker sur notre hôte mais celui vraiment utilisé par NGinx dans le conteneur).</p><p>A noter que cette configuration est à compléter, notamment si vous voulez héberger un blog sous WordPress (<a
href="https://github.com/nicolargo/varnish-nginx-wordpress/tree/master/varnish">des exemples de fichiers de configuration sont disponibles ici</a>). Attentinon, ces exemples sont pour Varnish 4.0, donc à adapter si la version du conteneur jacksoncage/varnish n'est pas en ligne.</p><p>Puis lancer le conteneur avec les options suivantes:</p><pre class="crayon-plain-tag">docker run --name webstack_varnish_01 -v $HOME/data/webstack/conf/default.vcl:/etc/varnish/default.vcl:ro -p 80:80 --link webstack_nginx_01:webstack_nginx -d jacksoncage/varnish</pre><p>On redirige le port 80 du conteneur vers le port 80 de votre hôte (il ne doit bien sûr pas y avoir de serveur Web déjà en écoute sur ce port) puis on fait le lien entre le conteneur Varnish et le conteneur NGinx.</p><p>On vérifie que nos trois conteneurs sont lancés:</p><pre class="crayon-plain-tag">$ docker ps
CONTAINER ID        IMAGE                        COMMAND                CREATED             STATUS              PORTS                           NAMES
a1b853f1a38e        jacksoncage/varnish:latest   "/start"               4 seconds ago       Up 3 seconds        0.0.0.0:80-&gt;80/tcp              webstack_varnish_01
c2bd3138864a        nginx:1                      "nginx -c /nginx.con   54 minutes ago      Up 54 minutes       443/tcp, 0.0.0.0:8080-&gt;80/tcp   webstack_nginx_01,webstack_varnish_01/webstack-nginx
7cc072bb0df2        jprjr/php-fpm:latest         "php-fpm -F"           54 minutes ago      Up 54 minutes       0.0.0.0:9000-&gt;9000/tcp          ...</pre><p>Et on teste notre serveur de cache Varnish:</p><pre class="crayon-plain-tag">$ curl -I http://localhost/index.html
HTTP/1.1 200 OK
Server: nginx/1.7.5
Content-Type: text/html
Last-Modified: Sat, 04 Oct 2014 16:30:45 GMT
ETag: "543020b5-15"
Content-Length: 21
Accept-Ranges: bytes
Date: Sun, 05 Oct 2014 15:26:47 GMT
X-Varnish: 320901887 320901884
Age: 46
Via: 1.1 varnish
Connection: keep-aliv</pre><p>Le "Via: 1.1 varnish" confirme que notre infra commence à avoir de la gueule :).</p><p>En aparté, on peut d'ailleurs juger de la puissance de Varnish en lançant un simple bench tout d'abord directement sur le serveur NGinx (donc en baille-passant Varnish):</p><pre class="crayon-plain-tag">$ ab -t 30 -c 5 http://localhost:8080/
Complete requests:      7107
Requests per second:    232.24 [#/sec] (mean)
Time per request:       21.529 [ms] (mean)
Time per request:       4.306 [ms] (mean, across all concurrent requests)</pre><p>Puis en faisant le même test en passant par Varnish:</p><pre class="crayon-plain-tag">$ ab -t 30 -c 5 http://localhost/
Complete requests:      50000
Requests per second:    3694.60 [#/sec] (mean)
Time per request:       1.353 [ms] (mean)
Time per request:       0.271 [ms] (mean, across all concurrent requests)</pre><p>Les chiffres parlent d'eux même...</p><h1>Gestion des conteneurs</h1><p>Un simple pull sur les images préalablement téléchargé s'occupera de leurs mises à jour:</p><pre class="crayon-plain-tag">docker pull nginx
docker pull jprjr/php-fpm
docker pull jacksoncage/varnish</pre><p>Comme l'on reconstruit notre infrastructure à partir de ces images, il suffira ensuite d'arrêter et de relancer les conteneurs:</p><pre class="crayon-plain-tag">docker stop webstack_varnish_01 &amp;&amp; docker rm webstack_varnish_01
docker stop webstack_nginx_01 &amp;&amp; docker rm webstack_nginx_01
docker stop webstack_php_01 &amp;&amp; docker rm webstack_php_01
docker run --name webstack_php_01 -v $HOME/data/webstack/www:/srv/http:ro -p 9000:9000 -d jprjr/php-fpm
docker run --name webstack_nginx_01 -v $HOME/data/webstack/www:/usr/share/nginx/html:ro -v $HOME/data/webstack/conf/nginx.conf:/nginx.conf:ro -p 8080:80 --link webstack_php_01:webstack_php -d nginx nginx -c /nginx.conf
docker run --name webstack_varnish_01 -v $HOME/data/webstack/conf/default.vcl:/etc/varnish/default.vcl:ro -p 80:80 --link webstack_nginx_01:webstack_nginx -d jacksoncage/varnish</pre><p>Note: Il est également possible de créer des images maison (avec commit + tag) et de les relancer. Cette phase peut être utile dans le cadre d'un déploiement d'une infrastructure à une autre.</p><h1>Orchestration de l'infrastructure</h1><p>On vient de voir que le lancement d'une infrastructure basée sur Docker peut rapidement devenir compliqué. Les conteneurs doivent être lancés dans un certain ordre, avec des options spécifiques. Il est toujours possible de scripter les commandes du chapitre précédent ou plus simplement d'utiliser un outil d'orchestration.</p><p>Vagrant vous vient en tête ? Pourtant, ce n'est pas la solution que nous allons utiliser dans ce billet.</p><p>Nous allons nous tourner vers <a
href="http://www.fig.sh/">Fig</a>. C'est un logiciel en ligne de commande permettant de d'écrire son infrastructure Docker à partir d'un fichier de configuration texte au format YAML.</p><p>L'installation de Fig se fait via la commande:</p><pre class="crayon-plain-tag">sudo apt-get install fig</pre><p>Note: pour d'autre méthode d'installation, <a
href="http://www.fig.sh/install.html">consultez la documentation sur le site officiel</a>.</p><p>Le fichier de configuration Fig correspondant à notre infrastructure est le suivant (à éditer dans le fichier $HOME/data/webstack/fig.yml):</p><pre class="crayon-plain-tag"># Webstack PHP
php:
    image: jprjr/php-fpm
    volumes:
    - www:/srv/http
    ports:
    - 9000:9000
# Webstack NGINX
nginx:
    image: nginx
    links:
    - php:webstack_php
    volumes:
    - www:/usr/share/nginx/html
    - conf/nginx.conf:/nginx.conf
    ports:
    - 8080:80
    command: nginx -c /nginx.conf
# Webstack VARNISH
varnish:
    image: jacksoncage/varnish
    links:
    - nginx:webstack_nginx
    volumes:
    - conf/default.vcl:/etc/varnish/default.vcl
    ports:
    - 80:80</pre><p>On lance ensuite notre infrastructure en une seule et unique commande:</p><pre class="crayon-plain-tag">$ fig up -d
Creating webstack_php_1...
Creating webstack_nginx_1...
Creating webstack_varnish_1...</pre><p>Tout comme avec la ligne de commande Docker, on peut voir les conteneurs en cours d'exécution:</p><pre class="crayon-plain-tag">$ fig ps
       Name                Command          State           Ports
-------------------------------------------------------------------------
webstack_php_1                              Up      9000-&gt;9000/tcp
webstack_nginx_1     nginx -c /nginx.conf   Up      443/tcp, 8080-&gt;80/tcp
webstack_varnish_1   /start                 Up      80-&gt;80/tcp</pre><p>Les arrêter (sans les supprimer):</p><pre class="crayon-plain-tag">$ fig stop
Stopping webstack_varnish_1...
Stopping webstack_nginx_1...
Stopping webstack_php_1...</pre><p>Les relancer:</p><pre class="crayon-plain-tag">$ fig start
Starting webstack_php_1...
Starting webstack_nginx_1...
Starting webstack_varnish_1...</pre><p>Les supprimer:</p><pre class="crayon-plain-tag">fig stop &amp;&amp; fig rm</pre><p>Je vous laisse découvrir <a
href="http://www.fig.sh/cli.html">les autres commandes de Fig sur le site officiel de la documentation</a>.</p><h1>Conclusion</h1><p>Nous venons de créer les bases d'une infrastructure Web performante, facilement maintenable et évolutive. Il est ainsi facile d'y ajouter d'autres services comme une base de donnée (type MariaDB), un serveur sFTP (pour la mise à jour des pages Web) ou bien encore un outil d'analyse des logs (Varnish et NGinx).</p><p>Et de votre coté, avez-vous mis en place une infrastructure Docker pour votre serveur Web ? Si oui comment ?</p><p>Partagez votre expérience avec nous !</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/10/infra-lemp-docker.html">Varnish, NGinx et PHP-FPM sous Docker</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=4xf16mJX0Wc:tJdlCxJvF8g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=4xf16mJX0Wc:tJdlCxJvF8g:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/4xf16mJX0Wc" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7499
title: Glances 2.2 a besoin de vous
uri: Glances-2-2-a-besoin-de-vous
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/e9mi0BvuqoI/glances-2-2-besoin-de-vous.html
content:
<p>L'activité sur ce blog étant inversement proportionnelle à mon activité sur <a
href="https://github.com/nicolargo/glances">le logiciel Glances</a>, vous pouvez, je l’espère, comprendre le peux d'activité sur ce site. Le développement de la future version 2.2 de Glances me prends les quelques temps libres qui me reste. Je fais donc appel à vous, chers lecteurs, pour m'aider à valider et trouver les derniers bugs dans cette version en cours de développement.</p><h1>Quoi de neuf ?</h1><p>La version 2.2 apportera, en plus de son lots de corrections de bugs les fonctionnalités suivantes:</p><ul><li>un nouveau mode nommé "browser" (option --browser) permettant de superviser un ensemble de serveurs Glances ou SNMP à partir d'un point central</li><li>une vu en arbre pour les processus avec l'option --tree</li><li>amélioration de la fonction de tracé de graphique initialisé dans la version 2.1 de Glances</li><li>ajout du raccourci 'F' et de son option --fs-free-space pour afficher l'espace libre en lieu et place de l'espace utilisé</li><li>ajout du raccourci '2' et de son option (--disable-left-sidebar) pour cacher la sidebar gauche et donc afficher tout l'espace du bas de l'écran avec les processus</li><li>ajout du raccourci 't' pour trier les processus en fonction du temps CPU ("CPU times")</li></ul><p>C'est surtout sur la fonction "browser" que j'ai besoin de vous. En effet, je l'ai testé dans un environnement limité et je suis à la recherche d'administrateur système avec un bon petit parc de machines pour effectuer une validation plus complète.</p><h1>Focus sur le mode browser</h1><p>Ce nouveau mode permet donc de lancer Glances en tant que "super" client qui va afficher dans une première fenêtre la liste des serveurs Glances détectés sur son réseau ou configuré dans le fichier de configuration.</p><p><a
href="media/96026a9e.Slection_251.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/12/Sélection_251.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7500" src="media/e14706d7.Slection_251-580x128.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2014/12/Sélection_251-580x128.png" alt="Sélection_251" width="580" height="128" /></a></p><p>Le mode de détection automatique repose sur le protocole Zeroconf qui fonctionne en client/serveur multicast. Il est nécessaire que <strong>les clients et les serveurs soit dans la version 2.2 de Glances</strong> (voir la procédure d'installation dans le chapitre suivant).</p><p><span
style="color: #808080;"><em>Remarque sur le protocole Zeroconf: Qui dit multicast, dit une détection uniquement sur le réseau local. En clair, votre "super" client Glances ne verra que les serveurs sur le même réseau Ethernet (à moins que vos routeurs ne soient compatibles avec le routage multicast).</em></span></p><p>En plus de ce mode dynamique (qui est bien sur désactivable à la fois coté client mais aussi coté serveur), il est possible de configurer une liste de serveurs dans le fichier de configuration de Glances (<a
href="https://github.com/nicolargo/glances/blob/develop/conf/glances-test.conf#L134">voir exemple ici</a>).</p><p>Une fois la liste des serveurs affiché, il suffit de cliquer sur la touche 'ENTER' pour visualiser les statistiques de la machine (en clair, lancer le client Glances classique sur le serveur sélectionné).</p><p>Ce nouveau mode, très demandé par les utilisateur est en phase de développement et est susceptible d'évoluer dans les prochaines versions. Je suis d'ailleurs à l'écoute de vos remarques sur cette fonction.</p><h1>Comment tester la version 2.2 de Glances ?</h1><p>Je vous propose de simplement lire le Wiki officiel (<a
href="https://github.com/nicolargo/glances/wiki/Install-and-test-Glances-DEVELOP-version#use-a-python-virtual-environment">en cliquant ici</a>) qui va vous guider pour installer cette version de développement (bêta) sur vos machines sans "casser" le Glances existant.</p><p>D'avance merci !</p><p>PS: faite tourner le billet <img
src="media/7deecd69.simple-smile.png" data-original-source="http://blog.nicolargo.com/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2014/12/glances-2-2-besoin-de-vous.html">Glances 2.2 a besoin de vous</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=e9mi0BvuqoI:ct16L1AdkYk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=e9mi0BvuqoI:ct16L1AdkYk:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/e9mi0BvuqoI" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7506
title: Installation de Krita sous Ubuntu (non KDE)
uri: Installation-de-Krita-sous-Ubuntu-(non-KDE)
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/JkdkGQKP1Ac/installation-de-krita-sous-ubuntu-non-kde.html

content:
<p>Une petit billet "quick and dirty" entre deux lignes de code sur la prochaine version de <a
href="https://github.com/nicolargo/glances/issues?q=is%3Aissue+milestone%3A%22Version+2.3%22+is%3Aclosed">Glances qui s'annonce dantesque</a>, pour installer Krita, une alternative pas si improbable à Photoshop, sur votre machine Ubuntu Gnome ou Unity.</p><p>La preuve ? L'université de Paris 8 vient juste de migrer de Photoshop vers Krita pour sa section Art et technologie de l'image</p><p>J'ai un peu galérer avant d'avoir un logiciel complètement utilisable sur une machine non nativement KDE (comme mon Ubuntu Gnome Edition). Donc voici les commandes à saisir:</p><pre class="crayon-plain-tag">sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt-get update
sudo apt-get install krita kritasketch oxygen-icon-theme
kbuildsycoca4</pre><p>Et hop, le résultat est là:</p><p><a
href="media/d9264ff9.krita01.psd--Krita_273.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/01/krita01.psd-–-Krita_273.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7507" src="media/35b2e95e.krita01.psd--Krita_273-580x318.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/01/krita01.psd-–-Krita_273-580x318.png" alt="krita01.psd – Krita_273" width="580" height="318" /></a></p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2015/01/installation-de-krita-sous-ubuntu-non-kde.html">Installation de Krita sous Ubuntu (non KDE)</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JkdkGQKP1Ac:86w5JDYxmJU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JkdkGQKP1Ac:86w5JDYxmJU:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/JkdkGQKP1Ac" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7511
title: Les nouveautés de Glances 2.3
uri: Les-nouveautés-de-Glances-2-3
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/ppzgmhfMTfw/les-nouveautes-de-glances-2-3.html
content:
<p>Glances vient de sortir en version 2.3. Cette version propose un grand nombre de nouveautés que nous allons détailler dans cet article. Pour installer ou mettre à jour Glances dans cette dernière version, je vous conseille <a
href="https://github.com/nicolargo/glances#installation">la lecture de la documentation officielle</a>.</p><p>Attachez vos ceintures, c'est parti pour le tour d'horizon...</p><h1>Le plugin Docker</h1><p>Ce plugin est développé autour de la librairie <a
href="https://github.com/docker/docker-py">Docker-Py</a> et de fonctions maison pour permettre à l'utilisateur de superviser les conteneurs lancés sur la machine à superviser. Le fonctionnement est relativement simple. Glances va identifier, grâce à la librairie Docker-Py, la liste des conteneurs comme le ferait la commande <em>'docker ps'</em>. Pour chacun des conteneurs, il va ensuite aller chercher dans les répertoires /sys/fs/cgroup/cpuacct/docker et /sys/fs/cgroup/memory/docker les informations concernant leurs occupations CPU et mémoire.</p><p>Le plgin ne s'affiche que si la librairie Docker-Py est installé et si au moins un conteneur est lancé. Le résultat final est le suivant dans un interface console:</p><p><a
href="media/1680845a.Slection_294.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/01/Sélection_294.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7512" src="media/54fcf6b8.Slection_294-580x186.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/01/Sélection_294-580x186.png" alt="Sélection_294" width="580" height="186" /></a></p><p>Le plugin Docker est également dans l'interface Web de Glances.</p><h1>Le plugin RAID</h1><p>La supervision de l'état des contrôleurs RAID des machines est un point critique. Ainsi, cette nouvelle version de Glances inclus un nouveau plugin permettant de remplir cette tâche. Ce plugin ce base sur la librairie <a
href="https://github.com/nicolargo/pymdstat">PyMdstat</a> que j'ai créé pour l'occasion et qui est utilisable dans d'autres applications.</p><p>Le plugin ne s'affiche que si la librairie PyMdstat est installé et qu'un contrôleur RAID est détecté. Par exemple, sur un serveur avec un contrôleur RAID 5 avec 5 disques en bon état, Glances va afficher:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" src="media/a39edbfd.7aadea64-89eb-11e4-9d47-8721fa39aa40.png" data-original-source="https://cloud.githubusercontent.com/assets/776747/5525785/7aadea64-89eb-11e4-9d47-8721fa39aa40.png" alt="" width="196" height="52" /></p><p>Par contre, dans le cas d'un contrôleur RAID 5 avec 6 disques et l'un de ces disques dans un état pas terrible:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class=" aligncenter" src="media/4173347a.7a8c2654-89eb-11e4-9009-714959da1dbf.png" data-original-source="https://cloud.githubusercontent.com/assets/776747/5525781/7a8c2654-89eb-11e4-9009-714959da1dbf.png" alt="" width="193" height="79" /></p><p>Enfin, avec un contrôleur RAID 5 désactivé:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" src="media/be9a9939.7a8bb1ba-89eb-11e4-8864-54aeefb45bc2.png" data-original-source="https://cloud.githubusercontent.com/assets/776747/5525780/7a8bb1ba-89eb-11e4-8864-54aeefb45bc2.png" alt="" width="195" height="117" /></p><p>&nbsp;</p><p>Le plugin RAID étant un extension du plugin FileSystem, il s'affichera, si nécessaire à gauche dans l'interface console/terminal ou Web de Glances.</p><h1>Modules d'exports vers Statsd, InfluxDB et CSV</h1><p>Une refonte complète du module d'exportation des données vers des briques externes a été codé dans cette nouvelle version. Ainsi, il est possible nativement, d'exporter les statistiques remontées par Glances dans un fichier à plat au format CSV et/ou dans des bases de données de type temps/valeurs comme Statsd ou InfluxDB.</p><p>Commençons par l'export CSV que l'on peut choisir en mode standalone, pour récupérer les statistiques de notre machine locale ou en mode client pour une machine distante. On doit utiliser l'option suivante:</p><pre class="crayon-plain-tag">glances --export-csv /tmp/glances.csv</pre><p>On se retrouve avec un fichier /tmp/glances.csv qui va contenir toutes les stats disponibles (hormis les processus) parfaitement exploitable dans une bête feuille Excel ou via un script Python avec <a
href="http://pandas.pydata.org/">la fameuse librairie Panda</a>:</p><pre class="crayon-plain-tag">load_cpucore,load_min1,load_min5,load_min15,memswap_used,memswap_percent,memswap_free,memswap_sout,memswap_total,memswap_sin,diskio_sda2_key,diskio_sda2_time_since_update,diskio_sda2_read_bytes,diskio_sda2_write_bytes,diskio_sda2_disk_name,diskio_sda3_key,diskio_sda3_time_since_update,diskio_sda3_read_bytes,diskio_sda3_write_bytes,diskio_sda3_disk_name,diskio_sda1_key,diskio_sda1_time_since_update,diskio_sda1_read_bytes,diskio_sda1_write_bytes,diskio_sda1_disk_name,fs_/_mnt_point,fs_/_used,fs_/_percent,fs_/_free,fs_/_device_name,fs_/_fs_type,fs_/_key,fs_/_size,fs_/boot/efi_mnt_point,fs_/boot/efi_used,fs_/boot/efi_percent,fs_/boot/efi_free,fs_/boot/efi_device_name,fs_/boot/efi_fs_type,fs_/boot/efi_key,fs_/boot/efi_size,mem_available,mem_used,mem_cached,mem_percent,mem_free,mem_inactive,mem_active,mem_total,mem_buffers,network_lo_tx,network_lo_cumulative_rx,network_lo_rx,network_lo_cumulative_cx,network_lo_time_since_update,network_lo_cx,network_lo_cumulative_tx,network_lo_key,network_lo_interface_name,network_docker0_tx,network_docker0_cumulative_rx,network_docker0_rx,network_docker0_cumulative_cx,network_docker0_time_since_update,network_docker0_cx,network_docker0_cumulative_tx,network_docker0_key,network_docker0_interface_name,network_wlan0_tx,network_wlan0_cumulative_rx,network_wlan0_rx,network_wlan0_cumulative_cx,network_wlan0_time_since_update,network_wlan0_cx,network_wlan0_cumulative_tx,network_wlan0_key,network_wlan0_interface_name,processcount_running,processcount_total,processcount_thread,processcount_sleeping,cpu_softirq,cpu_iowait,cpu_system,cpu_guest,cpu_idle,cpu_user,cpu_guest_nice,cpu_irq,cpu_total,cpu_steal,cpu_nice
4,0.18,0.2,0.23,0,0.0,8490315776,0,8490315776,0,disk_name,1,933888,413696,sda2,disk_name,1,0,0,sda3,disk_name,1,0,0,sda1,/,145566900224,59.9,97453883392,/dev/sda2,ext4,mnt_point,243020783616,/boot/efi,3510272,0.7,532295680,/dev/sda1,vfat,mnt_point,535805952,6620909568,1652637696,1202855936,20.0,6620909568,1018507264,1797070848,8273547264,204804096,200,356764,200,713528,1,400,356764,interface_name,lo,0,0,0,0,1,0,0,interface_name,docker0,0,21354827,0,26332988,1,0,4978161,interface_name,wlan0,1,200,477,199,0.0,2.2,13.3,0.0,33.3,51.1,0.0,0.0,66.7,0.0,0.0
4,0.17,0.2,0.23,disk_name,3.128045082092285,36864,1003520,sda2,disk_name,3.128045082092285,0,0,sda3,disk_name,3.128045082092285,0,0,sda1,/,145566859264,59.9,97453924352,/dev/sda2,ext4,mnt_point,243020783616,/boot/efi,3510272,0.7,532295680,/dev/sda1,vfat,mnt_point,535805952,6627594240,1645953024,1202880512,19.9,6627594240,1018691584,1789747200,8273547264,204951552,1260,358024,1260,716048,3.131376028060913,2520,358024,interface_name,lo,0,0,0,0,3.131376028060913,0,0,interface_name,docker0,10241,21367420,12593,26355822,3.131376028060913,22834,4988402,interface_name,wlan0,1,200,477,199,0.1,0.5,0.5,0.0,95.3,3.6,0.0,0.0,4.7,0.0,0.0
4,0.17,0.2,0.23,0,0.0,8490315776,0,8490315776,0,disk_name,3.1066739559173584,4096,1376256,sda2,disk_name,3.1066739559173584,0,0,sda3,disk_name,3.1066739559173584,0,0,sda1,/,145566867456,59.9,97453916160,/dev/sda2,ext4,mnt_point,243020783616,/boot/efi,3510272,0.7,532295680,/dev/sda1,vfat,mnt_point,535805952,6626533376,1647013888,1202917376,19.9,6626533376,1018888192,1790480384,8273547264,205172736,509,358533,509,717066,3.1057980060577393,1018,358533,interface_name,lo,0,0,0,0,3.1057980060577393,0,0,interface_name,docker0,4009,21383069,15649,26375480,3.1057980060577393,19658,4992411,interface_name,wlan0,1,199,476,198,0.0,0.6,0.6,0.0,93.9,4.9,0.0,0.0,6.1,0.0,0.0</pre><p>Plus fun et moderne, l'export vers des bases de données NoSQL de type temps/valeurs. Pour l'instant, Glances supporte les implémentations <a
href="https://github.com/etsy/statsd/">Statsd</a> et <a
href="http://influxdb.com/">InfluxDB</a>. Par exemple, pour exporter les statistiques vers un serveur InfluxDB, il faut dans un premier temps éditer le fichier de configuration de Glances.</p><p><span
style="color: #808080;"><em>Note: pour connaître l'emplacement du fichier de configuration de Glances utilisé, il suffit de consulter le fichier de log (par défaut /tmp/glances.log). Il est aussi possible de forcer l'utilisation d'un fichier de configuration spécifique avec l'option -C.</em></span></p><p>Par exemple, pour utiliser un serveur InfluxDB qui tourne sur la machine locale (localhost), sur le port TCP par défaut (8086) avec l'utilisateur/password (root/root) et la base de donnée nommée glances, il suffit d'ajouter la section suivante:</p><pre class="crayon-plain-tag">[influxdb]
host=localhost
port=8086
user=root
password=root
db=glances</pre><p>On lance ensuite Glances avec l'option:</p><pre class="crayon-plain-tag">glances --export-influxdb</pre><p>Et magie de la technologie moderne:</p><p><a
href="media/77c3503c.5ce72eae-8e1f-11e4-8d2d-bf537cf13ad8.png" data-original-source="https://cloud.githubusercontent.com/assets/776747/5562460/5ce72eae-8e1f-11e4-8d2d-bf537cf13ad8.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" src="media/77c3503c.5ce72eae-8e1f-11e4-8d2d-bf537cf13ad8.png" data-original-source="https://cloud.githubusercontent.com/assets/776747/5562460/5ce72eae-8e1f-11e4-8d2d-bf537cf13ad8.png" alt="" width="585" height="292" /></a></p><h1>Déclenchement d'actions sur alerte</h1><p>Réclamée depuis un certain temps par les utilisateurs, cette nouvelle fonction permet de déclencher des alertes pour n'importe quelle alarme levée par Glances. Par exemple, si vous voulez être prévenu par mail quand l'espace disque disponible devient critique, il suffit d'éditer le fichier de configuration de la manière suivante:</p><pre class="crayon-plain-tag">[fs]
careful=20
warning=70
critical=90
critical_action=mail -s "Disk almost full..." user@domain.com</pre><p>Encore mieux, Glances supporte les mustaches {{...}} et permet donc d'utiliser <a
href="https://github.com/nicolargo/glances/wiki/The-Glances-2.x-API-How-to">les variables disponibles dans les API</a> pour personnaliser les actions. Ainsi, pour préciser le nom du disque et le pourcentage utilisé, il suffit de changer la configuration de la manière suivante:</p><pre class="crayon-plain-tag">[fs]
careful=20
warning=70
critical=90
critical_action=mail -s "Disk {{mnt_point}} almost full: {{percent}}%" user@domain.com</pre><p><span
style="color: #808080;"><em>Note: cette fonction se base sur la librairie Pystache.</em></span></p><h1>Support des mots de passe dans le mode browser</h1><p>La grande nouveauté de la version précédente de Glances (la 2.2) était l'apparition du mode browser permettant à partir d'un client unique de superviser plusieurs serveurs. Il est maintenant possible d'accéder à des serveurs protégés par des mots de passes.</p><p><a
href="media/5f437ccc.Slection_295.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/01/Sélection_295.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7513" src="media/b25a276f.Slection_295-580x372.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/01/Sélection_295-580x372.png" alt="Sélection_295" width="580" height="372" /></a></p><p><em><span
style="color: #808080;"> Note: il faut obligatoirement que le client (celui qui lance --browser) et les serveurs (-s) soient à minima dans la version 2.3 pour que cette fonction marche correctement.</span></em></p><h1>Amélioration de l'interface Web</h1><p>Enfin pour finir en beauté ce panorama des nouveautés de cette version 2.3 je voulais signaler le remarquable travail effectué par <a
href="https://github.com/nclsHart">Nicolas Hart</a> sur la refonte de l'interface Web avec notamment un optimisation de l'affichage ("responsive design"):</p><p><a
href="media/46e17e77.glances-responsive-webdesign.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/01/glances-responsive-webdesign.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7514" src="media/f5edc624.glances-responsive-webdesign-580x435.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/01/glances-responsive-webdesign-580x435.png" alt="glances-responsive-webdesign" width="580" height="435" /></a></p><p>Nicolas travaille en ce moment avec <a
href="https://github.com/sylvainmouquet">Sylvain Mouquet</a> sur la refonte complète de l'interface Web pour passer sur des technologies dynamiques (utilisation d'AngularJS coté client). Cela devrait normalement arriver dans la prochaine version (Glances 2.4).</p><p>J'espère que cette version de Glances répondra à vos besoins. N'hésitez pas à laisser un petit message pour partager avec nous comment vous utilisez Glances au quotidien et également proposer des améliorations.</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2015/02/les-nouveautes-de-glances-2-3.html">Les nouveautés de Glances 2.3</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=ppzgmhfMTfw:LEiekJyxsQY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=ppzgmhfMTfw:LEiekJyxsQY:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/ppzgmhfMTfw" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7530
title: Résolution du problème de DNS avec OpenVPN sous Ubuntu
uri: Résolution-du-problème-de-DNS-avec-OpenVPN-sous-Ubuntu
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/HcB61O4iBBI/resolution-du-probleme-de-dns-avec-openvpn-sous-ubuntu.html

content:
<p>Un petit billet à usage personnel (mais pas que) concernant un problème pour le moins gênant dans le cas ou vous essayez de monter une liaison VPN (OpenVPN) à partir d'Ubuntu 14.04.</p><h2>Le symptôme</h2><p>Vous avez un beau fichier .ovpn fourni par votre fournisseur de service VPN ou par votre OpenVPN server auto-hébergé. Quand vous montez le VPN avec la commande suivante:</p><pre class="crayon-plain-tag">$ sudo openvpn --config Paris.ovpn
Fri Feb 27 21:17:12 2015 OpenVPN 2.3.6 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jan 22 2015
Fri Feb 27 21:17:12 2015 library versions: OpenSSL 1.0.1f 6 Jan 2014, LZO 2.06
Enter Auth Username:xxx
Enter Auth Password:xxx
Fri Feb 27 21:17:21 2015 UDPv4 link local: [undef]
Fri Feb 27 21:17:21 2015 UDPv4 link remote: [AF_INET]5.196.80.160:443
Fri Feb 27 21:17:21 2015 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Fri Feb 27 21:17:25 2015 VERIFY OK: depth=1, C=GB, ST=LN, L=London, O=vpnsvc, OU=vpnsvc, CN=vpnsvc.com, name=vpnsvc, emailAddress=noc@vpnsvc.com
Fri Feb 27 21:17:25 2015 VERIFY OK: nsCertType=SERVER
Fri Feb 27 21:17:25 2015 VERIFY OK: depth=0, C=GB, ST=LN, L=London, O=vpnsvc, OU=vpnsvc, CN=vpnsvc, name=vpnsvc, emailAddress=noc@vpnsvc.com
Fri Feb 27 21:17:31 2015 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri Feb 27 21:17:31 2015 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Feb 27 21:17:31 2015 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri Feb 27 21:17:31 2015 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Feb 27 21:17:31 2015 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Fri Feb 27 21:17:31 2015 [vpnsvc] Peer Connection Initiated with [AF_INET]5.196.80.160:443
Fri Feb 27 21:17:33 2015 TUN/TAP device tun0 opened
Fri Feb 27 21:17:33 2015 do_ifconfig, tt-&gt;ipv6=0, tt-&gt;did_ifconfig_ipv6_setup=0
Fri Feb 27 21:17:33 2015 /sbin/ip link set dev tun0 up mtu 1500
Fri Feb 27 21:17:33 2015 /sbin/ip addr add dev tun0 10.10.10.139/27 broadcast 10.10.10.159
Fri Feb 27 21:17:33 2015 Initialization Sequence Completed</pre><p>Tout semble se passer pour le mieux:</p><pre class="crayon-plain-tag">$ ping 74.125.71.94
PING 74.125.71.94 (74.125.71.94) 56(84) bytes of data.
64 bytes from 74.125.71.94: icmp_seq=1 ttl=46 time=76.9 ms
64 bytes from 74.125.71.94: icmp_seq=2 ttl=46 time=125 ms
...</pre><p>sauf qu'il n'y a pas de résolution DNS !</p><pre class="crayon-plain-tag">$ ping www.google.fr
&lt;vide inter stellaire&gt;</pre><p></p><h2>La cause</h2><p>C'est la faute à Ubuntu qui ne prend pas en compte les @ des serveurs DNS envoyés par le serveur VPN. <a
href="https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1211110">Le bug est connu est référencé depuis octobre 2013</a> mais manifestement il n'est pas jugé important par les développeur de Canonical.</p><h2>La solution</h2><p>Rien de bien compliqué. Il suffit d'ajouter les 3 lignes suivant à la fin de votre fichier .ovpn (mais avant votre certificat s'il est inclus dans le fichier):</p><pre class="crayon-plain-tag">...
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
...</pre><p>On se retrouve ensuite avec un VPN pleinement fonctionnel...</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2015/02/resolution-du-probleme-de-dns-avec-openvpn-sous-ubuntu.html">Résolution du problème de DNS avec OpenVPN sous Ubuntu</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=HcB61O4iBBI:C8z5G33yMzk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=HcB61O4iBBI:C8z5G33yMzk:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/HcB61O4iBBI" height="1" width="1" alt=""/>


feed_id: http://blog.nicolargo.com/?p=7539
title: A la découverte de Check my Website
uri: A-la-découverte-de-Check-my-Website
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/rYM1ph5P1ns/a-la-decouverte-de-check-my-website.html

content:
<p>Depuis février 2014, Olivier Jan et son équipe ont lancé un service en ligne permettant de surveiller ses sites Web et d'être alerté uniquement en cas de problème. Cette supervision minimaliste répond à un besoin croissant dans les infrastructures informatique actuelles: contrôler le ressenti utilisateur plutôt que les indicateurs techniques. En plus, la solution technique qui se cache derrière le site <a
href="https://www.checkmy.ws/">Check my Website</a> se base sur des solutions open-source largement partagés sur <a
href="https://wooster.checkmy.ws">le blog officiel</a> qui est une source d'information que je vous conseille de suivre.</p><h1>Pour quels besoins ?</h1><p>Check my Website a pour objectif de <strong>surveiller</strong>, à travers le temps, la disponibilité, le temps de réponse et la conformité aux standards de performances du Web de vos sites Internet. En cas de problème, on peut être <strong>alerté</strong> par mail ou SMS. Une console, que nous présenterons plus loin dans cet article, permet de <strong>visualiser</strong>, sous la forme de courbes et de tableau, l'ensemble des indicateurs.</p><p>Il ne nécessite aucune installation sur votre site Web, que cela soit sur le serveur ou même dans les pages de votre site. Il construit ses statistiques en utilisant des requêtes HTTP. Ce n'est donc pas une solution de supervision classique. On ne pourra pas, par exemple, connaître le taux d'occupation mémoire ou la charge CPU du serveur hébergeant votre site.</p><h1>Le tour du propriétaire</h1><p>La mise en route de la supervision de votre site ne prend pas plus de 5 minutes. Il suffit de s'inscrire sur le site et de déclarer l'adresse du site à surveiller. Une période d'essai gratuite de 15 jours est proposée. Il faudra ensuite <a
href="https://www.checkmy.ws/en/pricing/">choisir votre forfait</a> en fonction du nombre de site à surveiller et des fonctions proposées. Par exemple, pour un site, le ticket d'entrée est de 16€ par an (tarif au 10 juin 2015).</p><p>A noter que Check my Website propose un service '<a
href="https://checkmy.ws/fr/solutions/free-forever-for-foss/">Free for FOSS</a>" entièrement gratuit pour les sites de projets Open Source et/ou associatifs (<a
href="https://checkmy.ws/fr/solutions/free-forever-for-foss/">voir les condition sur le site</a>) !</p><p><a
href="media/f936cb76.Slection_366.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_366.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7542" src="media/8413b833.Slection_366-580x244.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_366-580x244.png" alt="Sélection_366" width="580" height="244" /></a></p><p>Une fois les sites déclarés, les statistiques arrivent sur la console. On commence par la vue générale offrant une vue d'ensemble de vos sites:</p><p><a
href="media/5fce714f.Slection_361.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_361.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7547" src="media/b3d4b8ca.Slection_361-580x107.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_361-580x107.png" alt="Sélection_361" width="580" height="107" /></a></p><p>Pour chaque site, on a un tableau de bord qui résumant les indicateurs critiques:</p><p><a
href="media/fc629c25.Slection_362.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_362.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7546" src="media/29c74ac1.Slection_362-580x279.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_362-580x279.png" alt="Sélection_362" width="580" height="279" /></a></p><p>On peut ensuite faire un focus sur un site en particulier pour consulter les statistiques (menu metrics):</p><ul><li>temps de réponse</li><li>disponibilté</li><li>temps de chargement total de la page</li></ul><p><a
href="media/645e8aef.Slection_363.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_363.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7545" src="media/e9fcfc14.Slection_363-580x266.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_363-580x266.png" alt="Sélection_363" width="580" height="266" /></a></p><p>Il est bien sûr possible de zoomer sur les courbes et de revenir sur des périodes passées:</p><p><a
href="media/e3d32067.Slection_368.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_368.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7540" src="media/4eb14939.Slection_368-580x264.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_368-580x264.png" alt="Sélection_368" width="580" height="264" /></a></p><p><a
href="media/08b75be2.Slection_367.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_367.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7541" src="media/ff4942f2.Slection_367-580x266.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_367-580x266.png" alt="Sélection_367" width="580" height="266" /></a></p><p>Dans l'onglet performance, on retrouve des informations et conseils pouvant vous permettre d'améliorer l'expérience utilisateur des visiteurs de votre site.</p><p>&nbsp;</p><p><a
href="media/5af9f1f6.Slection_365.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_365.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7543" src="media/09c0b00a.Slection_365-580x211.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_365-580x211.png" alt="Sélection_365" width="580" height="211" /></a></p><p>Enfin, en cas de problème, il est possible d'entrée dans le détail du temps de chargement de votre site:</p><p><a
href="media/2eb56cfb.Slection_364.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_364.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-7544" src="media/374cbd53.Slection_364-580x259.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2015/06/Sélection_364-580x259.png" alt="Sélection_364" width="580" height="259" /></a></p><h1>Mon impression</h1><p>J'ai eu la chance de tester gratuitement le service pendant plusieurs semaines sur 3 de mes sites personnels (notamment le blog que vous êtes en train de lire). Check my Website "fait le job". L'interface utilisateur est simple et intuitive. Il se fait oublier, alerte en cas de problème et il alors facile d'identifier la période d'indisponibilité ou de baisse de performance. Il peut aussi être très utile dans les phases de migration (lors d'un changement d'hébergeur ou d'un thème) pour juger du maintient des performances.</p><p>Il manque cependant à mon goût des statistiques internes (CPU, RAM, occupation disque, état des services de la stack web...) mais qui ne peuvent pas être mis en place sans l'installation d'un composant ou d'une configuration côté serveur.</p><p>Pour conclure, c'est un service que je conseille à toutes les personnes possédant un site Web sensible et qui ne veulent pas s'embêter avec la mise en place d'une solution de supervision type Nagios ou Shinken.Il serait d'ailleurs sympa que le service soit proposé en option par les hébergeurs (cc: Online.fr, OVH, Web4All...).</p><p>Cet article <a
rel="nofollow" href="http://blog.nicolargo.com/2015/06/a-la-decouverte-de-check-my-website.html">A la découverte de Check my Website</a> est apparu en premier sur <a
rel="nofollow" href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p> <div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=rYM1ph5P1ns:4p3gRvjeaIE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=rYM1ph5P1ns:4p3gRvjeaIE:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/rYM1ph5P1ns" height="1" width="1" alt=""/>


