PROJET AUTOBLOG


Nicolargo

source: Nicolargo

⇐ retour index

Mise à jour

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

Glances 1.5.2: Les nouveautés

dimanche 30 décembre 2012 à 19:15

Il y a quelques jours, j'ai mis en ligne la dernière version stable de Glances, mon outil de supervision système, dont nous allons, dans ce billet, découvrir les nouveautés de cette version 1.5.2.

Screenshots

On commence par l’aperçu général de Glances 1.5.2 dans une console (80x24):

screenshot-console

et dans un terminal (terminator):

screenshot-wide

Les nouveautés

CPU

J'ai repris la zone de statistique CPU pour afficher les attributs suivants: IDLE, IOWait et IRQ. Ces informations sont affichés si l'espace est disponible.

cpu-wide

En cliquant sur la touche '1', Glances va switcher vers l'affichage des statistiques CPU par "core".

percpu

Mémoire

Grâce au travail d'Alessio Sergi, les statistiques concernant la mémoire sont agrémentés, si la place sur l'écran est disponible, des informations suivantes:

Processus

Egalement avec la particition d'Alessio, nous avons repris la zone de processus qui affiche maintenant le résumé sur une seule ligne ainsi qu'une optimisation de l'espace.

capture_082

Sensors

Suite à une demande récurrente, j'ai également ajouté un module optionnel pour afficher les températures remontées par les capteurs. Pour cela Glances utilise la librairie Python nommé PySensors qu'il faut installer sur son système et qui va chercher les informations via LM-Sensors (qui doit bien sûr être installé et configuré sur votre système). A ma connaissance, seul les OS Linux sont compatibles.

Pour utiliser ce module, on doit commencer par installer PySensors:

sudo pip install pysensors

Puis on lance Glances avec l'option -e:

glances -e

Et voilà le résultat sur une machine avec 4 capteurs:

capture_083

Amélioration de l'interface RPC

L'interface RPC/JSON est la base du mode client serveur permettant de surveiller à distance une machine. Par exemple pour surveiller depuis la machine B l'état du système de la machine A, il faut:

A> glances -s

Puis

B> glances -c <@IP ou Nom de A>

On peut facilement voir que l'on regarde les statistiques d'une machine distante grâce au message en bas à gauche de l'écran:

capture_084

La liste exhaustive des méthodes RPC disponible est:

getSystem
{"linux_distro": "debian 6.0.6", "platform": "64bit", "os_name": "Linux", "hostname": "frodo", "os_version": "2.6.32-5-amd64"}
getCore
4
getCpu
{"iowait": 0.32641336989226583, "system": 0.26113069591476262, "idle": 97.401749576581707, "user": 1.9845932889502962, "irq": 0.0, "nice": 0.0}
getLoad
{"min1": 0.0, "min5": 0.059999999999999998, "min15": 0.01}
getMem
{"inactive": 1631744000, "cached": 1974865920, "used": 1384603648, "buffers": 585797632, "active": 1932537856, "total": 4080373760, "percent": 33.899999999999999, "free": 2695770112}
getMemSwap
{"total": 1069277184, "percent": 12.800000000000001, "free": 932536320, "used": 136740864}
getSensors
[]
getNetwork
[{"interface_name": "eth0", "rx": 169437, "tx": 2082677}, {"interface_name": "eth1", "rx": 0, "tx": 0}, {"interface_name": "lo", "rx": 385562, "tx": 385562}]
getDiskIO
[{"read_bytes": 0, "write_bytes": 0, "disk_name": "sda1"}, {"read_bytes": 24576, "write_bytes": 458752, "disk_name": "sda2"}, {"read_bytes": 0, "write_bytes": 0, "disk_name": "sda3"}]
getFs
[{"mnt_point": "/", "used": 22333382656, "device_name": "/dev/sda2", "avail": 910442115072, "fs_type": "ext4", "size": 982693486592}, {"mnt_point": "/boot", "used": 24039424, "device_name": "/dev/sda1", "avail": 164789248, "fs_type": "ext4", "size": 199108608}, {"mnt_point": "/dev", "used": 94208, "device_name": "udev", "avail": 2034892800, "fs_type": "tmpfs", "size": 2034987008}, {"mnt_point": "/lib/init/rw", "used": 0, "device_name": "tmpfs", "avail": 2040184832, "fs_type": "tmpfs", "size": 2040184832}]
getProcessCount
{"running": 1, "total": 143, "sleeping": 142}
getNow
"2012-12-30 12:13:45"

