Glances est un outil de surveillance multiplateforme de système open source. Il permet une surveillance en temps réel de divers aspects de votre système tels que le processeur, la mémoire, le disque, l'utilisation du réseau, etc. Il permet également de surveiller les processus en cours, les utilisateurs connectés, les températures, les tensions, la vitesse des ventilateurs, etc. Il prend également en charge la surveillance des conteneurs, il prend en charge différents systèmes de gestion de conteneurs tels que Docker, LXC. Les informations sont présentées dans un tableau de bord facile à lire et peuvent également être utilisées pour la surveillance à distance des systèmes via une interface Web ou une interface de ligne de commande. Il est facile à installer et à utiliser et peut être personnalisé pour afficher uniquement les informations qui vous intéressent.
En mode client/serveur, la surveillance à distance pourrait se faire via un terminal, une interface Web ou une API (XML-RPC et RESTful). Les statistiques peuvent également être exportées vers des fichiers ou des bases de données externes de temps/valeur, CSV ou sortie directe vers STDOUT.
Glances est écrit en Python et utilise des bibliothèques pour récupérer des informations de votre système. Il est basé sur une architecture ouverte où les développeurs peuvent ajouter de nouveaux plugins ou modules d'exportation.
Vous pouvez m'aider à atteindre mes objectifs d'amélioration de ce projet open source ou simplement me dire « merci » en :
Toutes les contributions sont grandement appréciées.
python>=3.9
(utilisez Glances 3.4.x pour la version inférieure de Python)psutil
(mieux avec la dernière version)defusedxml
(afin de patcher xmlrpc)packaging
(pour la comparaison des versions)orjson
(une alternative optimisée au module json standard)Remarque pour les utilisateurs de Python 2
Glances version 4 ou supérieure ne prend pas en charge Python 2 (et Python 3 < 3.9). Veuillez utiliser Glances version 3.4.x si vous avez besoin de la prise en charge de Python 2.
Dépendances facultatives :
batinfo
(pour la surveillance de la batterie)bernhard
(pour le module d'exportation Riemann)cassandra-driver
(pour le module d'exportation Cassandra)chevron
(pour la fonctionnalité de script d'action)docker
(pour le support de surveillance Containers Docker)elasticsearch
(pour le module d'exportation Elastic Search)FastAPI
et Uvicorn
(pour le mode serveur Web)graphitesender
(Pour le module d'exportation Graphite)hddtemp
(pour la prise en charge de la surveillance de la température du disque dur) [Linux uniquement]influxdb
(pour le module d'export InfluxDB version 1)influxdb-client
(pour le module d'exportation InfluxDB version 2)jinja2
(pour les modèles, utilisé sous le capot par FastAPI)kafka-python
(pour le module d'exportation Kafka)netifaces
(pour le plugin IP)nvidia-ml-py
(pour le plugin GPU)pycouchdb
(pour le module d'exportation CouchDB)pika
(pour le module d'exportation RabbitMQ/ActiveMQ)podman
(pour le support de surveillance Containers Podman)potsdb
(pour le module d'exportation OpenTSDB)prometheus_client
(pour le module d'exportation Prometheus)pygal
(pour le module d'exportation de graphiques)pymdstat
(pour la prise en charge RAID) [Linux uniquement]pymongo
(pour le module d'exportation MongoDB)pysnmp-lextudio
(pour la prise en charge SNMP)pySMART.smartx
(pour la prise en charge HDD Smart) [Linux uniquement]pyzmq
(pour le module d'exportation ZeroMQ)requests
(pour les Ports, les plugins Cloud et le module d'export RESTful)sparklines
(pour l’option sparklines Quick Plugin)statsd
(pour le module d'export StatsD)wifi
(pour le plugin wifi) [Linux uniquement]zeroconf
(pour le mode de découverte automatique) Il existe plusieurs méthodes pour tester/installer Glances sur votre système. Choisissez votre arme !
Glances est sur PyPI
. En utilisant PyPI, vous utiliserez la dernière version stable.
Pour installer Glances, utilisez simplement la ligne de commande pip
.
Avertissement : sur les systèmes d'exploitation Linux modernes, vous pouvez recevoir un message d'erreur d'environnement géré en externe lorsque vous essayez d'utiliser pip
. Dans ce cas, rendez-vous dans la section PipX ci-dessous.
pip install --user glances
Remarque : les en-têtes Python sont requis pour installer psutil, une dépendance de Glances. Par exemple, sur Debian/Ubuntu, le plus simple est apt install python3-psutil
ou vous devez d'abord installer le package python-dev et gcc ( python-devel sur Fedora/CentOS/RHEL). Pour Windows, installez simplement psutil à partir du fichier d'installation binaire.
Par défaut, Glances est installé sans les dépendances de l'interface Web. Pour l'installer, utilisez la commande suivante :
pip install --user 'glances[web]'
Pour une installation complète (avec toutes les fonctionnalités) :
pip install --user 'glances[all]'
Pour mettre à niveau Glances vers la dernière version :
pip install --user --upgrade glances
La branche de développement actuelle est publiée dans l'index du package test.pypi.org. Si vous souhaitez tester la version de développement (peut-être instable), saisissez :
pip install --user -i https://test.pypi.org/simple/ Glances
Installez PipX sur votre système (apt install pipx sur Ubuntu).
Installez Glances (avec toutes les fonctionnalités) :
pipx install 'glances[all]'
Le script looks sera installé dans le dossier ~/.local/bin.
Les images Docker de Glances sont disponibles. Vous pouvez l'utiliser pour surveiller votre serveur et tous vos conteneurs !
Obtenez le conteneur Glances :
docker pull nicolargo/glances:latest-full
Les balises suivantes sont disponibles :
Exécutez la dernière version du conteneur Glances en mode console :
docker run --rm -e TZ="${TZ}" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host --network host -it nicolargo/glances:latest-full
Par défaut, le fichier /etc/glances/glances.conf est utilisé (basé sur docker-compose/glances.conf).
De plus, si vous souhaitez utiliser votre propre fichier looks.conf, vous pouvez créer votre propre Dockerfile :
FROM nicolargo/glances:latest
COPY glances.conf /root/.config/glances/glances.conf
CMD python -m glances -C /root/.config/glances/glances.conf $GLANCES_OPT
Alternativement, vous pouvez spécifier quelque chose dans le même sens avec les options d'exécution du docker (notez les paramètres de définition de la variable d'environnement GLANCES_OPT pour la commande de démarrage de Glances) :
docker run -e TZ="${TZ}" -v $HOME/.config/glances/glances.conf:/glances.conf:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host -e GLANCES_OPT="-C /glances.conf" -it nicolargo/glances:latest-full
Où $HOME/.config/glances/glances.conf est un répertoire local contenant votre fichier looks.conf.
Exécutez le conteneur en mode serveur Web :
docker run -d --restart="always" -p 61208-61209:61208-61209 -e TZ="${TZ}" -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host nicolargo/glances:latest-full
Pour une liste complète des options, consultez la page de documentation de Glances Docker.
Glances est disponible sur de nombreuses distributions Linux, vous devriez donc pouvoir l'installer à l'aide de votre gestionnaire de packages préféré. Sachez que lorsque vous utilisez cette méthode, le package du système d'exploitation pour Glances peut ne pas être la dernière version et seuls les plugins de base sont activés.
Remarque : Le paquet Debian (et toutes les autres distributions basées sur Debian) n'inclut plus les fichiers statiques JS utilisés par l'interface Web (voir issue2021
). Si vous souhaitez l'ajouter à votre installation Glances, suivez les instructions : issue2021comment
. Dans Glances version 4 et supérieure, le chemin d'accès au fichier statique est configurable (voir issue2612
).
Pour installer le package binaire :
# pkg install py39-glances
Pour installer Glances à partir des ports :
# cd /usr/ports/sysutils/py-glances/
# make install clean
Si vous ne souhaitez pas utiliser le script d'installation automatique de looks, suivez cette procédure.
Les utilisateurs de macOS peuvent installer Glances à l'aide Homebrew
ou MacPorts
.
$ brew install glances
$ sudo port install glances
Installez Python pour Windows (Python 3.4+ livré avec pip), puis exécutez la commande suivante :
$ pip install glances
Vous avez besoin d'un appareil rooté et de l'application Termux (disponible sur le Google Play Store).
Démarrez Termux sur votre appareil et entrez :
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install fastapi uvicorn jinja2
$ pip install glances
Et lancez Glances :
$ glances
Vous pouvez également exécuter Glances en mode serveur (-s ou -w) afin de surveiller à distance votre appareil Android.
Pour installer Glances à partir des sources :
$ pip install https://github.com/nicolargo/glances/archive/vX.Y.tar.gz
Remarque : les en-têtes Python sont requis pour installer psutil.
Un superbe livre de recettes Chef
est disponible pour suivre votre infrastructure : https://supermarket.chef.io/cookbooks/glances (merci à Antoine Rouyer)
Vous pouvez installer Glances en utilisant Puppet
: https://github.com/rverchere/puppet-glances
Un rôle Glances Ansible
est disponible : https://galaxy.ansible.com/zaxos/glances-ansible-role/
Pour le mode autonome, exécutez simplement :
$ glances
Pour le mode serveur Web, exécutez :
$ glances -w
et entrez l'URL http://<ip>:61208
dans votre navigateur Web préféré.
Pour le mode client/serveur, exécutez :
$ glances -s
côté serveur et exécutez :
$ glances -c < ip >
sur celui du client.
Vous pouvez également détecter et afficher tous les serveurs Glances disponibles sur votre réseau ou définis dans le fichier de configuration :
$ glances --browser
Vous pouvez également afficher les statistiques brutes sur la sortie standard :
$ glances --stdout cpu.user,mem.used,load
cpu.user: 30.7
mem.used: 3278204928
load: {'cpucore': 4, 'min1': 0.21, 'min5': 0.4, 'min15': 0.27}
cpu.user: 3.4
mem.used: 3275251712
load: {'cpucore': 4, 'min1': 0.19, 'min5': 0.39, 'min15': 0.27}
...
ou au format CSV grâce à l'option stdout-csv :
$ glances --stdout-csv now,cpu.user,mem.used,load
now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15
2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04
2018-12-08 22:04:23 CEST,5.4,5949136896,4,1.04,0.99,1.04
...
soit dans un format JSON grâce à l'option stdout-json (attribut non supporté dans ce mode afin d'avoir un vrai objet JSON en sortie) :
$ glances --stdout-json cpu,mem
cpu: {"total": 29.0, "user": 24.7, "nice": 0.0, "system": 3.8, "idle": 71.4, "iowait": 0.0, "irq": 0.0, "softirq": 0.0, "steal": 0.0, "guest": 0.0, "guest_nice": 0.0, "time_since_update": 1, "cpucore": 4, "ctx_switches": 0, "interrupts": 0, "soft_interrupts": 0, "syscalls": 0}
mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416}
...
et RTFM, toujours.
Pour une documentation complète, consultez le site Web readthedocs.
Si vous avez des questions (après RTFM !), veuillez les poster sur le forum Q&A officiel.
Glances peut exporter des statistiques vers : fichier CSV
, fichier JSON
, InfluxDB
, Cassandra
, CouchDB
, OpenTSDB
, Prometheus
, StatsD
, ElasticSearch
, RabbitMQ/ActiveMQ
, ZeroMQ
, Kafka
, Riemann
, Graphite
et le serveur RESTful
.
Si vous souhaitez contribuer au projet Glances, lisez cette page wiki.
Il existe également un chat dédié aux développeurs de Glances :
Nicolas Hennion (@nicolargo) <[email protected]>
Glances est distribué sous licence LGPL version 3. Voir COPYING
pour plus de détails.