Aller au contenu

Surveille tes serveurs avec Glances

Mise à jour :

Surveiller efficacement un système, c’est souvent jongler entre plusieurs outils pour suivre l’état du CPU, de la mémoire, du réseau ou encore des disques. C’est là que Glances se distingue : un outil tout-en-un, multiplateforme, capable de fournir une vue d’ensemble claire et en temps réel des ressources de votre machine.

Glances

Présentation de Glances

Glances est un outil de surveillance système en temps réel écrit en Python. Il a été créé par Nicolas Hennion, un ingénieur français connu sous le pseudonyme Nicolargo. Ce projet open source vise à fournir une vision synthétique de l’état d’un système en un coup d’œil, d’où son nom : Glances, pour “coups d’œil”.

Contrairement à des outils classiques comme top ou htop, Glances ne se contente pas d’afficher l’usage CPU. Il rassemble une vue unifiée de nombreuses métriques : mémoire, réseau, disques, température, processus, et même conteneurs Docker si besoin.

Son interface en ligne de commande est particulièrement claire et bien organisée. Mais ce n’est pas tout : Glances peut aussi fonctionner en mode serveur, et propose alors une interface Web accessible depuis un navigateur, très pratique pour surveiller plusieurs machines à distance.

Voici quelques atouts qui rendent Glances unique :

  • Multiplateforme : fonctionne sous Linux, macOS, Windows, BSD et même Android.
  • Extensible : avec des plugins et un système d’alertes configurables.
  • Polyvalent : fonctionne en mode autonome, client/serveur, ou via API REST.
  • Compatible exportation : permet l’envoi des métriques vers InfluxDB, Prometheus, Elasticsearch

En somme, que ce soit pour du monitoring local rapide ou pour intégrer une supervision dans un environnement DevOps, Glances s’adapte parfaitement aux besoins des sysadmins modernes.

Fonctionnalités principales

  • Surveillance des ressources système :
    • CPU : utilisation par cœur, charge moyenne (load average)
    • Mémoire : RAM utilisée, mémoire disponible, swap
    • Disques : espace utilisé par partition, I/O en lecture/écriture
    • Réseau : débit montant et descendant, interfaces actives
  • Gestion des processus :
    • Affichage dynamique des processus les plus consommateurs
    • Tri possible par :
      • CPU (c)
      • Mémoire (m)
      • I/O (i)
    • Informations détaillées : PID, utilisateur, nom du processus
  • Informations système supplémentaires :
    • Uptime du système
    • Liste des utilisateurs connectés
    • Capteurs matériels (si disponibles) :
      • Températures CPU/GPU
      • Vitesse des ventilateurs
      • Tensions d’alimentation
  • Support des conteneurs :
    • Détection automatique des conteneurs Docker ou LXC
    • Affichage :
      • du nombre de conteneurs
      • de leurs noms et statuts
      • des ressources consommées par chacun
  • Alertes et seuils personnalisables :
    • Système d’alerte par code couleur :
      • Vert (normal)
      • Orange (avertissement)
      • Rouge (alerte)
    • Détection automatique des surcharges
    • Configuration possible dans le fichier glances.conf
  • Interface Web intégrée :
    • Accessible via le port 61208 en lançant glances -w
    • Vue d’ensemble complète dans un navigateur Web
    • Surveillance à distance sans passer par SSH
  • Exportation des données :
    • Formats supportés :
      • CSV
      • JSON
    • Intégration possible avec :
      • InfluxDB
      • Cassandra
      • Prometheus
      • Elasticsearch

Avec toutes ces fonctionnalités, Glances centralise toutes les données essentielles pour suivre vos systèmes de manière claire, réactive et efficace.

Installation de Glances

Pour installer Glances, plusieurs options s’offrent à vous. Selon votre système ou votre usage, vous pouvez le déployer via pipx, Docker, ou encore les gestionnaires de paquets classiques. Mais personnellement, je préfère utiliser pipx, et je vais expliquer pourquoi.

Pourquoi utiliser pipx ?

pipx est un outil qui permet d’installer des applications Python dans des environnements isolés, sans polluer l’environnement système global. Contrairement à pip, il évite les conflits de dépendances et permet de garder chaque application proprement séparée.

Autre avantage : je peux exécuter directement un outil comme Glances sans avoir besoin d’activer un environnement virtuel manuellement.

Pour installer pipx, si ce n’est pas encore fait :

Terminal window
python3 -m pip install --user pipx
python3 -m pipx ensurepath

Installation avec pipx

Voici la commande pour installer Glances avec toutes ses fonctionnalités :

Terminal window
pipx install 'glances[all]'

Cette option all active :

  • la surveillance réseau avancée
  • le support des capteurs matériels
  • les intégrations avec des bases de données comme InfluxDB, Cassandra ou Prometheus

Une fois installé, je peux lancer Glances directement avec :

Terminal window
glances

Installation avec Homebrew

Sous macOS, on peut aussi utiliser Homebrew pour installer Glances :

Terminal window
brew install glances

Installation via les gestionnaires de paquets

Il est aussi possible d’installer Glances via les dépôts système, mais ces versions peuvent être moins à jour :

  • Debian/Ubuntu :

    Terminal window
    sudo apt install glances
  • Arch Linux :

    Terminal window
    sudo pacman -S glances

Utilisation de Glances

