Aller au contenu
Outils medium

Glances : surveiller votre système en temps réel

20 min de lecture

Glances affiche en temps réel l'état complet de votre système : CPU, mémoire, disques, réseau, processus et conteneurs Docker, le tout dans une seule interface. Contrairement à top ou htop qui se limitent aux processus, Glances centralise toutes les métriques système et peut les exporter vers Prometheus ou InfluxDB. Ce guide vous apprend à l'installer, le configurer et l'utiliser pour surveiller vos serveurs efficacement.

  • Installer Glances sur Linux, macOS ou Windows
  • Utiliser les 4 modes : local, web, client/serveur et fetch
  • Configurer les alertes et personnaliser l'affichage
  • Exporter les métriques vers Prometheus ou InfluxDB
  • Surveiller vos conteneurs Docker et Podman

Diagnostiquer un serveur lent avec les outils classiques impose d'ouvrir plusieurs terminaux. top et htop ne montrent que les processus ; l'état du réseau demande iftop, les entrées/sorties disque iotop, les températures sensors. Chacun a son propre intervalle de rafraîchissement, ce qui rend la corrélation difficile : vous ne savez pas si le pic CPU et le pic disque sont simultanés. Glances interroge toutes ces sources dans une boucle unique et les affiche côte à côte, donc sur la même base de temps.

OutilCPURAMProcessusRéseauDisquesConteneursAlertes
top
htop
Glances

Glances collecte les données depuis plusieurs sources (psutil, Docker, capteurs matériels) et les expose via différentes interfaces :

Architecture Glances : sources de données, core et interfaces de sortie

Glances propose quatre façons de surveiller vos systèmes selon vos besoins :

Les 4 modes de Glances : local, web, client/serveur et fetch

ModeCommandeUsage
LocalglancesSurveillance rapide en terminal
Webglances -wAccès navigateur, surveillance à distance
Client/Serveurglances -s / glances -c <ip>Centraliser plusieurs machines
Fetchglances --fetchSnapshot instantané style neofetch

Glances est écrit en Python. La méthode recommandée est d'utiliser pipx ou mise pour l'isoler des dépendances système.

pipx installe les applications Python dans des environnements isolés :

Fenêtre de terminal
# Installer pipx si nécessaire
python3 -m pip install --user pipx
python3 -m pipx ensurepath
# Installer Glances avec toutes les fonctionnalités
pipx install 'glances[all]'

L'option [all] active le support réseau avancé, les capteurs matériels et les intégrations (Prometheus, InfluxDB, etc.).

Le mode par défaut affiche une interface TUI (Text User Interface) complète :

Fenêtre de terminal
glances

L'interface affiche en temps réel :

  • En haut : informations système, uptime, charge CPU
  • Au centre : mémoire, swap, réseau, disques I/O
  • En bas : liste des processus triés par consommation

Glances est sensible à la casse : d masque les I/O disque, D masque les conteneurs. Les touches se répartissent en deux familles. Celles qui trient la liste des processus (c, m, i, p, a) et celles qui masquent ou affichent un bloc de l'interface (d, n, s, 1, 2). Masquer les blocs inutiles est le premier réflexe sur un terminal étroit, où Glances tronque l'affichage sans prévenir. Pour filtrer la liste des processus, la touche n'est pas / mais la touche Entrée, qui ouvre le champ de saisie du motif ; E efface ensuite le filtre.

ToucheAction
hAfficher l'aide
qQuitter
cTrier par CPU
mTrier par mémoire
iTrier par I/O
pTrier par nom
aMode automatique (tri dynamique)
dAfficher/masquer les I/O disque
nAfficher/masquer le réseau
sAfficher/masquer les capteurs
2Désactiver la sidebar gauche
1Afficher CPU par cœur
/Nom des processus : court ou complet

Le mode --fetch (nouveauté v4.4) affiche un résumé style neofetch, idéal pour un diagnostic rapide ou l'intégration dans des scripts :

