Log-Dateien auswerten mit Hl 0.10.1, Konsolenbefehle optimal nutzen mit Navi 2.16.0, Systemauslastung remote erfassen mit Rtop 2.0.0rc, Programmabläufe verfolgen mit Strace 5.13.
Lesehilfe
Mit Hl 0.10.1 schmökern Sie bequem in Log-Dateien.
Immer mehr Programme speichern ihre Log-Informationen im JSON-Format – ideal für das automatisierte Weiterverarbeiten, aber für Menschen schlecht zu lesen. Hier hilft das in Rust geschriebene Hl weiter. Im Github-Repo des Projekts finden Sie Binärpakete für alle gängigen Betriebssysteme und Plattformen. Als Dokumentation steht nur die Online-Hilfe (--help) bereit, die alle verfügbaren Parameter kurz erklärt. Neben JSON-basierten Logs verarbeitet es solche im klassischen Textformat, selbst komprimierte Log-Dateien stellen Hl vor keine Probleme.
Um ein JSON-Log in lesbarer Form auszugeben, übergeben Sie Hl dessen Dateinamen samt vollständigem Pfad als Aufrufparameter. Bekannte Strukturen hebt das Tool farblich hervor, die Ausgabe erfolgt seitenweise. Mit dem Parameter --paging deaktivieren Sie die seitenweise Ausgabe, mit --color die farbliche Aufbereitung. Um die Ausgabe übersichtlicher zu halten, beschränken Sie die Ausgabe mit --filter auf bestimmte Schlüsselwerte.
Ein Filtern nach Log-Level klappt mit --level. Standardmäßig verarbeitet Hl Zeitstempel im Format Monat, Tag und Uhrzeit. Ein anderes Format geben Sie mit --time-format vor, die Zeitzone legt --time-zone fest. Zur schnelleren Verarbeitung lagert Hl die Daten in einem 2 MByte großen Puffer. Mit --buffer-size variieren Sie die Puffergröße je nach Bedarf und aktivieren außerdem mit --concurrency eine Parallelverarbeitung.
Spickzettel
Beim Arbeiten in der Konsole hilft Navi 2.16.0.
Es gibt wohl kaum jemand, der von sich behaupten kann, alle Befehle der Linux-Konsole samt deren Parameter zu kennen. Guter Rat findet sich in der Manpage oder auf Cheat-Seiten im Netz. Das Rust-Tool Navi hilft beim Durchstöbern der zahlreichen Cheatsheets. Binaries laden Sie von der Github-Seite des Projekts herunter, wo Sie auch Anwendungsbeispiele finden. Mit --help rufen Sie eine einfache Online-Hilfe auf.
Beim ersten Aufruf legt Navi unter ~/.local/share/navi/ seine Konfiguration an. Einige Cheatsheet-Seiten sind bereits auf Github hinterlegt. Sie laden nun einzelne oder alle hinterlegten Seiten herunter. Beim nächsten Aufruf ohne Parameter listet das Tool alle vorhandenen Einträge auf. Jeder davon besteht aus drei Komponenten. Er beginnt mit dem Namen des Programms, gefolgt von einer Funktionsbeschreibung. Zu guter Letzt sehen Sie den Befehl, den Navi bei Auswahl des Eintrags ausführt. So gibt es beispielsweise einen Eintrag, mit dem Sie ein Verzeichnis packen.
Ein Aufruf ohne Parameter führt Sie in den interaktiven Modus, wo sie via Pfeiltasten navigieren. Bei vielen Einträgen grenzen Sie die Liste durch Eingabe eines Suchmusters ein. Im Hintergrund greift Navi dazu auf Fzf zurück; wollen Sie lieber Skim nutzen, geben Sie dies mit --finder an. Mit dem Unterbefehl repo browse listen Sie die hinterlegten Cheat-Repos auf und laden bei Bedarf Seiten nach. Der Unterbefehl info gibt die aktuelle Konfiguration aus. Um Navi in die Standard-Shell zu integrieren, erzeugen Sie via widget eine Konfiguration, die Sie dann in die .bashrc einbinden.
Fernspäher
Mit Rtop 2.0.0rc überwachen Sie den Betriebszustand entfernter Linux-Systeme.
Die meisten Überwachungslösungen für entfernte Linux-Systeme sind auf den Einsatz in Rechenzentren ausgelegt und stellen entsprechende Anforderungen an die Infrastruktur. Das Go-Tool Rtop dagegen eignet sich ideal für den Einsatz im heimischen LAN. Die Github-Seite des Projekts stellt eine Binärdatei für Linux bereit, andere Systeme unterstützt Rtop noch nicht.
Das Tool erfasst in Fünf-Sekunden-Intervallen wichtige Eckdaten eines Remote-Systems, ohne dazu einen Client auf der Gegenseite zu benötigen. Der Zugriff erfolgt via SSH, wozu Sie beim Aufruf lediglich Benutzernamen und FQDN oder IP-Adresse angeben. Mit -i nutzen Sie eine Schlüsseldatei. Fehlt die Angabe, fragt Rtop nach dem Passwort. Über den undokumentierten Parameter -b stellt Rtop einen eigenen, passwortlosen SSH-Schlüssel bereit, der beim ersten Aufruf in der Datei authorized_keys des Benutzers auf dem Zielsystem landet – bequem, aber sicherheitstechnisch fragwürdig.
Rtop erfasst die Daten des Remote-Rechners so lange, bis Sie die Verbindung beenden. Es legt die Daten in Unterverzeichnissen des aktuellen Arbeitsverzeichnisses ab. In timeSeries/ erzeugt es einen Ordner mit dem Namen des Remote-Systems an und speichert dort die Daten im JSON-Format in Dateien mit der Unix-Standardzeit als Namen. Mit dem Parameter -n weisen Sie einem Aufruf einen individuellen Namen zu. In diesem Fall beendet die Software die Abfrage nach einem Durchlauf und legt das Ergebnis unter collections/ mit dem Aufrufnamen ab.
Dass die Daten im JSON-Format vorliegen, erleichtert das Weiterverarbeiten. Sie umfassen Punkte wie den Host-Namen, die IP-Adresse, die Uptime, die Auslastung von CPU und Speicher, die eingebundenen Laufwerke und anderes mehr. Bei Bedarf verarbeiten Sie die Informationen recht einfach in eigenen Skripten weiter.
Diagnostiker
Mit Strace 5.13 schauen Sie Programmen unter die Haube.
Funktioniert ein Programm nicht wie gewünscht, erlaubt Strace einen tieferen Blick unter dessen Haube und erleichtert damit die Fehlersuche. Viele Distributionen stellen ältere Versionen des Tools im Repository bereit. Die aktuelle Version müssen Sie aus den Quellen kompilieren, was aber schnell von der Hand geht.
Für eine einfache Analyse übergeben Sie Strace beim Aufruf den Namen samt Pfad des zu prüfenden Programms als Parameter. Das Tool fungiert als Wrapper und startet das Programm unter seiner Aufsicht. Das Ergebnis gibt es in der Konsole aus. So verfolgen Sie, welche Dateien und Bibliotheken das Programm öffnet oder nachlädt. Außerdem enthält die Ausgabe Informationen zu den verwendeten Sockets, der genutzten Benutzer- und Gruppen-ID sowie zur Belegung des Arbeitsspeichers.
Viele Programme teilen ihre Verarbeitung nach dem Start auf Kindprozesse auf. Strace behält auch diese im Auge und sortiert die Ergebnisse zeitlich korrekt ein. Um die Ausgabe in Ruhe zu lesen oder später weiterzuverarbeiten, leitet das Ergebnis mit -o in eine Datei um. Mit dem Parameter -v generieren Sie eine ausführliche Ausgabe, in der Sie gegebenenfalls per Filterfunktion für mehr Übersicht sorgen. Mit -e grenzen Sie die Ausgabe etwa auf bestimmte Bereiche wie etwa Prozesse oder das Netzwerk ein.
Bereits aktive Programme brauchen Sie nicht zwingend neu zu starten, um sie mit Strace zu beobachten. Sie übergeben Strace in diesem Fall die Prozess-ID des Programms, woraufhin es sich zwischen die Systemaufrufe der jeweiligen Prozess- und IO-Aufrufe schaltet. (jlu)