Installation et mise à jour

Le mieux est de suivre la procédure adaptée à votre système en consultant le site officiel de Glances ou vous pourrez également consulter la documentation complète.

Contributeurs ? J'ai besoin de vous !

En plus de toutes les remontées de bug / demandes d'améliorations que vous pouvez effectué via cette interface Web sur le GitHub officiel du projet, j'aurai également besoin de contributeurs pour:

Il ne me reste plus qu'à vous souhaitez une bonne fin d'année 2012 !

See you soon on the moon.

Cet article Glances 1.5.2: Les nouveautés est apparu en premier sur Le blog de NicoLargo.

Musique: Mon TOP 2012

dimanche 23 décembre 2012 à 18:30

Il est temps, en cette fin d'année, de partager avec vous mon TOP musique 2012. Si vous avez lu mon billet sur la gestion de ma bibliothèque musicale, vous savez que j'utilise deux playlists sur mon compte Spotify. Dans la première (Coups d'oreille 2012), je dépose en vrac les albums que je trouve intéressants ou que certains sites/magazines conseillent puis j'effectue une deuxième sélection après écoute. Dans la seconde (TOP 2012), je dépose une sélection des titres les plus représentatifs de l'année écoulée.

C'est cette liste que vous pouvez écouter ici:

Comme vous pouvez le voir, j'ai des influences très pop-rock et cette année a été très riche en nouveautés avec notamment des coups de coeur comme Alt-J, Revolver ou Woodkid, avec, pou ces dernier un clip à tomber par terre.

Woodkid - Iron from WOODKID on Vimeo.

Et vous , blogolecteurs, quelles sont vos découvertes de cette année ?

Partagez vos playlist ! La musique est faite pour ça.

Cet article Musique: Mon TOP 2012 est apparu en premier sur Le blog de NicoLargo.

Gérer son compte Amazon S3 en ligne de commande

lundi 17 décembre 2012 à 10:54

Il y a quelques jours, un billet sur le blog officiel de GitHub a particulièrement attiré mon attention. Pour faire court, GitHub vient de supprimer le "Tab Download" qui proposait un moyen simple d’héberger le téléchargement des sources/binaires en dehors du gestion de configurationen version. J'utilisais cette solution pour héberger les archives des différentes versions de Glances  que j'utilisais dans mon script d'installation setup.py.

capture_057

J'ai donc du trouver une solution alternative pour héberger ces fichiers. Trois solutions se présentaient à moi:

C'est donc sur cette dernière solution que je suis parti.

Amazon S3 ? C'est quoi donc ?

C'est un service dans "les nuages" permettant de stocker des objets (répertoires, fichiers) dans des buckets (librairies). On peut ensuite accéder à nos objet via une simple URL (par exemple: https://s3.amazonaws.com/glances/glances-1.5.1.tar.gz).

Il est payant mais relativement peu coûteux pour l’hébergement de petits fichiers (voir la grille tarifaire ici et le détail de l'offre ).

J'ai donc commencé par créer un compte puis par tester le stockage de mes premiers fichiers à partir de la console en ligne proposée par Amazon.

capture_058

Comme la plupart des interfaces de ce type, elle est très simple à utiliser mais montre ces limites quand on souhaite automatiser les taches comme par exemple publier par script un nouveau fichier dans une librairie.

s3cmd, le couteau suisse de Amazon S3

Heureusement, la ligne de commande vient à notre secours grâce au logiciel open-source s3cmd.

On commence par installer s3cmd sur notre système GNU/Linux (Debian / Ubuntu):

sudo apt-get install s3cmd

Puis on effectue la configuration initiale qui va permettre de donner les autorisation nécessaire à votre machine pour accéder à votre espace S3. Pour cela, nous avons besoins des clés publique (1) et privé (2) de notre compte Amazon AWS (via cette page):

capture_055

... de saisir la commande suivante:

s3cmd --configure

et de se laisser guider...

Une fois cette commande terminé, vous devriez pouvoir accéder à votre compte Amazon S3 depuis la ligne de commande de votre machine.

Guide d'utilisation de s3cmd

Créer un bucket (mb)

Un bucket est le conteneur de plus haut niveau dans la terminologie d'Amazon S3. On peut le voir comme un disque dur dédié ou comme une librairie. Dans mon cas précis, j'ai donc commencé par créer le bucket glances en utilisant la commande suivante:

s3cmd mb s3://glances

Affiche la liste de vos buckets

On peut vérifier que l'opération c'est bien passée en affichant la liste des buckets disponibles:

s3cmd ls
2012-12-14 14:35 s3://glances

Ajouter un nouveau fichier (objet) dans un bucket

On peut ensuite ajouter un objet de type fichier dans ce bucket.

Par défaut, un objet est privé (donc seulement accessible avec les clés privée et publique de votre compte).

 

s3cmd put glances-1.5.1.tar.gz s3://glances/glances-1.5.1.tar.gz

Pour créer le même objet mais de manière publique (donc accessible depuis une URL), on doit saisir:

s3cmd put --acl-public --guess-mime-type glances-1.5.1.tar.gz s3://glances/glances-1.5.1.tar.gz

Afficher le contenu d'un bucket

Pour afficher le contenu d'un bucket:

s3cmd ls s3://glances
2012-12-14 14:36 647418 s3://glances/glances-1.5.1.tar.gz

Comment télécharger ces objets ?

Pour télécharger un fichier depuis un bucket, on peut soit directement utiliser son URL publique (pour les objets publics) : https://s3.amazonaws.com/glances/glances-1.5.1.tar.gz

ou en ligne de commande (pour tous les objets):

s3cmd get s3://glances/glances-1.5.1.tar.gz glances-1.5.1.tar.gz

Supprimer un fichier dans un bucket

On doit saisir la ligne de commande:

s3cmd del s3://glances/glances-1.5.1.tar.gz

Supprimer un bucket

Un bucket doit être vide avant d'être supprimé par la commande:

s3cmd rb s3://glances

Synchronisation

Si vous souhaitez, avec s3cmd, gérer des structures de données plus complexes sur votre espace Amazon S3, il est également possible d'utiliser les fonctions de synchronisation (voir la documentation ici).

Mot de fin

Pour finir j'ai donc modifié mon script de génération de nouvelle version de Glances pour automatiser l'upload vers Amazon S3 et aussi changé mon script setup.py de cette façon:

capture_060

Et vous ? Que pensez-vous d'Amazon S3 ? Utlisateur ? Avec s3cmd ?

Cet article Gérer son compte Amazon S3 en ligne de commande est apparu en premier sur Le blog de NicoLargo.

Ubuntu 12.10 Quantal – Script de post install

samedi 8 décembre 2012 à 11:13

Je viens de mettre à jour mon dépôt GitHub des scripts de post installation d'Ubuntu pour prendre en compte le version 12.10 (Quantal). Pour rappel, ces scripts sont un moyen simple et modulaire de faire automatiquement un ensemble d'actions après l'installation standard du système d'exploitation.

Ce script fonctionne avec un fichier de configuration que vous pouvez adapter à vos besoins en suivant la documentation. Trois fichiers de configurations sont disponibles sur le GitHub:

Pour lancer le script avec le fichier de configuration pour Gnome 3, il suffit de saisir les lignes de commandes suivantes:

wget https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.10-postinstall.py
chmod a+x ubuntu-12.10-postinstall.py
sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-gnomeshell-postinstall.cfg

L'objectif principal de ce script est bien sur de s'adapter à vous besoins. Je vous conseille donc de récupérer un fichier de configuration et de le modifier à votre convenance. Il suffira ensuite de lancer le script en passant en paramètre votre fichier de configuration. Vous pouvez pour vous aidez dans cette tache lire le précédant billet sur le sujet qui reste valable pour la nouvelle version du script.

Cet article Ubuntu 12.10 Quantal – Script de post install est apparu en premier sur Le blog de NicoLargo.

CheckGlances ou la rencontre de Glances et de Nagios

mercredi 5 décembre 2012 à 09:30

Ce billet a comme objectif de présenter mon dernier développement qui est un plugin Nagios|Shinken pour récupérer des informations systèmes sur des machines hôtes faisant tourner Glances.

Je vous présente donc CheckGlances.py.

Quoi ?

CheckGlances est un plugin compatible avec Nagios et ses forks (Icinga, Centreon...) / ré-implémentations (Shinken). Il respecte au maximum les spécifications données par Nagios.

Développé en Python, il permet d'aller récupérer les statistiques d'un serveur Glances (c'est à dire un glances lancée avec l'option -s) via un lien XML RCP sur HTTP.

Pourquoi ?

Le principal avantage de cette solution est que Glances se base sur une librairie Python nommé PsUtil (pour la récupération des statistiques) et qui a le bon goût d'être multi-plateforme. On a donc un plugin permettant de manière unique de récupérer les statistiques sur des hôtes GNU/Linux, BSD, Mac OS ou Windows.

Un autre avantage est l'ouverture de ce système à des statistiques plus fines. Bien que cette première version se limite à CPU, charge, mémoire et swap. CheckGlances, pourra à terme remonter vers votre serveur de supervision toutes les données traitées par Glances (débit des interfaces réseaux, disk IO, processus, température...).

Comment ?

Je ne vais pas copier/coller la documentation qui se trouve sur le site officiel mais l'installation se fait comme pour n'importe quel autre plugin et dépend donc de votre serveur de supervision et de sa configuration.

Il est également possible de tester le plugin en ligne de commande.

Voici quelques exemples (en partant sur Glances server est lancé sur votre machine locale):

CPU

./checkglances.py -H localhost -s cpu
CPU consumption: 2.96% | 'percent'=2.96 'kernel'=0.73 'iowait'=0.20 'idle'=97.04 'user'=1.89 'irq'=0.00 'nice'=0.00

 LOAD

./checkglances.py -H localhost -s load
LOAD last 5 minutes: 0.22% | 'min1'=0.13 'min5'=0.22 'min15'=0.29

MEM

./checkglances.py -H localhost -s mem
MEM consumption: 59.50% | 'used'=3411509248.00 'cache'=1071792128.00 'total'=3934547968.00 'percent'=59.50 'free'=523038720.00

SWAP 

./checkglances.py -H localhost -s swap
SWAP consumption: 3.70% | 'used'=150159360.00 'total'=4080005120.00 'percent'=3.70 'free'=3929845760.00

Le futur...

Il reste encore pas mal de travail du coté de Glances pour proposer une interface XML RCP industrialisable. En effet, outre le fait que seules quelques statistiques sont remontées, il n'y a pour l'instant pas de sécurité. C'est donc une solution qui est utilisable sur un réseau local mais pas dans une architecture Internet. Mais promis, l'authentification client / server est prévue dans la prochaine version de Glances.

Comme toujours, je suis preneur de toutes les remarques, questions et retour de test sur ce nouvel outil.

 

Cet article CheckGlances ou la rencontre de Glances et de Nagios est apparu en premier sur Le blog de NicoLargo.