Fenêtre de terminal
glances --fetch
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ master1 | Uptime: 3 days, 2:57:34
⚙️ Ubuntu 24.04 64bit / Linux 6.8.0-90-generic
💡 LOAD 0.18/min1 | 0.28/min5 | 0.43/min15
⚡ CPU ■□□□□□□□□□□□□□□□□□ 6.3% of 16 cores
🧠 MEM ■■□□□□□□□□□□□□□□□□ 12.8% (6.01G / 46.8G)
💾 DISK ■■■■■■■■■■□□□□□□□□ 56.1% (158G / 295G) for /
📡 NET ↓ 16Kb/s ↑ 13Kb/s for enp2s0
🔥 TOP PROCESS by CPU
1️⃣ node ⚡ 0.0% CPU 🧠 1.67GB MEM
2️⃣ node ⚡ 0.0% CPU 🧠 766MB MEM
3️⃣ node ⚡ 0.0% CPU 🧠 400MB MEM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Le mode web lance un serveur HTTP avec une interface accessible depuis n'importe quel navigateur :

Fenêtre de terminal
glances -w
Glances Web Server started on http://0.0.0.0:61208/

Ouvrez ensuite http://localhost:61208 dans votre navigateur.

Pour protéger l'accès :

Fenêtre de terminal
glances -w --username --password

Glances vous demandera de créer un mot de passe au premier lancement.

Pour surveiller plusieurs machines depuis un poste central :

  1. Sur chaque serveur à surveiller, lancez Glances en mode serveur :

    Fenêtre de terminal
    glances -s
    Glances XML-RPC server is running on 0.0.0.0:61209
  2. Depuis votre poste, connectez-vous en mode client :

    Fenêtre de terminal
    glances -c 192.168.1.100

    L'interface affiche les métriques du serveur distant.

  3. Pour découvrir les serveurs automatiquement sur le réseau :

    Fenêtre de terminal
    glances --browser

    Une liste des instances Glances détectées s'affiche.

Glances peut exporter ses données vers différents backends pour du monitoring long terme.

Exportez les métriques dans un fichier CSV :

Fenêtre de terminal
glances --export csv --export-csv-file /tmp/metrics.csv --stop-after 10

Le fichier contient toutes les métriques avec un timestamp :

timestamp,cpu.total,cpu.user,cpu.system,mem.percent,mem.used,...
2026-01-26 10:01:54,2.0,1.2,0.8,12.8,6437355520,...

L'option --stdout sert à extraire une métrique précise sans lancer l'interface, par exemple depuis un script de supervision ou un playbook. La syntaxe accepte deux niveaux : cpu renvoie tout le plugin, cpu.total n'en renvoie qu'un attribut. Combinez toujours avec --stop-after, sinon la commande tourne indéfiniment et bloque votre script. Notez que la sortie de --stdout est du dictionnaire Python, pas du JSON valide : pour du JSON parsable, utilisez --stdout-json.

Fenêtre de terminal
glances --stdout cpu,mem --stop-after 2
cpu: {'total': 3.0, 'user': 4.3, 'system': 0.9, 'idle': 93.9, ...}
mem: {'total': 50282524672, 'percent': 12.7, 'used': 6405283840, ...}

Format CSV pour un traitement simplifié :

Fenêtre de terminal
glances --stdout-csv cpu.total,mem.percent --stop-after 3
cpu.total,mem.percent
2.0,12.8
1.6,12.8

Glances expose un endpoint compatible Prometheus :

  1. Créez le fichier de configuration ~/.config/glances/glances.conf :

    [prometheus]
    host=0.0.0.0
    port=9091
    prefix=glances
    labels=instance:myserver
  2. Lancez Glances avec l'export Prometheus :

    Fenêtre de terminal
    glances --export prometheus
  3. Configurez Prometheus pour scraper les métriques :

    prometheus.yml
    scrape_configs:
    - job_name: 'glances'
    scrape_interval: 15s
    static_configs:
    - targets: ['localhost:9091']

Les métriques sont disponibles sur http://localhost:9091/metrics.

Chaque version majeure d'InfluxDB a son propre exporteur dans Glances : influxdb pour la 1.x, influxdb2 pour la 2.x, influxdb3 pour la 3.x. Le nom de la section du fichier de configuration doit correspondre exactement à celui passé à --export, sinon l'exporteur ne trouve pas sa configuration. Contrôlez le résultat avec glances -d, qui journalise l'initialisation de chaque exporteur. Le token est stocké en clair dans glances.conf : restreignez le fichier avec chmod 600 et tenez-le hors de tout dépôt Git.

