Les nouveautés de Glances 2.3

Date: 2/02/2015 | Catégories: Open-source,Systeme | Tags: ,

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 la lecture de la documentation officielle.

Attachez vos ceintures, c'est parti pour le tour d'horizon...

Le plugin Docker

Ce plugin est développé autour de la librairie Docker-Py 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 'docker ps'. 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.

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:

Sélection_294

Le plugin Docker est également dans l'interface Web de Glances.

Le plugin RAID

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 PyMdstat que j'ai créé pour l'occasion et qui est utilisable dans d'autres applications.

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:

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:

Enfin, avec un contrôleur RAID 5 désactivé:

 

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.

Modules d'exports vers Statsd, InfluxDB et CSV

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.

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:

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 la fameuse librairie Panda:

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 Statsd et InfluxDB. Par exemple, pour exporter les statistiques vers un serveur InfluxDB, il faut dans un premier temps éditer le fichier de configuration de Glances.

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.

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:

On lance ensuite Glances avec l'option:

Et magie de la technologie moderne:

Déclenchement d'actions sur alerte

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:

Encore mieux, Glances supporte les mustaches {{...}} et permet donc d'utiliser les variables disponibles dans les API 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:

Note: cette fonction se base sur la librairie Pystache.

Support des mots de passe dans le mode browser

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.

Sélection_295

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.

Amélioration de l'interface Web

Enfin pour finir en beauté ce panorama des nouveautés de cette version 2.3 je voulais signaler le remarquable travail effectué par Nicolas Hart sur la refonte de l'interface Web avec notamment un optimisation de l'affichage ("responsive design"):

glances-responsive-webdesign

Nicolas travaille en ce moment avec Sylvain Mouquet 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).

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.

  • Du super boulot encore une fois, ça pardonne largement le peu d’activité du blog (ou sa refonte graphique qui semble abandonnée ?)

    • C’est clair que le boulot généré par Glances n’aide pas à faire vivre ce blog :). Mais il n’est pas abandonné pour autant. J’ai beaucoup d’idées mais trop peu de temps 🙂

      Donc je ne parle même pas de la refonte du design… Je vais sûrement acheter un thème tout fait… (si vous avez des pistes je suis preneur).

      • HLFH

        Thème WordPress X de theme.co. Disponible via Themeforest

  • Jérémy D

    Super boulot !!! Le module Puppet ne permet pas de mettre a jour Glances, il gère uniquement le déploiement la première fois. Serait-il possible d’améliorer ce module afin qu’il puisse mettre a jour automatiquement Glances ? (J’aurais du talent en Puppet je l’aurais fais, j’y travail :p)

    • Rémi V

      Bonsoir, je suis le créateur du module Puppet. Malheureusement je ne l’utilise plus, donc je ne le maintiens plus trop… Je vais voir cependant ce que je peux faire pour gérer les updates, mais sans garanties.

      Si quelqu’un est motivé pour reprendre le travail, vous pouvez le forker sur github 😉

      • Jérémy D

        Glances étant maintenant implanté sur toute mon infra, une fois mieux formé en Puppet j’essayerais de prendre le relais 😉

        L’objectif serait d’avoir :

        une commande si le module détecte que glances est déjà installé > pip install –upgrade Glances
        une commande si le module détecte que glances n’est pas installé > curl -L http://bit.ly/glances | /bin/bash

        Ca doit pas être la meilleure solution mais surement la plus simple a mettre en place ^^

  • slamp

    Felicitations ! Tres utile l’ajout du plugin docker

  • Pingback: Glances 2.3 arrive avec pleins de nouveautés | Le Libriste()

  • Un p’tit bug dans linux mag … je cherchais désespérement la 2.4 … , j’était resté à la 1.3
    Beau travail merci

  • Baraise Valentin

    Super outil Nicoloargo et très bonne idée l’export en InfluxDB. Mais je voulais savoir, les stats des dockers sont exportés vers la base ou non ?

    Car j’ai pas l’impression que ce soit le cas.. En tout cas si c’est le cas il y aurait un bout de doc sur le sujet?

    Merci d’avance !

    • Salut Valentin, actuellement, dans la version actuelle et dans la future version 2.4 qui ne devrait pas tarder à sortir, seule les statistiques multi plate-forme sont exportées à savoir:

      [‘cpu’,
      ‘percpu’,
      ‘load’,
      ‘mem’,
      ‘memswap’,
      ‘network’,
      ‘diskio’,
      ‘fs’,
      ‘processcount’,
      ‘ip’,
      ‘system’,
      ‘uptime’]

      Mais l’idée d’exporter les plugins spécifiques est bonne. Je rajoute cela dans la roadmap de la version 2.5.

  • Sylvio Richard

    Bonjour Nicolargo,

    J’avais installé Glances sous Mac OS X, et j’aimerai recevoir toute les historiques et afficher sous forme d’une graphe mais j’y n’arrive pas. Vous avez une solution? c’est Urgent

  • Pingback: Glances 2.3 arrive avec pleins de nouveautés | Le-libriste()

  • Pingback: Glances 2.3 arrive avec pleins de nouveautés | Le Libriste()