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.
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
)
- CPU (
- 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
- Système d’alerte par code couleur :
- Interface Web intégrée :
- Accessible via le port
61208
en lançantglances -w
- Vue d’ensemble complète dans un navigateur Web
- Surveillance à distance sans passer par SSH
- Accessible via le port
- Exportation des données :
- Formats supportés :
- CSV
- JSON
- Intégration possible avec :
- InfluxDB
- Cassandra
- Prometheus
- Elasticsearch
- Formats supportés :
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 :
python3 -m pip install --user pipxpython3 -m pipx ensurepath
Installation avec pipx
Voici la commande pour installer Glances avec toutes ses fonctionnalités :
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 :
glances
Installation avec Homebrew
Sous macOS, on peut aussi utiliser Homebrew pour installer Glances :
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 :
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 quitterh
pour afficher l’aidem
pour trier les processus par mémoirec
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 :
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 :
glances -s
Sur la machine cliente :
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 :
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=2check_update=truehistory_size=1200refresh
: Intervalle de rafraîchissement en secondes (minimum 2)check_update
: Vérifie les mises à jour disponibleshistory_size
: Nombre maximal de valeurs historiques stockées
-
[outputs]
: Interface utilisateur[outputs]separator=Truemax_processes_display=25separator
: Affiche un séparateur dans l’interfacemax_processes_display
: Nombre maximal de processus affichés dans l’interface Web
-
[cpu]
: Plugin CPU[cpu]disable=Falserefresh=3user_warning=70user_critical=90disable
: Désactive le plugin si défini surTrue
refresh
: Intervalle de rafraîchissement spécifique au pluginuser_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 :
- Modifier le fichier de configuration
glances.conf
en ajoutant la section[prometheus]
:
[prometheus]host=localhostport=9091prefix=glanceslabels=src:glance
- Lancer Glances avec l’option Prometheus
glances --export prometheu
L’exporter sera accessible à l’adresse http://<host>:<port>
, par exemple
http://localhost:9091
- 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.