Glances

Siehe auch

Verwandte Artikel
Offizielle Dokumentation
Linuxfabrik

Glances ist ein plattformübergreifender System-Monitor in Python. Während die klassischen Konsolen-Tools top (kryptisch in der Bedienung) und htop (komfortabler, aber immer noch Prozesslisten-zentriert) den Fokus auf laufende Prozesse legen, bringt Glances auf der gleichen Fläche deutlich mehr Informationen unter: CPU, Memory, Load, Disk-I/O, Netzwerk, Sensoren, Container und einiges mehr. Das Layout passt sich dynamisch der Terminal-Grösse an („responsive“); auf Wunsch liefert Glances zusätzlich eine Web-UI oder eine REST-API. Intern nutzt Glances psutil als plattformneutrale Datenquelle und steht unter der LGPL-3.0. Seit 4.3.2 enthält es Shell-Tab-Completion, seit 4.5 zusätzlich einen MCP-Server (Model Context Protocol) für AI-Clients.

Begriffe
  • Standalone-Modus: Der Default. Glances läuft im Terminal und zeigt die lokalen Statistiken über eine curses-basierte TUI an.

  • Server-Modus: Glances liefert seine Statistiken per XMLRPC (Legacy) und REST über TCP-Port 61209 aus, ohne eigene UI.

  • Client-Modus: Glances verbindet sich mit einem Glances-Server und stellt dessen Statistiken lokal in der TUI dar.

  • Webserver-Modus: Glances liefert eine Web-UI und eine JSON-REST-API auf Basis von FastAPI aus. Geeignet für Remote-Monitoring ohne SSH-Session.

  • Browser-Modus: Zeigt eine Liste aller im lokalen Netz via Zeroconf gefundenen Glances-Server (TUI oder Web).

  • Plugin: einzelnes Statistik-Modul (cpu, mem, network, fs, containers, sensors, …). Plugins lassen sich einzeln per --disable-plugin bzw. --enable-plugin schalten.

  • Exporter: leitet die Statistiken in externe Systeme um. Built-in u.a.: InfluxDB, Prometheus, Graphite, Elasticsearch, Kafka, MQTT, Statsd, CSV, JSON.

  • MCP-Server: Model-Context-Protocol-Endpoint, der AI-Assistenten wie Claude oder Cursor direkten Zugriff auf die Glances-Statistiken gibt.

Installation

Aus EPEL (RHEL 8+):

dnf --assumeyes install epel-release
dnf --assumeyes install glances

EPEL hinkt in der Regel hinter der aktuellen Glances-Version hinterher. Für eine aktuelle Version empfiehlt sich pipx:

dnf --assumeyes install pipx
pipx ensurepath

# core features only (terminal UI)
pipx install glances

# or with all optional features (web UI, exporters, container support, ...)
pipx install 'glances[all]'

Upgrade:

pipx upgrade glances

Shell-Tab-Completion einmalig generieren und aktivieren:

glances --print-completion bash > /etc/bash_completion.d/glances
source /etc/bash_completion.d/glances

Alternativ als Docker-Container aus dem offiziellen Image nicolargo/glances, wahlweise auf Alpine- oder Ubuntu-Basis. Die sinnvollen Tags:

  • latest: letztes Release, Minimal-Ausstattung plus FastAPI und Docker-Support

  • latest-full: letztes Release mit allen optionalen Abhängigkeiten

  • ubuntu-latest / ubuntu-latest-full: gleichwertig, aber auf Ubuntu

docker run --rm --tty --interactive --pid host --volume /var/run/docker.sock:/var/run/docker.sock:ro \
    --env TZ="$(date +%Z)" \
    nicolargo/glances:latest-full

Verwendung

Standalone (TUI)

# default refresh of 3 seconds
glances

# set the refresh interval in seconds (e.g. 1 second)
glances --time 1

# stats only, no TUI (useful in scripts)
glances --quiet

# raw stats on stdout (comma-separated list of plugin[.attribute])
glances --stdout cpu.user,mem.used,load

Wer top komplett durch Glances ersetzen möchte:

/etc/profile.d/glances.sh
alias top='glances --time 1'

Webserver

Glances liefert eine Web-UI auf Port 61208 aus. Voraussetzung: glances[all] oder zumindest fastapi installiert.

glances --webserver

# with explicit port, bind address and basic auth
glances --webserver --bind 0.0.0.0 --port 61208 --username --password

Die REST-API ist unter http://<host>:61208/api/4/all erreichbar.

Warnung

Die Web-UI hat keine TLS-Terminierung und keine Authentifizierung out of the box. Im Zweifelsfall hinter einen Reverse-Proxy (Apache, HAProxy, nginx) mit TLS und Authentifizierung setzen, oder --username und --password setzen. Port 61208 in der Firewall nur für vertrauenswürdige Netze öffnen.

Client / Server

Auf dem zu überwachenden Host:

glances --server
glances --server --bind 203.0.113.10 --port 61209

Von einem anderen Host aus verbinden:

glances --client 203.0.113.10
glances --client 203.0.113.10 --port 61209

firewalld-Freigabe für den Server-Modus:

