# articles

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=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=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=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=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=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=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=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=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=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=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=""/>