~/.config/glances/glances.conf
[influxdb2]
host=localhost
port=8086
protocol=http
org=myorg
bucket=glances
token=my-token
Fenêtre de terminal
glances --export influxdb2

Glances est modulaire. Voici les principaux plugins :

Fenêtre de terminal
glances --modules-list
Plugins list: alert, amps, cloud, connections, containers, core, cpu, diskio,
folders, fs, gpu, help, ip, irq, load, mem, memswap, mpp, network, now, npu,
percpu, ports, processcount, processlist, programlist, psutilversion,
quicklook, raid, sensors, smart, system, uptime, version, vms, wifi
Exporters list: cassandra, clickhouse, couchdb, csv, duckdb, elasticsearch,
graph, graphite, influxdb, influxdb2, influxdb3, json, kafka, mongodb, mqtt, nats,
opentsdb, prometheus, rabbitmq, restful, riemann, statsd, timescaledb, zeromq

Glances détecte automatiquement les conteneurs Docker et Podman :

Fenêtre de terminal
glances
# Appuyez sur 'D' pour afficher/masquer les conteneurs

Pour chaque conteneur, vous voyez :

  • Nom et statut
  • Utilisation CPU et mémoire
  • Ports exposés (nouveauté v4.3)

Depuis la version 4.3.2, Glances peut surveiller les machines virtuelles KVM :

Fenêtre de terminal
glances --enable-plugin vms

Le fichier de configuration permet de personnaliser le comportement de Glances.

Glances cherche glances.conf dans plusieurs répertoires et s'arrête au premier trouvé, en donnant la priorité au fichier utilisateur sur le fichier système (/etc/glances/). Créez le répertoire vous-même si nécessaire, l'installation par pipx ou mise ne le fait pas. En cas de doute sur le fichier réellement chargé, consultez le journal de Glances : il contient une ligne Read configuration file suivie du chemin retenu. L'option -C force un fichier précis, ce qui est utile pour tester une configuration sans toucher à celle en place.

  • Linux : ~/.config/glances/glances.conf
  • macOS : ~/Library/Application Support/glances/glances.conf
  • Windows : %APPDATA%\glances\glances.conf

Le fichier est découpé en sections qui portent le nom du plugin concerné, plus une section [global] et une section [outputs]. Deux réglages changent immédiatement le confort d'usage. Le refresh global, à 2 secondes par défaut, que l'on monte à 3 ou 5 sur une machine chargée pour réduire le coût de la collecte elle-même. Et les directives hide, qui acceptent des expressions régulières : sans elles, les interfaces veth d'un hôte Docker et les montages /snap noient le reste. Attention aux seuils warning et critical : seuls, ils changent la couleur de la valeur affichée et rien d'autre. Pour déclencher une commande, il faut ajouter une directive d'action dédiée, par exemple user_critical_action dans la section [cpu].

~/.config/glances/glances.conf
[global]
# Rafraîchissement toutes les 3 secondes
refresh=3
# Vérifier les mises à jour
check_update=true
[outputs]
# Nombre maximum de processus affichés
max_processes_display=30
[cpu]
# Seuils d'alerte CPU
user_warning=70
user_critical=90
[mem]
# Seuils d'alerte mémoire
warning=70
critical=90
[fs]
# Masquer certains systèmes de fichiers
hide=/boot.*,/snap.*
[network]
# Masquer certaines interfaces
hide=lo,docker.*,veth.*
[containers]
# Activer la surveillance des conteneurs
disable=false

Glances utilise un code couleur pour signaler les problèmes :

CouleurSignificationAction
VertNormalRien à faire
JauneAttention (warning)Surveiller
RougeCritiqueInvestiguer immédiatement

Les seuils sont configurables dans glances.conf pour chaque métrique.

La majorité des pannes de Glances viennent de dépendances Python optionnelles absentes, pas d'un bug de l'outil. Le symptôme est toujours le même : un bloc de l'interface reste vide ou disparaît, sans message à l'écran. Le réflexe est donc de relancer avec glances -d et de lire le journal, où l'import raté apparaît en clair. Pour les conteneurs, la cause est presque toujours une permission sur le socket Docker : votre compte doit pouvoir lire /var/run/docker.sock.

