Univers Apple

21
Nov.
2018

Plein phare sur une application Brew : glances

Publié par sky

Nouveau besoin, nouvelle application disponible via Brew. Regardons, aujourd'hui, un nouvel utilitaire : glances. Après unrar, il s'agit d'un utilitaire d'un tout autre genre, puisque nous allons pouvoir monitorer notre Mac. Le logiciel, dans sa description sur brew, se défini lui même comme une alternative à top ou à htop.

Si vous ne connaissez pas, top est un utilitaire en ligne de commande, disponible en standard sur nos Mac, c'est un peu le moniteur d'activité, dans un terminal. Quant à htop, il s'agit d'une version améliorée de top, non installée avec macOS, mais disponible sur ... Homebrew.

Pourquoi installer et utiliser glances alors que macOS fourni en standard un moniteur d'activité ? Alors, qu'il existe de nombreux outils effectuant la même tâche, de manière graphique tel que MenuMeters ou iStats Menu ?

Je pourrai vous dire que glances est plus léger, beaucoup plus léger, puisque dans un simple terminal ou encore qu'il dispose de nombreuses options, mais la vraie raison est que depuis un terminal, je peux me connecter à distance afin de vérifier que tout fonctionne bien.

Ainsi sur mon Mac, j'utilise iStats Menu, la Rolls des logiciels de monitoring pour Mac, mais lorsque je ne suis pas devant ce Mac, je peux m'y connecter, depuis un autre ordinateur ou même mon iPhone et contrôler que tout va bien.

Sur un serveur, souvent dépourvu d'écran, l'utilisation de la ligne de commande est souvent plus facile et plus rapide. Ici une application telle que glances prend tout son sens. Dans le même genre, sur les Raspberry Pi dont l'affichage est dédiée à une tâche précise tel que Retropie ou Kodi, l'intérêt se renouvelle.

En fin d'article, nous verrons qu'il dispose d'un sacré panel d'options, qui peuvent être bien utiles.

Bref, glances, c'est bien. Avançons !

brew info glances
glances: stable 3.0.2 (bottled)
Alternative to top/htop
https://nicolargo.github.io/glances/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/glances.rb
==> Dependencies
Required: python ✘
==> Analytics
install: 1,270 (30 days), 6,191 (90 days), 12,931 (365 days)
install_on_request: 1,268 (30 days), 6,182 (90 days), 12,914 (365 days)
build_error: 0 (30 days)

Rien à signaler de ce côté là, à noter que vous pourriez avoir plus de dépendance à installer, cela a été le cas sur un autre Mac.

Commençons l'installation.

brew install glances
==> Installing dependencies for glances: python
==> Installing glances dependency: python
==> Downloading https://homebrew.bintray.com/bottles/python-3.7.1.high_sierra.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/be/be05e539d0c1bd13a838b76d3031de246579277fefde473887ec35fc70579787?__gda__=exp=1542737187~hmac= 79b5051a4d5058c02ceab12d2227004e8cb
######################################################################## 100.0%
==> Pouring python-3.7.1.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/python/3.7.1/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.7.1/bin --install-lib=/usr/local/li
==> /usr/local/Cellar/python/3.7.1/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.7.1/bin --install-lib=/usr/local/li
==> /usr/local/Cellar/python/3.7.1/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.7.1/bin --install-lib=/usr/local/li
==> Caveats
Python has been installed as
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python/libexec/bin

If you need Homebrew's Python 2.7 run
  brew install python@2

You can install Python packages with
  pip3 install
They will install into the site-package directory
  /usr/local/lib/python3.7/site-packages

See: https://docs.brew.sh/Homebrew-and-Python
==> Summary
🍺  /usr/local/Cellar/python/3.7.1: 3,820 files, 59.2MB
==> Installing glances
==> Downloading https://homebrew.bintray.com/bottles/glances-3.0.2.high_sierra.bottle.1.tar.gz
==> Downloading from https://akamai.bintray.com/b8/b8b2b0c5ed5697b37b7891405fdd4af2cf04aa14dafb284620d846fe805dc564?__gda__=exp=1542737210~hmac= 599cd5a9aad1b85c3ff1664a26d42ef83ae
######################################################################## 100.0%
==> Pouring glances-3.0.2.high_sierra.bottle.1.tar.gz
🍺  /usr/local/Cellar/glances/3.0.2: 264 files, 6.4MB
==> Caveats
==> python
Python has been installed as
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python/libexec/bin

