So verwenden Sie Journalctl zum Lesen von Linux-Systemprotokollen

Fatmawati Achmad Zaenuri/Shutterstock
Die Linux-Systemprotokollierung hat sich mit der Einführung von |_+_| geändert. Erfahren Sie, wie Sie |_+_| . verwenden Befehl zum Lesen und Filtern von Systemprotokollnachrichten.
Zentralisierte Protokollierung
Kontroversen sind keine Unbekannten, die |_+_| System- und Servicemanager führte eine bedeutende Änderung in der Art und Weise ein, wie Systemprotokolle gesammelt werden. Früher befanden sich Protokolle je nach Dienst oder Daemon, der sie erstellt hat, an verschiedenen Stellen im Dateisystem. Aber eines hatten sie alle gemeinsam. Es waren reine Textdateien.
Mit |_+_| Alle System-, Boot- und Kernel-Protokolldateien werden von einer zentralen, dedizierten Protokollierungslösung gesammelt und verwaltet. Das Format, in dem sie gespeichert werden, ist ein binäres. Dies erleichtert unter anderem die Möglichkeit, die Daten in verschiedene Formate zu extrahieren, wie z JSON , wie wir sehen werden.
es kann auch den Querverweis auf verwandte Informationen erleichtern, die zuvor in separaten Protokolldateien aufgezeichnet wurden. Da die Daten nun in einem einzigen Journal gehalten werden, können die Daten aus mehreren interessanten Quellen ausgewählt und in einer einzigen ineinander verwobenen Liste von Einträgen angezeigt werden.
|_+_| ist das Werkzeug habe früher mit der Zeitschrift gearbeitet .
Journalctl ohne Schnickschnack
Sie können |_+_| . aufrufen ohne Befehlszeilenparameter:
systemd
|_+_| zeigt das gesamte Journal an, wobei die ältesten Einträge ganz oben in der Liste stehen. Die Liste wird in |_+_| angezeigt, sodass Sie mit den üblichen Navigationsfunktionen von |_+_| blättern und suchen können. Sie können auch die |_+_| und |_+_| Tasten zum seitlichen Blättern, um breite Protokolleinträge zu lesen.
Drücken der |_+_| -Taste springt direkt an das Ende der Liste und die neuesten Protokolleinträge.
Drücken Sie |_+_| beenden.
VERBUNDEN: So verwenden Sie den less-Befehl unter Linux
Obwohl |_+_| kann ohne |_+_| aufgerufen werden, Sie werden sicherstellen, dass Sie alle Details sehen im Protokoll, wenn Sie |_+_| verwenden.
journalctl
Bei Bedarf können Sie |_+_| sendet seine Ausgabe an das Terminalfenster statt an |_+_|, indem Sie das |_+_| . verwenden Möglichkeit.
systemd
Die Ausgabe scrollt schnell durch das Terminalfenster, und Sie kehren zur Eingabeaufforderung zurück.
Um die Anzahl der Zeilen zu begrenzen, die |_+_| zurückgibt, verwende das |_+_| (Linien) Option. Lassen Sie uns nach zehn Ausgabezeilen fragen:
systemd
Folgende Zeitschriftenaktualisierungen
Um |_+_| . zu machen Zeigen Sie die neuesten Einträge an, sobald sie im Journal eintreffen, verwenden Sie die |_+_| (folgen) Option.
journalctl
Der neueste Eintrag hat einen Zeitstempel von 07:09:07. Wenn eine neue Aktivität stattfindet, werden die neuen Einträge am unteren Rand der Anzeige angehängt. Nahezu Echtzeit-Updates – cool!
Um 07:09:59 eine Anwendung namens |_+_| fügte einen Protokolleintrag in das Journal ein, der besagte, Neue Nachricht von HTG.
Ändern des Anzeigeformats
Da das Journal eine Binärdatei ist, müssen die darin enthaltenen Daten übersetzt oder in Text geparst werden, bevor sie Ihnen angezeigt werden können. Mit unterschiedlichen Parsern können aus denselben binären Quelldaten unterschiedliche Ausgabeformate erstellt werden. Es gibt verschiedene Formate, die |_+_| Kann benutzen.
Die Standardausgabe ist das Kurzformat, das dem klassischen Systemprotokollformat sehr ähnlich ist. Um das Kurzformat explizit anzufordern, verwenden Sie das |_+_| (Ausgabe)-Option mit der |_+_| Modifikator.
journalctl
Von links nach rechts sind die Felder:
- Die Uhrzeit, zu der die Nachricht erstellt wurde, in Ortszeit.
- Der Hostname.
- Der Prozessname. Dies ist der Prozess, der die Nachricht generiert hat.
- Die Protokollnachricht.
Um einen vollständigen Datums- und Zeitstempel zu erhalten, verwenden Sie die |_+_| Modifikator:
journalctl
Die Datums- und Uhrzeitformate in dieser Ausgabe sind das Format, in dem Sie Datum und Uhrzeit angeben müssen, wenn Sie Protokollmeldungen nach Zeitraum auswählen, wie wir gleich sehen werden.
AnzeigeUm alle Metadaten anzuzeigen, die jeder Protokollnachricht beiliegen, verwenden Sie |_+_| Modifikator.
less
Dort sind viele mögliche Felder , aber es kommt selten vor, dass alle Felder in einer Nachricht vorhanden sind.
Ein Thema, das es wert ist, diskutiert zu werden, ist das |_+_| Bereich. In diesem Beispiel hat es den Wert 6. Der Wert repräsentiert die Bedeutung der Nachricht:
- & rsaquo; Cyber Monday 2021: Die besten Tech-Deals
- & rsaquo; Cyber Monday 2021: Die besten Apple-Angebote
- › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
- › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
- › So finden Sie Ihr Spotify Wrapped 2021
- › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
Wenn Sie möchten, dass die Ausgabe richtig formatiert dargestellt wird JavaScript-Objekt-Notation (JSON)-Objekte verwenden Sie die |_+_| Modifikator:
less
Jede Nachricht wird ordnungsgemäß als wohlgeformtes JSON-Objekt verpackt und eine Nachricht pro Ausgabezeile angezeigt.
Um die JSON-Ausgabe zu haben hübsch bedruckt , benutze das |_+_| Modifikator.
Left Arrow
Jedes JSON-Objekt ist auf mehrere Zeilen aufgeteilt, wobei jedes Name-Wert-Paar in einer neuen Zeile steht.
Um nur die Protokolleintragsnachrichten ohne Zeitstempel oder andere Metadaten anzuzeigen, verwenden Sie |_+_| Modifikator:
Right Arrow
Dieses Anzeigeformat kann es schwierig machen, zu erkennen, welcher Prozess das Protokollereignis ausgelöst hat, obwohl einige Meldungen einen Hinweis enthalten.
Auswählen von Protokollnachrichten nach Zeitraum
Um die Ausgabe von |_+_| . zu begrenzen zu einem gewünschten Zeitraum verwenden Sie |_+_| (seit) und |_+_| (bis) Optionen.
Verwenden Sie diesen Befehl, um die Protokolleinträge seit einer bestimmten Uhrzeit und einem bestimmten Datum anzuzeigen:
End
Die Anzeige enthält nur Meldungen, die nach Datum und Uhrzeit im Befehl angekommen sind.
Um einen Zeitraum zu definieren, über den Sie berichten möchten, verwenden Sie die beiden |_+_| (seit) und |_+_| (bis) Optionen zusammen. Dieser Befehl betrachtet Protokollnachrichten aus einem Zeitraum von 15 Minuten.:
Ctrl+C
Dies ist eine großartige Kombination, wenn Sie wissen, dass auf Ihrem System etwas Seltsames passiert ist und ungefähr wann es passiert ist.
Verwenden relativer Zeiträume
Sie können die relative Adressierung verwenden, wenn Sie Ihre Zeiträume auswählen. Das heißt, Sie können Dinge wie Zeig mir alle Ereignisse von vor einem Tag bis jetzt sagen. Genau das bedeutet dieser Befehl. Das d steht für Tag und die -1 bedeutet einen Tag in der Vergangenheit.
journalctl
Die Log-Meldungen werden von 00:00:00 gestern bis jetzt aufgelistet.
Wenn Sie etwas untersuchen möchten, das sich in der jüngeren Vergangenheit ereignet hat, können Sie einen relativen Zeitraum in Stunden angeben. Hier überprüfen wir die Protokollnachrichten der letzten Stunde:
sudo
Die Nachrichten der letzten Stunde werden Ihnen angezeigt. Sie können auch m verwenden, um relative Zeiträume in Minuten und w für Wochen einzustellen.
|_+_| versteht |_+_|, |_+_| und |_+_|. Diese Modifikatoren bieten eine praktische Möglichkeit, allgemeine Zeiträume anzugeben. Um alle Ereignisse anzuzeigen, die gestern passiert sind, verwenden Sie diesen Befehl:
sudo
Alle gestrigen Tagebuch-Ereignisse bis Mitternacht 00:00:00 werden abgerufen und für Sie angezeigt.
Um alle bisher empfangenen Protokollnachrichten anzuzeigen, verwenden Sie diesen Befehl:
journalctl
Es wird alles von 00:00:00 bis zum Zeitpunkt der Befehlsausgabe angezeigt.
Sie können die verschiedenen Zeitdauer-Modifikatoren mischen. Um alles von vor zwei Tagen bis heute zu sehen, verwenden Sie diesen Befehl:
less
Alles von vorgestern bis heute wird abgerufen und angezeigt.
Auswählen von Protokollnachrichten nach Datenfeldern
Sie können nach Protokollnachrichten suchen die zu einer Vielzahl von Zeitschriftenbereichen passen . Diese Suchen versuchen, Übereinstimmungen in den Metadaten zu finden, die an jede Nachricht angehängt sind. Es wird empfohlen, dass Sie siehe Liste der Felder und wählen Sie diejenigen aus, die für Sie am nützlichsten sind.
AnzeigeBedenken Sie, ob ein Antrag alle Felder ausfüllt oder nicht, liegt ganz bei den Autoren des Antrags. Sie können nicht garantieren, dass jedes Feld ausgefüllt wird.
Alle Journalfeldmodifikatoren werden auf die gleiche Weise verwendet. Wir werden einige in unseren Beispielen unten verwenden. Um nach Protokollnachrichten einer bestimmten Anwendung zu suchen, verwenden Sie |_+_| (Befehl) Modifikator. Wenn Sie auch die |_+_| . verwenden (folgen) Option, |_+_| verfolgt neue Nachrichten von dieser Anwendung, sobald sie eintreffen.
--no-pager
Log-Einträge können Sie über die Prozess ID des Prozesses, der die Protokollnachricht generiert hat. Verwenden Sie die |_+_| Befehl, um die zu finden Prozess-ID des Daemons oder der Anwendung, nach der Sie suchen werden .
journalctl
Auf der Maschine, mit der dieser Artikel recherchiert wurde, ist die SSH Daemon ist Prozess 751.
Sie können auch suchen nach Benutzeridentifikation . Dies ist die Benutzer-ID der Person, die die Anwendung oder den Befehl gestartet hat oder der den Prozess besitzt.
-n
Alle Nachrichten, die mit anderen Benutzer-IDs verknüpft sind, werden herausgefiltert. Es werden nur Nachrichten angezeigt, die sich auf den Benutzer 1000 beziehen:
Eine andere Möglichkeit, nach Protokollnachrichten zu suchen, die sich auf eine bestimmte Anwendung beziehen, besteht darin, den Pfad zur ausführbaren Datei anzugeben.
journalctl
Alle |_+_| Scheduler-Log-Meldungen werden abgerufen und angezeigt .
Um die Suche zu erleichtern, können wir |_+_| . fragen um alle darin enthaltenen Werte für eines der Journalfelder aufzulisten.
Um die Benutzer-IDs anzuzeigen, die |_+_| Protokollnachrichten für aufgezeichnet hat, verwenden Sie die |_+_| (Felder) und übergeben die |_+_| Feldkennung.
-f
Machen wir das noch einmal und schauen wir uns die an Gruppen-IDs (GIDs):
geek-app
Sie können dies mit jedem der Feldbezeichner für Journale .
Kernel-Nachrichten auflisten
Es gibt eine integrierte Möglichkeit, Kernel-Nachrichten schnell zu isolieren. Sie müssen sie nicht selbst suchen und isolieren. Die |_+_| (Kernel)-Option entfernt alle anderen Meldungen und gibt Ihnen eine sofortige Ansicht der Kernel-Log-Einträge.
journalctl
Die Hervorhebung spiegelt die Bedeutung der Nachricht entsprechend den Werten im |_+_| Bereich.
Boot-Meldungen überprüfen
Wenn Sie ein Problem beim Booten haben, das Sie untersuchen möchten, |_+_| hat dich bedeckt. Vielleicht haben Sie neue Hardware hinzugefügt und diese reagiert nicht oder eine zuvor funktionierende Hardwarekomponente funktioniert nach Ihrem letzten Systemupgrade nicht mehr.
Um die Protokolleinträge zu Ihrem letzten Start anzuzeigen, verwenden Sie |_+_| (Boot-Option:
-o
Die Log-Einträge des letzten Bootvorgangs werden Ihnen angezeigt.
Wenn wir letztes Booten sagen, meinen wir den Bootvorgang, der Ihren Computer für Ihre aktuelle angemeldete Sitzung zum Leben erweckt hat. Um frühere Stiefel zu sehen, können Sie eine Zahl verwenden, um |_+_| . anzugeben an welchem Boot Sie interessiert sind. Um den dritten vorherigen Boot anzuzeigen, verwenden Sie diesen Befehl:
short
Wenn Sie ein Problem hatten und Ihren Computer neu starten mussten, ist dies im Allgemeinen eine vorherige Bootsequenz, an der Sie interessiert sind. Dies ist also eine gängige Befehlsform.
Bei der Reihenfolge der Stiefel kann man leicht verwechselt werden. Um zu helfen, können wir |_+_| . fragen um die Stiefel aufzulisten, die es in seinem Tagebuch aufgezeichnet hat, mit dem |_+_| Möglichkeit.
short-full
Anhand des Datums- und Zeitstempels können Sie den Bootvorgang identifizieren, für den Sie Nachrichten anzeigen möchten, und dann die Nummer in der linken Spalte verwenden, um die Protokollnachrichten für diese Bootsequenz abzurufen. Sie können auch die 32-Bit-Boot-ID auswählen und diese an |_+_| übergeben.
verbose
Die Protokollmeldungen der angeforderten Bootsequenz werden abgerufen und angezeigt.
Journal-Festplattenspeicher verwalten
Natürlich werden das Journal und alle seine Log-Meldungen auf Ihrer Festplatte gespeichert. Das bedeutet, dass sie Speicherplatz auf der Festplatte belegen. Um zu sehen, wie viel Platz das Tagebuch eingenommen hat, verwenden Sie |_+_| Möglichkeit.
Priority
Bei heutigen Festplatten sind 152 MB nicht viel Platz, aber zu Demonstrationszwecken werden wir ihn trotzdem zurückschneiden. Es gibt zwei Möglichkeiten, dies zu tun. Die erste besteht darin, eine Größenbeschränkung festzulegen, auf die das Journal zurückverkleinert werden soll. Es wird natürlich wieder wachsen, aber wir können es jetzt für dieses neue Wachstum beschneiden.
Wir verwenden das wunderbar betitelte |_+_| Option, und geben Sie die Größe ein, auf die das Journal reduziert werden soll. Wir bitten um 100 MB. Die Art zu denken ist, wir fragen |_+_| wegzuwerfen, was immer Sie können, aber gehen Sie nicht unter 100 MB.
json
Die andere Möglichkeit, die Journalgröße zu verkleinern, besteht darin, das |_+_| . zu verwenden Möglichkeit. Diese Option sagt |_+_| um Nachrichten zu verwerfen, die älter sind als der von Ihnen in der Befehlszeile angegebene Zeitraum. Sie können |_+_|, |_+_|, |_+_| und |_+_| . verwenden im Zeitraum.
Lassen Sie uns alle Nachrichten aussortieren, die älter als eine Woche sind:
json-pretty
Daten vs. Informationen
Daten sind nicht nützlich, es sei denn, Sie können darauf zugreifen und sie nutzen. Dann werden daraus nützliche Informationen. Die |_+_| command ist ein flexibles und ausgeklügeltes Werkzeug, mit dem Sie auf verschiedene Weise auf die gewünschten Informationen zugreifen können.
Sie können fast jeden Informationsschnipsel verwenden, um die benötigten Protokollnachrichten zu erfassen.
VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten
WEITER LESEN
Dave McKay benutzte zum ersten Mal Computer, als Lochstreifen in Mode waren, und programmiert seitdem. Nach über 30 Jahren in der IT-Branche ist er heute hauptberuflich Technologiejournalist. Im Laufe seiner Karriere war er als freiberuflicher Programmierer, Leiter eines internationalen Softwareentwicklungsteams, Projektleiter für IT-Services und zuletzt als Datenschutzbeauftragter tätig. Sein Schreiben wurde von howtogeek.com, cloudavvyit.com, itenterpriser.com und opensource.com veröffentlicht. Dave ist ein Linux-Evangelist und Open-Source-Verfechter.
Vollständige Biografie lesen