PROJET AUTOBLOG


Nicolargo

source: Nicolargo

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Ma shortlist d’Ultrabooks sous GNU/Linux

mercredi 4 décembre 2013 à 08:19

dellxps

Je cherche à remplacer mon bon vieux PC laptop personnel qui commence un peu à dater (Fujitsu Lifebook S Series de 2009). L'utilisation que je fais de ce PC est assez varié: Surf sur le Web, blogging, développement, traitement d'image (photo)...

A partir de mon expérience sur le Fujitsu, les caractéristiques minimales sont les suivantes (par ordre décroissant d'importance):

Comme vous pouvez le voir, ces caractéristiques collent parfaitement avec les laptop de type ultrabook.

J'ai donc commencé à chercher sur le net des informations sur les machines pouvant coller à mes besoins. De manière assez surprenante, la liste n'est pas si grande que cela. En effet, à l'heure actuelle (décembre 2013), beaucoup d'Ultrabooks ne proposent qu'une résolution "HD Ready"  (1366x778 pixels) ou d'une mémoire trop juste (4 Go).

Ainsi, ma shortlist  initiale se compose d'une dizaine de machines: CLIQUEZ ICI pour consulter ma liste sur Google Drive.

Voici, par ordre alphabétique, les ultrabooks qui sortent du lot par rapport à mes besoins/goûts.

Clevo W840SU 14"

Proposé par le site Anglais PCSpecialist, ce laptop n'est pas à proprement parler un ultrabook mais dispose d'une configuration paramétrable, d'un port Ethernet (oui madame !) et de composant de qualité. Il peut de plus être commandé sans OS Windows, d'ou un prix de vente assez concurrentiel (moins de 1200 € pour une configuration musclée).

Le seul problème pour moi est le design général qui n'est pas vraiment glamour.

cosmos

 

 

Dell XPS 13 Dev

La deuxième machine est beaucoup plus connue car elle avait fait le buzz au moment de sa commercialisation. Imaginer un ultrabook design, doté d'une configuration musclée pour les développeurs sous Ubuntu (au moins on est sûr de la compatibilité) !

Vous en avez rêvé ? Dell a essayé de le faire avec son XPS 13 Dev Edition.

Au niveau du look, rien à dire, c'est une belle machine que l'on a pas honte de sortir en public. Au chapitre des points négatifs: pas de port Ethernet et un prix qui grimpe à plus de 1300€ avec la livraison.

dellxps2

 

Lenovo Ideapad Yoga 2 Pro 59386559

Quoi ? Un IBM (enfin Lenovo) dans cette sélection ? Et oui, l'Ideapad Yoga 2 est une bien belle machine avec notamment une dalle HD avec une résolution de 3200x1800 pixels, un design très sympa (si on aime le orange) et une configuration qui tient la route pour 1200€.

Il est par contre très difficile de le trouver en France et la compatibilité avec Linux demande quelques manipulations.

lenovo

 

MOUNTAIN Portátil LightU T744G

Enfin, pour finir cette sélection, nous allons aller du coté de l'Espagne ou l'intégrateur Mountain propose des PC et laptops à configurer et compatible avec Ubuntu (il propose même d'installer nativement l'OS avant de vous l'expédier).

La configuration est bonne, le design plus sexy que le Clevo Anglais mais le prix grimpe à plus de 1300€.

capture_145

 

Conclusion

Je ne suis pas encore fixé sur mon choix final. Pour l'instant, le Montain, le Dell et le Lenovo tiennent la corde.

Avez-vous d'autres pistes ?

Cet article Ma shortlist d’Ultrabooks sous GNU/Linux est apparu en premier sur Le blog de NicoLargo.

Supervision de son PC bureautique avec Glances

lundi 25 novembre 2013 à 09:13

D'abord orienté vers la supervision de machines distantes, Glances permet également de surveiller l'ensemble des paramètres systèmes de ses machines bureautique. De plus, depuis sa version 1.7.2 , Glances offre une interface Curses sur l'ensembles des plateformes: GNU/Linux, BSD, Mac OS et même ... MS Windows.

Il est en effet fréquent d'observer un ralentissement, voir un blocage de sa machine locale. Nous allons voir comment configurer puis utiliser Glances pour en trouver les causes et ainsi prendre les actions adéquates.

Configuration de Glances

Après installation de Glances sur son système (le plus simple étant de passer par PyPI), un fichier de configuration par défaut est disponible sous /etc/glances/glances.conf sous GNU/Linux (voir ici pour les emplacements sur les autres systèmes). Je vous conseille de copier ce fichier en local dans votre répertoire de configuration standard (~/.config/glances ou $XDG_CONFIG_HOME/glances).

mkdir -p ~/.config/glances
cp /etc/glances/glances.conf ~/.config/glances/

On peut ensuite éditer son fichier selon ses besoins: ~/.config/glances/glances.conf

Voici le fichier que j'utilise sur mon PC portable:

[cpu]
# Limits values for CPU user in %
# Defaults values if not defined: 50/70/90
user_careful=50
user_warning=70
user_critical=90
# Limits values for CPU system in %
# Defaults values if not defined: 50/70/90
system_careful=50
system_warning=70
system_critical=90
# Limits values for CPU iowait in %
# Defaults values if not defined: 40/60/80
# Not easy to tweek...
# Source: http://blog.scoutapp.com/articles/2011/02/10/understanding-disk-i-o-when-should-you-be-worried
#         http://blog.logicmonitor.com/2011/04/20/troubleshooting-server-performance-and-application-monitoring-a-real-example/
#         http://blog.developpeur-neurasthenique.fr/auto-hebergement-iowait-ma-tuer-1-2-vmstat-mpstat-atop-pidstat.html (FR)
iowait_careful=40
iowait_warning=60
iowait_critical=80
[load]
# Value * Core
# Defaults values if not defined: 0.7/1.0/5.0 per Core
# Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
#         http://www.linuxjournal.com/article/9001
careful=0.7
warning=1.0
critical=5.0
[memory]
# Defaults limits for free RAM memory in %
# Defaults values if not defined: 50/70/90
careful=50
warning=70
critical=90
[swap]
# Defaults limits for free swap memory in %
# Defaults values if not defined: 50/70/90
careful=50
warning=70
critical=90
[temperature]
# Temperatures in °C for sensors
# Defaults values if not defined: 60/70/80
careful=60
warning=70
critical=80
[hddtemperature]
# Temperatures in °C for hddtemp
# Defaults values if not defined: 45/52/60
careful=45
warning=52
critical=60
[filesystem]
# Defaults limits for free filesytem space in %
# Defaults values if not defined: 50/70/90
careful=50
warning=70
critical=90
[process]
# Limits values for CPU per process in %
# Defaults values if not defined: 50/70/90
cpu_careful=50
cpu_warning=70
cpu_critical=90
# Limits values for MEM per process in %
# Defaults values if not defined: 50/70/90
mem_careful=50
mem_warning=70
mem_critical=90
[monitor]
# Define the list of processes to monitor
# *** This section is optionnal ***
# The list is composed of item (list_#nb <= 10)
# An item is defined:
# * description: Description of the processes (max 16 chars)
# * regex: regular expression of the processes to monitor
# * command: (optional) full path to shell command/script for extended stat
#            Use with caution. Should return a single line string.
# * countmin: (optional) minimal number of processes
#             A warning will be displayed if number of process < count
# * countmax: (optional) maximum number of processes
#             A warning will be displayed if number of process > count
list_1_description=Chromium browser
list_1_regex=.*chromium-browse.*
list_1_countmax=50
list_2_description=OpenVPN
list_2_regex=.*openvpn.*
list_2_countmin=1
list_3_description=Dropbox
list_3_regex=.*dropbox.*
list_3_countmin=1
list_3_command=dropbox filestatus ~/Dropbox

En plus des jeux de limites pour les alertes de CPU, de charge (LOAD) et de mémoire (MEM), je souhaiterai que l'on s'attarde un peu sur la section [monitor] qui permet de mettre en avant une liste de processus jugés importants.

" lang="sh" decode="true"  title="Zoom sur la section [monitor]"][monitor]
# Define the list of processes to monitor
# *** This section is optionnal ***
# The list is composed of item (list_#nb &lt;= 10)
# An item is defined:
# * description: Description of the processes (max 16 chars)
# * regex: regular expression of the processes to monitor
# * command: (optional) full path to shell command/script for extended stat
#            Use with caution. Should return a single line string.
# * countmin: (optional) minimal number of processes
#             A warning will be displayed if number of process &lt; count
# * countmax: (optional) maximum number of processes
#             A warning will be displayed if number of process &gt; count
list_1_description=Chromium browser
list_1_regex=.*chromium-browse.*
list_1_countmax=50
list_2_description=OpenVPN
list_2_regex=.*openvpn.*
list_2_min=1
list_3_description=Dropbox
list_3_regex=.*dropbox.*
list_3_countmin=1
list_3_command=dropbox filestatus ~/Dropbox

Je défini donc 3 groupes de processus qui vont donner l'affichage suivant dans l'interface de Glances:

capture_142

Supervision de Chromium

Le premier groupe (list_1) permet de surveiller les processus relatifs à mon navigateur Web (Chromium).

Pour cela je lui donne un label (list_1_description) qui est une chaîne de caractères complètement arbitraire (mais limité à 15 caractères):

"]list_1_description=Chromium browser

Ensuite, il faut définir l'expression régulière qui va permettre de regrouper les processus:

"]list_1_regex=.*chromium-browse.*

Le problème avec Chromium, c'est qu'il peut être très consommateur de ressources (notamment mémoire) si l'on ouvre un grand nombre de pages. Je configure donc une surveillance du nombre maximum de processus. Glances affichera donc la ligne en rouge si ce nombre est dépassé:

"]list_1_countmax=50

Je ne défini pas de commande (list_1_command) associé à ce groupe. Donc par défaut Glances va calculer la consommation CPU et la mémoire globale des processus de ce groupe.

Supervision d'OpenVPN

J'utilise souvent un service VPN pour surfer (entre autre...) sur le Web. J'ai donc ajouté une supervision du processus OpenVPN:

"]list_2_description=OpenVPN
list_2_regex=.*openvpn.*
list_2_min=1

Contrairement à Chromium, je pose ici une alerte si le nombre de processus est inférieur à 1 (donc si OpenVPN n'est pas lancé).

Supervision de Dropbox

Avoir ces fichiers disponibles sur toutes ses machines est devenu pour moi complètement indispensable. La supervision du service Dropbox est faite par Glances de la manière suivante:

"]list_3_description=Dropbox
list_3_regex=.*dropbox.*
list_3_countmin=1
list_3_command=dropbox filestatus ~/Dropbox

Rien de bien nouveau sur les 3 première lignes, la dernière nécessite cependant quelques explications. La commande (shell) passée en paramètre de (list_3_command) sera exécuté à chaque "check" de Glances (donc par défaut toutes les 3 secondes). Cette commande va demander à Dropbox l'état de synchronisation mon répertoire (voir ce billet pour apprendre à  administrer Dropbox en ligne de commande).

Utilisation de Glances

Votre Glances est maintenant prêt à être utilisé. Donc si vous rencontrez un problème sur votre machine, il faudra ouvrir un terminal et saisir la commande:

glances -ey -C ~/.config/glances/glances.conf

Glances va se lancer et afficher les informations sur votre système:

capture_143

 

En plus de la section [monitor] ou l'on retrouve la supervision de nos groupes Chromium, OpenVPN et Dropbox, on a également l'ensemble des informations systèmes.

Dans le bandeau du haut, les informations sur la CPU, la charge et la mémoire. Les codes couleurs sont standards:

GREEN stat counter is "OK"
BLUE stat counter is "CAREFUL"
MAGENTA stat counter is "WARNING"
RED stat counter is "CRITICAL"

Sur le panneau de gauche, on a les informations moins critiques comme: les débits des interfaces réseau, les capteurs de température, les IO disques et l'espace disque.

Au centre, sur la section [monitor], on retrouve la liste des processus avec, par défaut, un tri "intelligent". Par exemple, en cas de consommation mémoire excessive, le tri sera automatiquement fait sur la consommation RAM des processus.

Enfin en bas de l'écran, un rappel des dernières alertes.

Pour une description précise des fonctions de Glances, je vous conseille la lecture de la documentation officielle (lisible ici).

Conclusion

Nous arrivons à la fin de ce billet. Je n'ai pas parlé du mode client serveur qui permet de lancer Glances en tache de fond et de l’interroger à la demande mais je pense que ce mode d'utilisation est plus utilise pour la supervision de serveurs.

Si vous avez des configurations spécifiques de Glances (et surtout du [monitor]) pour surveiller vos PC, partager cela (configuration et screenshot) avec nous !

Cet article Supervision de son PC bureautique avec Glances est apparu en premier sur Le blog de NicoLargo.

Glances 1.7.2 et son interface pour Windows

vendredi 8 novembre 2013 à 09:26

glances-white-256

Glances est maintenant disponible dans sa version 1.7.2. Au chapitre des nouveautés, une nouvelle interface cliente pour ceux d'entre vous qui ne peuvent pas se passer, par choix ou par contrainte, du système d'exploitation Microsoft Windows.  Cette interface se base sur la librairie ColorConsole et permet dans une console de commande Windows d'avoir un "look and feel" qui se rapproche de la version GNU/Linux.

Voici le résultat dans une console standard sous Windows 7:

glances-1.7.2-windows-cmd

Je vous conseille cependant de télécharger la console Console2 qui comble en partie les manques de la console par défaut (cmd).

glances-1.7.2-windows-console2

Afin de faciliter l'installation sur Windows, Frédéric Aoustin a eu la bonne idée de créer un installeur qui installe Python, les librairies nécessaires ainsi que Glances. L'installeur est disponible ici:

downloadGlances-1.7.2-win32.msi
(32-bit, MD5: dba4f6cc9f47b6806ffaeb665c093270)

Je pense que la plupart des lecteurs de ce blog ne seront jamais arrivés jusqu'ici mais si c'est le cas, ils seront heureux d'apprendre que cette version apporte également les améliorations suivantes:

Pour les Linuxiens, une mise à jour à partir de Pip est à faire avec la ligne de commande:

sudo pip install --upgrade Glances

A vos commentaires...

Cet article Glances 1.7.2 et son interface pour Windows est apparu en premier sur Le blog de NicoLargo.

Nagios 4: Résoudre l’erreur “Can’t open /etc/rc.d/init.d/functions”

vendredi 25 octobre 2013 à 13:37

La version 4 de Nagios est enfin sortie et vous avez décidé de l'installer sur votre serveur Debian/Ubuntu. Il y a de forte chance que vous tombiez sur un message d'erreur au lancement du démon Nagios. Nous allons voir dans ce billet comment résoudre ce problème.

Identification du problème

Vous avez le message suivant quand vous lancer Nagios ?

# /etc/init.d/nagios start
/etc/init.d/nagios: 20: .: Can't open /etc/rc.d/init.d/functions

alors ce billet est fait pour vous...

Explication du pourquoi...

Depuis la mise à jour de Nagios vers la version 4.0 (et la version corrective 4.0.1) un bug plutôt gênant peut impacter les machines Debian et Ubuntu. En effet le script de démarrage de Nagios qui se trouve dans le fichier /etc/init.d/nagios fait un appel à un ensemble de fonctions génériques sous /etc/rc.d/init.d/functions. Malheureusement, ce fichier n'existe pas sous ce nom sur les dernières versions de Debian/Ubuntu mais il est disponible sous  /lib/lsb/init-functions.

Comment résoudre le problème étape par étape...

On commence par installer le logiciel daemon qui est utilisé par le script d'installation nouvelle mouture:

sudo apt-get install daemon

Puis on hack le script de démarrage:

sudo sed -i 's/^\.\ \/etc\/rc.d\/init.d\/functions$/\.\ \/lib\/lsb\/init-functions/g' /etc/init.d/nagios
        sudo sed -i 's/status\ /status_of_proc\ /g' /etc/init.d/nagios
        sudo sed -i 's/daemon\ --user=\$user\ \$exec\ -ud\ \$config/daemon\ --user=\$user\ --\ \$exec\ -d\ \$config/g' /etc/init.d/nagios
        sudo sed -i 's/\/var\/lock\/subsys\/\$prog/\/var\/lock\/\$prog/g' /etc/init.d/nagios
        sudo sed -i 's/\/sbin\/service\ nagios\ configtest/\/usr\/sbin\/service\ nagios\ configtest/g' /etc/init.d/nagios
        sudo sed -i 's/\"\ \=\=\ \"/\"\ \=\ \"/g' /etc/init.d/nagios
        sudo sed -i "s/\#\#killproc\ \-p\ \${pidfile\}\ \-d\ 10/killproc\ \-p \${pidfile\}/g" /etc/init.d/nagios
        sudo sed -i "s/runuser/su/g" /etc/init.d/nagios
        sudo sed -i "s/use_precached_objects=\"false\"/&\ndaemonpid=\$(pidof daemon)/" /etc/init.d/nagios
        sudo sed -i "s/killproc\ -p\ \${pidfile}\ -d\ 10\ \$exec/\/sbin\/start-stop-daemon\ --user=\$user\ \$exec\ --stop/g" /etc/init.d/nagios
        sudo sed -i "s/\/sbin\/start-stop-daemon\ --user=\$user\ \$exec\ --stop/&\n\tkill -9 \$daemonpid/" /etc/init.d/nagios

Il ne reste plus qu'à redémarrer Nagios:

sudo service nagios start

 ...Ou utiliser un script qui fait tout pour vous

Pour les gros flemmards que vous êtes, j'ai créé un script qui va vérifier que le problème existe sur votre configuration et le corriger pour vous:

wget https://raw.github.com/nicolargo/nagiosautoinstall/master/hack4nagiosstart.sh
chmod a+x ./hack4nagiosstart.sh
./hack4nagiosstart.sh

Note: J'ai également ajouter l'appel à ce hack dans mes scripts d'installation et de mise à jour automatique de Nagios.

Cet article Nagios 4: Résoudre l’erreur “Can’t open /etc/rc.d/init.d/functions” est apparu en premier sur Le blog de NicoLargo.

Installation d’un serveur proxy HTTP Squid sous Debian

dimanche 20 octobre 2013 à 18:08

Marre de ne pas pouvoir regarder une vidéo  basse résolution sur YouTube alors que votre FAI adoré (Free pour ne pas le citer) annonce un débit sur votre ligne de plusieurs megabits par seconde ?

Il suffit de disposer d'un simple serveur dédié ou virtuel chez un hébergeur (autre que Free bien sûr), d'y installer un proxy HTTP et à vous les vidéos en HD même en pleine soirée.

Pour illustrer ce billet, j'ai donc installé Squid (le plus connu des proxy Web) sur mon serveur OVH qui dispose d'une liaison directe, illimitée et non bridée vers Internet à 100 Mbps.

squid

Installation du serveur Squid

On commence par mettre à jour son système avec la combo:

sudo apt-get update && sudo apt-get upgrade

Ensuite on installe le logiciel Squid qui à le bon goût d'être dans les dépôts officiels de Debian:

sudo apt-get install squid

Puis on arrête le service Squid (qui doit maintenant tourner en tache de fond) en attendant sa configuration:

sudo service squid stop

On édite la configuration qui se trouve centralisée dans le fichier /etc/squid/squid.conf en éditant notamment:

  1. La gestion de l'accès au service uniquement réservé aux adresses IP clairement identifiées (par exemple remplacer AAA.BBB.CCC.DDD par l'adresse IP publique de votre domicile). Vous pouvez ajouter autant de ligne que d'adresse IP.
    acl nicolargo src AAA.BBB.CCC.DDD/32 # Home sweet home
    http_access allow nicolargo
  2. On masque notre adresse IP dans le header HTTP (X-Forwarded-For: unknown)
    forwarded_for off

Note: la liste des options disponibles est décrite sur le site officiel (la version de Squid disponible sous Wheezy est, au moment de l'écriture de ce billet, la branche 2.7) ou par la commande 'man squid.conf'.

Une fois la configuration finalisé en fonction de vos besoins, il suffit de relancer le service:

sudo service squid start

Configuration des machines clientes

Il ne rest plus qu'à configurer son/ses clients (PC, Smarthphone ou tablette) pour utiliser le serveur proxy Squid fraîchement installé.

Avec une configuration par défaut, Squid est en écoute sur le port TCP numéro 3128. Il faut donc, pour utiliser le serveur proxy Squid configurer l'adresse IP de votre machine hébergeant Squid et le port 3128.

Si vous utilisez Chromium comme navigateur Web, je vous conseille l'installation du plugin TunnelSwitch (lien vers le store) qui va vous permettre de passer rapidement (en un seul click de souris) entre un lien direct (sans proxy) et indirect (avec proxy).

capture_133

 

capture_134

Cet article Installation d’un serveur proxy HTTP Squid sous Debian est apparu en premier sur Le blog de NicoLargo.