If you need Homebrew's Python 2.7 run
  brew install python@2

You can install Python packages with
  pip3 install
They will install into the site-package directory
  /usr/local/lib/python3.7/site-packages

See: https://docs.brew.sh/Homebrew-and-Python

Une fois de plus, cela se fait sans encombre !

Lançons l'application.

glances

 Affichage de glances

 

et pour quitter, appuyez sur q. Si cela bloque, un petit ctrl+c devrait vous en sortir définitivement.

Mais ce n'est pas très lisible, si, comme moi, vous avez conservé les réglages de base du terminal.

Regardons les options

glances --help
usage: glances [-h] [-V] [-d] [-C CONF_FILE] [--modules-list]
               [--disable-plugin DISABLE_PLUGIN] [--disable-process]
               [--disable-webui] [--light] [-0] [-1] [-2] [-3] [-4] [-5] [-6]
               [--disable-history] [--disable-bold] [--disable-bg]
               [--enable-irq] [--enable-process-extended] [--export EXPORT]
               [--export-csv-file EXPORT_CSV_FILE]
               [--export-json-file EXPORT_JSON_FILE]
               [--export-graph-path EXPORT_GRAPH_PATH] [-c CLIENT] [-s]
               [--browser] [--disable-autodiscover] [-p PORT]
               [-B BIND_ADDRESS] [--username] [--password]
               [--snmp-community SNMP_COMMUNITY] [--snmp-port SNMP_PORT]
               [--snmp-version SNMP_VERSION] [--snmp-user SNMP_USER]
               [--snmp-auth SNMP_AUTH] [--snmp-force] [-t TIME] [-w]
               [--cached-time CACHED_TIME] [--open-web-browser] [-q]
               [-f PROCESS_FILTER] [--process-short-name] [--stdout STDOUT]
               [--hide-kernel-threads] [-b] [--diskio-show-ramfs]
               [--diskio-iops] [--fahrenheit] [--fs-free-space]
               [--theme-white] [--disable-check-update]

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -d, --debug           enable debug mode
  -C CONF_FILE, --config CONF_FILE
                        path to the configuration file
  --modules-list, --module-list
                        display modules (plugins & exports) list and exit
  --disable-plugin DISABLE_PLUGIN
                        disable plugin (comma separed list)
  --disable-process     disable process module
  --disable-webui       disable the Web Interface
  --light, --enable-light
                        light mode for Curses UI (disable all but top menu)
  -0, --disable-irix    task's cpu usage will be divided by the total number
                        of CPUs
  -1, --percpu          start Glances in per CPU mode
  -2, --disable-left-sidebar
                        disable network, disk I/O, FS and sensors modules
  -3, --disable-quicklook
                        disable quick look module
  -4, --full-quicklook  disable all but quick look and load
  -5, --disable-top     disable top menu (QL, CPU, MEM, SWAP and LOAD)
  -6, --meangpu         start Glances in mean GPU mode
  --disable-history     disable stats history
  --disable-bold        disable bold mode in the terminal
  --disable-bg          disable background colors in the terminal
  --enable-irq          enable IRQ module
  --enable-process-extended
                        enable extended stats on top process
  --export EXPORT       enable export module (comma separed list)
  --export-csv-file EXPORT_CSV_FILE
                        file path for CSV exporter
  --export-json-file EXPORT_JSON_FILE
                        file path for JSON exporter
  --export-graph-path EXPORT_GRAPH_PATH
                        Folder for Graph exporter
  -c CLIENT, --client CLIENT
                        connect to a Glances server by IPv4/IPv6 address or
                        hostname
  -s, --server          run Glances in server mode
  --browser             start the client browser (list of servers)
  --disable-autodiscover
                        disable autodiscover feature
  -p PORT, --port PORT  define the client/server TCP port [default: 61209]
  -B BIND_ADDRESS, --bind BIND_ADDRESS
                        bind server to the given IPv4/IPv6 address or hostname
  --username            define a client/server username
  --password            define a client/server password
  --snmp-community SNMP_COMMUNITY
                        SNMP community
  --snmp-port SNMP_PORT
                        SNMP port
  --snmp-version SNMP_VERSION
                        SNMP version (1, 2c or 3)
  --snmp-user SNMP_USER
                        SNMP username (only for SNMPv3)
  --snmp-auth SNMP_AUTH
                        SNMP authentication key (only for SNMPv3)
  --snmp-force          force SNMP mode
  -t TIME, --time TIME  set refresh time in seconds [default: 3 sec]
  -w, --webserver       run Glances in web server mode (bottle needed)
  --cached-time CACHED_TIME
                        set the server cache time [default: 1 sec]
  --open-web-browser    try to open the Web UI in the default Web browser
  -q, --quiet           do not display the curses interface
  -f PROCESS_FILTER, --process-filter PROCESS_FILTER
                        set the process filter pattern (regular expression)
  --process-short-name  force short name for processes name
  --stdout STDOUT       display stats to stdout (comma separated list of
                        plugins/plugins.attribute)
  --hide-kernel-threads
                        hide kernel threads in process list (not available on
                        Windows)
  -b, --byte            display network rate in byte per second
  --diskio-show-ramfs   show RAM Fs in the DiskIO plugin
  --diskio-iops         show IO per second in the DiskIO plugin
  --fahrenheit          display temperature in Fahrenheit (default is Celsius)
  --fs-free-space       display FS free space instead of used
  --theme-white         optimize display colors for white background
  --disable-check-update
                        disable online Glances version ckeck

Examples of use:
  Monitor local machine (standalone mode):
    $ glances

  Display all Glances modules (plugins and exporters) and exit:
    $ glances --module-list

  Monitor local machine with the Web interface and start RESTful server:
    $ glances -w
    Glances web server started on http://0.0.0.0:61208/

  Only start RESTful API (without the WebUI):
    $ glances -w --disable-webui
    Glances API available on http://0.0.0.0:61208/api/

  Monitor local machine and export stats to a CSV file (standalone mode):
    $ glances --export csv --export-csv-file /tmp/glances.csv

  Monitor local machine and export stats to a InfluxDB server with 5s refresh time (standalone mode):
    $ glances -t 5 --export influxdb

  Start a Glances XML/RCP server (server mode):
    $ glances -s

  Connect Glances to a Glances XML/RCP server (client mode):
    $ glances -c <ip_server>

  Connect Glances to a Glances server and export stats to a StatsD server (client mode):
    $ glances -c <ip_server> --export statsd

  Start the client browser (browser mode):
    $ glances --browser

  Display stats to stdout:
    $ glances --stdout cpu.user,mem.used,load

  Disable some plugins (any modes):
    $ glances --disable-plugin network,ports

Il y en a une très intéressante, qui nous irait bien :

glances --theme-white

 Affichage de glances optimisé pour fond blanc

Le résultat est bien mieux comme cela !

Comme vous pouvez le remarquez, glances mets en couleurs les éléments clés à regarder, rendant le monitoring plus efficace.

Une fois dedans, il existe de nombreux raccourcis clavier qui permettent de modifier le comportement de l'application en temps réel, comme trier par une colonne souhaitée ou d'activer/désactiver un élément. Par exemple, la touche c qui permet de trier par l'utilisation CPU. La liste complète est ici.

Pour les plus techy, il est possible de lancer glances en mode serveur, et de connecter à distance. Ce qui peut être pratique pour monitorer plusieurs serveurs à la fois. Aussi, il est possible d'exporter les résultats sur une page web ou encore en CSV.

 
Sommaire de la série
 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Les cookies assurent le bon fonctionnement de nos services. En continuant, vous acceptez leur utilisation sur notre site internet.
Accepter