firewall-cmd --permanent --add-port=61209/tcp
firewall-cmd --reload

Browser (Central Monitoring)

Durchsucht das lokale Netz via Zeroconf nach Glances-Servern und listet diese auf. Die Auswahl öffnet dann einen Client gegen den gewählten Server.

# TUI-Variante
glances --browser

# Web-UI-Variante (seit Glances 4.3)
glances --browser --webserver

Konfiguration

Glances sucht die Konfigurationsdatei in dieser Reihenfolge:

  1. ~/.config/glances/glances.conf

  2. /etc/glances/glances.conf

  3. /usr/share/doc/glances/glances.conf

Eigene Datei mit --config:

glances --config /path/to/glances.conf

Beispiel für ein paar gängige Tweaks:

/etc/glances/glances.conf
[global]
# Default-Refresh-Intervall in Sekunden
refresh=2
# suppress PyPI update check on startup
check_update=false

[mem]
# "available" statt "used" anzeigen
available=True

[ip]
# disable public IP lookup on offline systems
public_disabled=True

[outputs]
# URL prefix for the web server (when behind a reverse proxy)
url_prefix=/glances/

Export

Glances kann seine Statistiken an externe Systeme weiterreichen (gleichzeitig in mehrere Senken möglich, kommagetrennt).

# to a CSV file
glances --export csv --export-csv-file /var/log/glances.csv

# to InfluxDB 2
glances --export influxdb2

# to Prometheus (glances exposes /metrics)
glances --export prometheus

# multiple exporters simultaneously
glances --export influxdb2,prometheus,csv

Die Zugangsdaten für die einzelnen Exporter werden in glances.conf hinterlegt:

/etc/glances/glances.conf
[influxdb2]
host=influx.example.com
port=8086
protocol=http
org=linuxfabrik
bucket=glances
token=<your-token>

[prometheus]
host=0.0.0.0
port=9091
prefix=glances

Glances Cheat Sheet

Wichtige CLI-Optionen:

glances                                 # Standalone, TUI
glances --time 1                        # Refresh-Intervall 1 Sekunde
glances --webserver                     # Web-UI auf :61208
glances --server / --client <host>      # Server- / Client-Modus
glances --browser                       # Central-Monitoring-Browser
glances --quiet                         # keine TUI (z.B. fuer Skripte)
glances --stdout cpu,mem,load           # RAW-Stats auf stdout
glances --export prometheus             # Exporter aktivieren
glances --disable-plugin docker,wifi    # Plugins einzeln ausschalten
glances --enable-plugin irq             # standardmaessig inaktive Plugins anschalten
glances --light                         # minimale TUI (nur Top-Menue)
glances --disable-webui                 # nur die REST-API, keine UI

Wichtige Tastenkürzel in der TUI. h zeigt die komplette Übersicht.

q oder ESC

Glances beenden

h

Hilfe ein-/ausblenden

/

Kurzen Prozessnamen statt vollem Pfad anzeigen

a

Prozesse automatisch sortieren (CPU- oder Mem-abhängig)

c

Prozesse nach CPU sortieren

m

Prozesse nach Memory sortieren

i

Prozesse nach I/O-Rate sortieren

t

Prozesse nach kumulativer CPU-Zeit sortieren

u

Prozesse nach Benutzer sortieren

p

Prozesse nach Name sortieren

e

Erweiterte Infos zum aktuell markierten Prozess

k

Markierten Prozess killen

f

Dateisystem-Statistiken ein-/ausblenden

n

Netzwerk-Statistiken ein-/ausblenden

d

Disk-I/O ein-/ausblenden

D

Container-Anzeige ein-/ausblenden

1

Per-CPU-Modus

b

Byte vs. Bit im Netzwerk-Plugin umschalten

F

Free Space vs. Used Space im FS-Plugin umschalten

Troubleshooting

Encoding-Fehler beim Start (UnicodeEncodeError)

Glances mit explizitem UTF-8-Locale starten: LANG=en_US.UTF-8 LC_ALL= glances.

„Container memory stats not displayed“ auf ARM64 / Raspberry Pi

Der cgroup-Memory-Controller ist im Kernel nicht aktiviert. In /boot/firmware/cmdline.txt (bzw. /boot/cmdline.txt) cgroup_enable=memory ergänzen und rebooten.

Web-UI liefert eine leere Seite

Unter Debian/Ubuntu liefert das Distributionspaket die statischen Web-UI-Dateien nicht mit. Workaround: Glances stattdessen über pipx install 'glances[all]' installieren oder das Docker-Image verwenden. Details in Issue #2021.

Glances meldet „no free memory“

Normalverhalten unter Linux: freier Arbeitsspeicher wird für Disk-Cache verwendet. In der Konfiguration available=True im Abschnitt [mem] setzen, dann zeigt Glances den wirklich verfügbaren Speicher.

Netifaces-Warnung im Log

Glances hat 2025 den Wechsel von Netifaces über Netifaces2 zu einer internen Lösung vollzogen. Alte Installationen können beim Upgrade auf 4.5 die Pakete netifaces und netifaces2 deinstallieren lassen.