SymptômeCause probableSolution
ModuleNotFoundError: psutilDépendance manquanteRéinstaller avec pipx install glances[all]
Interface web inaccessiblePare-feuOuvrir le port 61208
Pas de données conteneursDocker socketVérifier les permissions sur /var/run/docker.sock
Capteurs non détectésDépendance manquanteInstaller lm-sensors sur Linux
Erreur API PrometheusConfigurationVérifier [prometheus] dans glances.conf

Ces quatre commandes se lancent dans l'ordre où elles sont listées. --version confirme d'abord que vous exécutez bien le binaire attendu, ce qui n'est pas acquis quand pipx, mise et le paquet de la distribution coexistent sur la même machine. Le mode -d écrit un journal détaillé dans le fichier de log indiqué par --version. --modules-list répond à la question « ce plugin est-il seulement compilé dans ma version ». Enfin --stdout isole la collecte de l'affichage : si la donnée sort correctement ici, le problème vient de l'interface, pas du capteur.

Fenêtre de terminal
# Vérifier la version et les dépendances
glances --version
# Mode debug pour voir les erreurs
glances -d
# Lister les modules disponibles
glances --modules-list
# Tester l'export sans interface
glances --stdout system --stop-after 1

Le serveur web de Glances expose en lecture la liste complète des processus avec leurs lignes de commande, les points de montage et les interfaces réseau. C'est une cartographie de la machine offerte à qui atteint le port 61208, sans qu'aucune authentification ne soit active par défaut. Le serveur ne gère pas non plus le TLS de lui-même : l'authentification par mot de passe seule transiterait en clair, d'où le reverse proxy.

  • Ne pas exposer le serveur web sur Internet sans authentification
  • Utiliser un reverse proxy (nginx, Traefik) pour le HTTPS
  • Limiter les interfaces avec --bind 127.0.0.1

Glances est lui-même un processus Python qui consomme du CPU à chaque cycle, et cette consommation croît avec le nombre de plugins actifs et de processus à trier. Sur un serveur de production déjà chargé, un rafraîchissement à la seconde revient à mesurer en partie son propre coût. Les trois réglages ci-dessous agissent sur des leviers distincts : la fréquence de collecte, le nombre de capteurs interrogés, et le volume de données à afficher.

  • Ajuster le refresh : 3-5 secondes suffisent généralement
  • Désactiver les plugins inutiles : --disable-plugin sensors,gpu
  • Filtrer les interfaces réseau : masquer les veth Docker

Glances reste un outil de diagnostic à chaud : il montre l'instant présent, pas l'historique. Tant que vos serveurs ont chacun leur glances.conf bricolé à la main, deux administrateurs qui regardent la même métrique verront des seuils différents et n'arriveront pas aux mêmes conclusions. Distribuez donc ce fichier avec votre gestionnaire de configuration, au même titre qu'un sshd_config. Et gardez à l'esprit la limite de l'outil : pour répondre à « quand cela a-t-il commencé », il faut un export vers Prometheus ou InfluxDB, pas une session Glances ouverte.

  • Standardiser la configuration sur tous vos serveurs
  • Utiliser le mode client/serveur pour centraliser la surveillance
  • Exporter vers Prometheus/Grafana pour l'historique et les alertes
  1. Glances centralise CPU, RAM, disques, réseau, processus et conteneurs dans une seule interface
  2. 4 modes d'utilisation : local (glances), web (-w), client/serveur (-s/-c), fetch (--fetch)
  3. Mode fetch (v4.4+) : snapshot instantané style neofetch
  4. Export natif vers Prometheus, InfluxDB, CSV et 15+ autres backends
  5. Alertes colorées : vert (OK), jaune (warning), rouge (critique)
  6. Configuration centralisée dans ~/.config/glances/glances.conf
  7. Support conteneurs : Docker et Podman détectés automatiquement
  8. Installation recommandée : via mise ou pipx pour l'isolation

Ces réponses courtes reprennent les questions qui reviennent le plus souvent sur Glances : le choix entre Glances et htop, l'accès depuis un navigateur, l'export vers Prometheus et la surveillance des conteneurs Docker.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn