Tools zum Monitoring von Ressourcen auf einem Linux-Host gibt es wie Sand am Meer. Mit bpytop kommt ein weiteres Kommandozeilen-Werkzeug hinzu, das neben vielfältigen Informationen auch eine schicke Benutzeroberfläche zur Verfügung stellt. Und nicht nur das: Auch eine Netzwerküberwachung und das Bedienen mit der Maus oder der Tastatur sind mit bpytop möglich.
Bekanntermaßen handelt es sich bei Linux um ein Mehrbenutzer-Betriebssystem, bei dem eine Vielzahl von unterschiedlichen Prozessen pro Benutzer-Session aktiv sein kann. Um die Ressourcennutzung der einzelnen Anwender unter Kontrolle zu halten, bieten sämtliche Linux-Distributionen von Haus aus eine Vielzahl unterschiedlicher Tools an. Darunter sind beispielsweise so bekannte wie top [1] zum Monitoring von Prozessen, der CPU und des Speichers. Wer sich mehr dafür interessiert, was alles im Netzwerk los ist, der greift wahlweise zu IPtraf [2] oder, wenn etwas mehr Komfort und Funktionsumfang gewünscht ist, zu Wireshark [3]. Auch wenn einige dieser Tools über ein grafisches Pendant verfügen, zeichnet diese Werkzeuge aus, dass sie allesamt als reine Textanwendungen auf der Kommandozeile lauffähig sind. In manchen Fällen kommt die ncurses-Bibliothek zum Einsatz, um eine etwas elegantere Schnittstelle für die Interaktion mit Benutzern anzubieten.
Performant dank Python
Einen etwas anderen Weg geht das Tool bpytop [4]. Wie der Name bereits vermuten lässt, bietet das in Python geschriebene Tool einen ähnlichen Funktionsumfang an wie das bereits zuvor erwähnte top. Allerdings ist bpytop auch in der Lage, Informationen über die Auslastung des Netzwerks zu liefern, und kommt mit allerlei weiteren interessanten Funktionen daher. So können Sie das Tool beispielsweise wahlweise mit dem Keyboard oder auch der Maus bedienen. Unterschiedliche Themes helfen dabei, das Tool nahtlos in die eigene Terminal-Umgebung zu integrieren.
Der ein oder andere Leser mag beim Namen bpytop vielleicht an das ebenfalls recht bekannte Tool bashtop [5] denken. Und tatsächlich ist es so, dass beide Anwendungen vom selben Entwickler stammen. Während bashtop allerdings komplett auf die Skriptsprache bash zurückgreift, und somit naturgegeben mit Performanceproblemen zu kämpfen hat, ist bpytop in Python geschrieben. Dies führt natürlich zu einer wesentlich besseren Performance, was sofort bei der Bedienung des Programms auffällt. Alle Funktionen aus bashtop stehen auch in bpytop zur Verfügung, sodass es eigentlich keinen guten Grund mehr gibt, nicht auf das neue Tool zu setzen – solange eine Python-Laufzeit-Umgebung bereitsteht. An dieser Stelle ist noch interessant zu wissen, dass der Entwickler der Software bereits an der nächsten Iteration des Tools arbeitet. Im Mai 2021 kündigte dieser einen C++-Port der Software an. Wann dieser zur Verfügung stehen wird, stand zu diesem Zeitpunkt allerdings noch nicht fest.
Bekanntermaßen handelt es sich bei Linux um ein Mehrbenutzer-Betriebssystem, bei dem eine Vielzahl von unterschiedlichen Prozessen pro Benutzer-Session aktiv sein kann. Um die Ressourcennutzung der einzelnen Anwender unter Kontrolle zu halten, bieten sämtliche Linux-Distributionen von Haus aus eine Vielzahl unterschiedlicher Tools an. Darunter sind beispielsweise so bekannte wie top [1] zum Monitoring von Prozessen, der CPU und des Speichers. Wer sich mehr dafür interessiert, was alles im Netzwerk los ist, der greift wahlweise zu IPtraf [2] oder, wenn etwas mehr Komfort und Funktionsumfang gewünscht ist, zu Wireshark [3]. Auch wenn einige dieser Tools über ein grafisches Pendant verfügen, zeichnet diese Werkzeuge aus, dass sie allesamt als reine Textanwendungen auf der Kommandozeile lauffähig sind. In manchen Fällen kommt die ncurses-Bibliothek zum Einsatz, um eine etwas elegantere Schnittstelle für die Interaktion mit Benutzern anzubieten.
Performant dank Python
Einen etwas anderen Weg geht das Tool bpytop [4]. Wie der Name bereits vermuten lässt, bietet das in Python geschriebene Tool einen ähnlichen Funktionsumfang an wie das bereits zuvor erwähnte top. Allerdings ist bpytop auch in der Lage, Informationen über die Auslastung des Netzwerks zu liefern, und kommt mit allerlei weiteren interessanten Funktionen daher. So können Sie das Tool beispielsweise wahlweise mit dem Keyboard oder auch der Maus bedienen. Unterschiedliche Themes helfen dabei, das Tool nahtlos in die eigene Terminal-Umgebung zu integrieren.
Der ein oder andere Leser mag beim Namen bpytop vielleicht an das ebenfalls recht bekannte Tool bashtop [5] denken. Und tatsächlich ist es so, dass beide Anwendungen vom selben Entwickler stammen. Während bashtop allerdings komplett auf die Skriptsprache bash zurückgreift, und somit naturgegeben mit Performanceproblemen zu kämpfen hat, ist bpytop in Python geschrieben. Dies führt natürlich zu einer wesentlich besseren Performance, was sofort bei der Bedienung des Programms auffällt. Alle Funktionen aus bashtop stehen auch in bpytop zur Verfügung, sodass es eigentlich keinen guten Grund mehr gibt, nicht auf das neue Tool zu setzen – solange eine Python-Laufzeit-Umgebung bereitsteht. An dieser Stelle ist noch interessant zu wissen, dass der Entwickler der Software bereits an der nächsten Iteration des Tools arbeitet. Im Mai 2021 kündigte dieser einen C++-Port der Software an. Wann dieser zur Verfügung stehen wird, stand zu diesem Zeitpunkt allerdings noch nicht fest.
bpytop einrichten
Wer nun Interesse an dem Tool hat, der kann dieses entweder auf einem Linux-, FreeBSD- oder macOS-System ausprobieren. Nahezu sämtliche bekannten Linux-Distributionen bieten ein bereits fertiges Paket an, das Sie dann mit Hilfe des jeweiligen Paket-Managers installieren können. Auf einem Fedora-System kommt hierfür beispielsweise dnf zum Einsatz:
dnf install bpytop
Sollte wider Erwarten kein Paket für die Software in den Repositories Ihrer Linux-Distribution vorhanden sein, können Sie stattdessen auch auf den Python-Paketmanager pip zugreifen:
pip3 install bpytop --upgrade
Auf einem macOS-System bietet sich der Paketmanager brew [6] an, um die Software dort ebenfalls mit einem einzelnen Kommando aufzuspielen:
brew install bpytop
Setzen Sie stattdessen FreeBSD ein, bekommen Sie über FreeBSD Ports das Tool wie folgt auf Ihr System:
pkg install bpytop
Als letzte Möglichkeit können Sie die Quellen aus dem GitHub-Repository [4] natürlich auch selbstständig kompilieren.
Informationen über unterschiedliche Ressourcen
Nach dem ersten Start von bpytop sehen Sie standardmäßig vier unterschiedliche Boxen. So heißen die einzelnen Fenster, in denen das Tool die diversen Ressourcen verwaltet. Es existiert jeweils eine Box für CPUs, Speicher, Netzwerk und Prozesse. Jede Box besitzt dabei eine eindeutige Nummerierung von 1 bis 4. Durch Auswahl einer dieser Nummern können Sie bei Bedarf die dazugehörige Box temporär deaktivieren.
Grundsätzlich stellt jede Box zusätzliche Optionen zur Verfügung, mit denen Sie die Darstellung und den Umfang der Informationen innerhalb dieser Box anpassen können. So wählen Sie beispielsweise in der Netzwerkbox das gewünschte Gerät aus, für das bpytop Informationen liefern soll. In der Box für die Prozesse haben Sie die Möglichkeit, die Sortierreihenfolge zu ändern oder mit Hilfe der Cursortasten einen bestimmten Prozess auszuwählen, zu dem Sie gerne detaillierte Informationen hätten.
Das Tool zeigt dann beispielsweise den Status des Prozesses an, wie lange dieser schon läuft und wieviel Speicher dieser verwendet. Auch können Sie ein bestimmtes Signal direkt aus bpytop an einen Prozess senden, um diesen beispielsweise sauber zu beenden (TERM) oder zu terminieren (KILL), sollte der Prozess ansonsten nicht mehr reagieren.
Über das Menü passen Sie sowohl allgemeine Einstellungen als auch die Darstellungen der einzelnen Boxen an.
Grafisches Benutzerinterface
All diese Funktionen sind ebenfalls im Tool top verfügbar. Was die beiden Tools aber definitiv unterscheidet, ist das Benutzerinterface. Während top eine eher spartanische Oberfläche anbietet, setzt das Python-Tool nicht nur eine ganze Reihe unterschiedlicher Farben in den einzelnen Boxen ein, sondern gestattet auch den Einsatz verschiedener Themes, sodass Sie das Tool maßgeschneidert an die eigene Umgebung anpassen können.
Grundsätzlich nehmen Sie sämtliche Einstellungen über ein Menü innerhalb von bpytop vor. Dies betrifft zum einen allgemeine Einstellungen, wie beispielsweise das gewünschte Theme oder wie oft eine Aktualisierung der Daten stattfinden soll; zum anderen aber natürlich auch die Boxen selbst. Wenn Sie sich für eine bestimmte Box nicht interessieren, können Sie im Menü definieren, dass diese beim nächsten Start des Tools gar nicht mehr angezeigt wird.
Alternativ dazu lassen sich sämtliche Einstellungen aber natürlich auch über eine Konfigurationsdatei definieren, die das Tool beim Starten verwendet. Dieser Ansatz bietet sich gerade dann an, wenn Sie bpytop auf einer Vielzahl von unterschiedlichen Systemen mit einheitlicher Konfiguration ausrollen wollen. Die Datei können Sie dann über ein Konfigurations-Managementtool Ihrer Wahl auf die einzelnen Systeme verteilen. Standardmäßig erwartet das Tool eine globale Konfigurationsdatei namens "/etc/bpytop.conf". Benutzerspezifische Konfigurationen werden wie üblich im Heimatverzeichnis eines Benutzers unterhalb der Ordners ".config" hinterlegt: "$HOME/.config/bpytop".
Fazit
Wer nach einem Monitoringwerkzeug für eine Vielzahl von Systemen sucht, für den ist bpytop natürlich nicht das richtige Produkt, da es für den Einsatz auf einzelnen Rechnern gedacht ist. Hier wäre ein Werkzeug wie beispielsweise Icinga [7] sicherlich die bessere Wahl. Ein Vergleich bietet sich eher mit top und ähnlichen Programmen an. Für bpytop spricht sicherlich, dass ein sehr aktiver Entwickler mit einer kleinen Community stetig bemüht ist, die Software weiterzuentwickeln, und gerne Wünsche von Anwendern entgegennimmt.