Une fois Glances installé, vous allez pouvoir l’utiliser de différentes façons selon vos besoins : en local, à distance, via une interface Web ou même en mode client/serveur. L’outil est souple, intuitif, et ne nécessite que quelques commandes pour être opérationnel.

Lancer Glances en local

Pour commencer, la commande de base à exécuter est simplement :

Terminal window
glances

Cela ouvre une interface en mode texte dans votre terminal, avec une vue en temps réel de l’utilisation des ressources de votre machine : CPU, RAM, réseau, disques, processus, etc.

Vous pouvez naviguer dans l’interface avec les touches clavier. Par exemple :

  • q pour quitter
  • h pour afficher l’aide
  • m pour trier les processus par mémoire
  • c pour trier par CPU

Utilisation en mode Web

Vous souhaitez accéder à votre supervision depuis un navigateur ? C’est possible grâce au mode Web intégré à Glances :

Terminal window
glances -w

Par défaut, l’interface Web est disponible sur le port 61208. Vous pouvez donc y accéder depuis votre navigateur à cette adresse : http://localhost:61208.

Et si vous exécutez Glances sur un serveur distant, remplacez localhost par son adresse IP. Ce mode est très utile pour surveiller une machine à distance sans passer par SSH.

Mode client/serveur

Si vous avez plusieurs machines à surveiller, Glances peut fonctionner en mode serveur sur les hôtes distants, et en mode client sur votre poste.

Sur le serveur distant :

Terminal window
glances -s

Sur la machine cliente :

Terminal window
glances -c <ip_du_serveur>

Cela vous permet de centraliser la supervision de plusieurs systèmes dans une interface unique, toujours en ligne de commande.

Mode découverte automatique

Vous pouvez aussi lancer Glances avec la fonction de découverte automatique des machines sur le réseau :

Terminal window
glances --browser

Ce mode ouvre une interface qui détecte les instances Glances actives sur votre réseau local. Pratique pour retrouver rapidement les hôtes disponibles sans connaître leurs adresses IP précises.

Configuration de Glances

Glances fonctionne sans configuration par défaut, mais pour exploiter pleinement ses fonctionnalités, vous pouvez personnaliser son comportement via un fichier dédié. Voici comment procéder.

Le fichier de configuration peut être placé à différents endroits selon votre système d’exploitation :

  • Linux / SunOS : ~/.config/glances/, /etc/glances/, /usr/share/doc/glances/
  • BSD : ~/.config/glances/, /usr/local/etc/glances/, /usr/share/doc/glances/
  • macOS : ~/.config/glances/, ~/Library/Application Support/glances/, /usr/local/etc/glances/, /usr/share/doc/glances/
  • Windows : %APPDATA%\glances\glances.conf

Notez que les options spécifiques à l’utilisateur ont priorité sur les options système, et les options en ligne de commande prévalent sur les deux précédentes.

Le fichier utilise une syntaxe de type INI, avec des sections définies entre crochets. Voici quelques sections courantes :

  • [global] : Paramètres généraux

    [global]
    refresh=2
    check_update=true
    history_size=1200
    • refresh : Intervalle de rafraîchissement en secondes (minimum 2)
    • check_update : Vérifie les mises à jour disponibles
    • history_size : Nombre maximal de valeurs historiques stockées
  • [outputs] : Interface utilisateur

    [outputs]
    separator=True
    max_processes_display=25
    • separator : Affiche un séparateur dans l’interface
    • max_processes_display : Nombre maximal de processus affichés dans l’interface Web
  • [cpu] : Plugin CPU

    [cpu]
    disable=False
    refresh=3
    user_warning=70
    user_critical=90
    • disable : Désactive le plugin si défini sur True
    • refresh : Intervalle de rafraîchissement spécifique au plugin
    • user_warning / user_critical : Seuils d’alerte pour l’utilisation CPU par l’utilisateur

Pour plus d’informations et des exemples détaillés, consultez la documentation officielle de Glances : Configuration — Glances documentation

Intégration de Glances avec Prometheus

Glances peut exporter ses métriques vers Prometheus grâce à un exporter natif intégré. Cela permet de centraliser la supervision de vos machines et de visualiser les données via des outils comme Grafana.

Pour activer l’exportation des métriques vers Prometheus, vous devez configurer Glances et le lancer avec l’option appropriée. Voici les étapes à suivre :

  1. Modifier le fichier de configuration glances.conf en ajoutant la section [prometheus] :
[prometheus]
host=localhost
port=9091
prefix=glances
labels=src:glance
  1. Lancer Glances avec l’option Prometheus
Terminal window
glances --export prometheu

L’exporter sera accessible à l’adresse http://<host>:<port>, par exemple http://localhost:9091

  1. Configurer Prometheus pour collecter les métriques : Pour que Prometheus collecte les métriques exposées par Glances, ajoutez une configuration de scrape dans le fichier prometheus.yml
scrape_configs:
- job_name: 'glances_exporter'
scrape_interval: 5s
static_configs:
- targets: ['<IP>:9091']

Pour plus d’informations, consultez la documentation officielle de Glances sur l’intégration avec Prometheus.

Conclusion

Glances est un outil de surveillance système puissant et polyvalent, idéal pour les admins sys. Personnellement, je l’utilise régulièrement pour garder un œil sur l’état de mes serveurs et de mes machines locales. Ses intégrations avec des outils comme Prometheus et InfluxDB en font un choix de prédilection pour ceux qui cherchent à centraliser simplement la supervision de leurs systèmes.

Plus d’infos