Journalctl: Befehle und Tipps zur Fehlerbehebung in Linux-Protokollen
Was ist journalctl?
Journalctl ist ein Befehlszeilenprogramm für Linux-Systeme, mit dem du auf Systemprotokolle zugreifen kannst, die vom Systemd-Journal verwaltet werden. Systemd ist der Standard-Init-System für die meisten modernen Linux-Distributionen und protokolliert Ereignisse und Nachrichten von verschiedenen Systemkomponenten, darunter:
- Kernel-Meldungen
- Dienste
- Anwendungen
- Benutzeraktionen
Funktionen von journalctl
Mit journalctl kannst du:
- Protokolleinträge anzeigen: Zeige alle oder bestimmte Protokolleinträge an.
- Protokolle filtern: Filtere Protokolleinträge nach bestimmten Kriterien wie Schweregrad, Zeitstempel oder Einheit.
- Nach Protokolleinträgen suchen: Suche nach bestimmten Zeichenfolgen oder Mustern in den Protokolleinträgen.
- Protokolle in Dateien speichern: Speichere Protokolleinträge in Textdateien oder andere Formate wie JSON oder XML.
- Protokolle in Echtzeit überwachen: Folge Protokollen in Echtzeit, während die Ereignisse eintreten.
Vorteile der Verwendung von journalctl
Journalctl bietet mehrere Vorteile gegenüber anderen Protokollverwaltungstools:
- Zentralisiertes Protokollmanagement: Systemd-Journal fungiert als zentrale Anlaufstelle für alle Systemprotokolle.
- Strukturierte Protokolleinträge: Protokolleinträge werden in einem strukturierten Format gespeichert, was die Analyse und Fehlersuche vereinfacht.
- Persistente Speicherung: Protokolleinträge werden dauerhaft auf dem Datenträger gespeichert und können auch nach einem Systemneustart abgerufen werden.
- Einfach zu verwendende Befehlszeilenschnittstelle: Die Befehlszeilenschnittstelle von journalctl ist einfach zu erlernen und zu verwenden.
Journalctl-Befehle: Grundlagen
Was ist der Befehl journalctl?
journalctl
ist ein zentrales Programm zur Anzeige und Verwaltung von Systemprotokollen unter Linux. Es ermöglicht dir, auf die von verschiedenen Systemdiensten, Kernel-Modulen und Anwendungen generierten Meldungen zuzugreifen und diese zu filtern.
Aufrufen des Befehls journalctl
Um journalctl
aufzurufen, öffne ein Terminalfenster und gib folgenden Befehl ein:
journalctl
Dies zeigt die neuesten Protokolleinträge an.
Grundlegende Befehle
Die folgenden Befehle kannst du verwenden, um die Protokolle zu durchsuchen und zu filtern:
-
-a
(alle Einträge): Zeigt alle Protokolleinträge an, einschließlich derjenigen, die von inaktiven Prozessen erstellt wurden. -
-b
(Boot): Zeigt Protokolleinträge an, die seit dem letzten Systemstart generiert wurden. -
-e
(Ende): Zeigt die letzten Protokolleinträge an. -
-f
(folgen): Folgt den Protokollen und zeigt neue Einträge in Echtzeit an. -
-n
(Anzahl): Begrenzt die Anzahl der angezeigten Einträge (z. B.-n 10
). -
-p
(Priorität): Filtert Protokolleinträge nach Priorität (z. B.-p err
für Fehlermeldungen). -
-u
(Einheit): Filtert Protokolleinträge nach Einheit (z. B.-u systemd
für Einträge von systemd).
Journalctl-Flags: Protokollfilterung und mehr
Mit Journalctl-Flags kannst du die angezeigten Protokolleingaben weiter filtern und spezifizieren. Hier sind einige nützliche Flags:
Filterung nach Nachrichtenebene
- -p: Filtert protokollierte Meldungen nach einer bestimmten Prioritätsstufe, z. B. -p info, um nur Meldungen mit der Priorität "info" anzuzeigen.
Filterung nach Prozess-ID
- -u: Filtert Protokolleinträge eines bestimmten Prozesses (Angabe der PID).
Filterung nach Dienst
- -b: Filtert Protokolleinträge eines bestimmten Systemd-Dienstes (Systemd ist der Standard-System- und Service-Manager unter Linux).
Suche nach Text
- -m: Filtert Protokolleinträge, die einen bestimmten Text enthalten, z. B. -m "Fehler", um Meldungen zu finden, die das Wort "Fehler" enthalten.
Formatierungsauswahl
- --no-pager: Unterdrückt die Verwendung eines Paginierungstools wie less oder more und zeigt die Protokolle direkt an.
- --output: Legt das Ausgabeformat fest, z. B. --output=json für die Ausgabe im JSON-Format.
Häufige Flags für die Fehlersuche
- -f: Folgt den Protokollen in Echtzeit und zeigt neue Einträge an, sobald sie geschrieben werden.
- -r: Zeigt Protokolleinträge in umgekehrter chronologischer Reihenfolge an.
Journalctl-Einheiten: Protokollierung nach Dienst
Eine der nützlichsten Funktionen von journalctl
ist die Möglichkeit, Protokolle nach Systemd-Einheiten zu filtern. Hierbei handelt es sich um Dienstanwendungen, die über systemctl
gesteuert werden.
Gründe für die Verwendung von Einheitenfiltern
Die Filterung nach Einheiten kann hilfreich sein, wenn du:
- Einem bestimmten Dienst zugeordnete Protokolle einsehen möchtest
- Die Ursache eines Problems bei einem bestimmten Dienst ermitteln möchtest
- Die Protokollmeldungen überwachen möchtest, die von einem Dienst erzeugt werden, etwa für Debugging-Zwecke
So filterst du nach Einheiten
Um nach Einheiten zu filtern, verwende die -u
-Option gefolgt vom Namen der Einheit. Beispielsweise kannst du Folgendes eingeben, um die Protokolle der Einheit sshd
anzuzeigen:
journalctl -u sshd
Du kannst auch Platzhalter verwenden, um mehrere Einheiten abzugleichen. Beispielsweise findest du so die Protokolle aller Einheiten, die mit "sshd"
beginnen:
Weiterführende Informationen gibt es bei: So aktualisieren Sie Ihren Ubuntu-Kernel sicher und effektiv
journalctl -u sshd*
Vorteile von Einheitenfiltern
Die Filterung nach Einheiten bietet mehrere Vorteile:
- Präzision: Du kannst bestimmte Dienste isolieren und ihre zugehörigen Protokolle anzeigen.
- Bequeme Fehlersuche: Die Filterung nach Einheiten vereinfacht die Fehlersuche, da sie es dir ermöglicht, dich auf die Protokolle des problematischen Dienstes zu konzentrieren.
- Überwachung der Dienstaktivität: Du kannst Einheitenfilter verwenden, um die Aktivitäten bestimmter Dienste zu überwachen und sicherzustellen, dass sie ordnungsgemäß funktionieren.
Journalctl-Zeitfilter: Fehlersuche nach Zeitraum
Wenn du nach Problemen in einem bestimmten Zeitraum suchst, ermöglichen dir Zeitfilter eine präzise Eingrenzung deiner Suchergebnisse.
Syntax
Die Syntax für Zeitfilter lautet:
journalctl --since <Startzeit> --until <Endzeit>
wobei:
-
<Startzeit>
das Datum und die Uhrzeit im FormatJJJJ-MM-TT hh:mm:ss
angibt, z. B.2023-05-01 12:00:00
-
<Endzeit>
das Datum und die Uhrzeit im gleichen Format angibt, z. B.2023-05-05 17:00:00
Relative Zeitfilter
Du kannst auch relative Zeitfilter verwenden, um die Suche nach einem bestimmten Zeitraum vor der aktuellen Uhrzeit einzugrenzen. Die folgenden Flags stehen dir zur Verfügung:
-
--since now
: Filterung seit der aktuellen Uhrzeit -
--since <Anzahl><Einheit>
: Filterung seit einer bestimmten Anzahl von Einheiten, z. B.--since 1 hour
-
--until now
: Filterung bis zur aktuellen Uhrzeit
Uhrzeitzonen berücksichtigen
Wenn du Zeitfilter verwendest, ist es wichtig, die Zeitzone zu berücksichtigen. Standardmäßig verwendet journalctl
die lokale Zeitzone. Du kannst die Zeitzone jedoch mit dem Flag --utc
auf UTC festlegen.
Beispiele
Beispiel 1: Nach Protokollen für den Zeitraum vom 1. bis 5. Mai 2023 suchen:
journalctl --since "2023-05-01 00:00:00" --until "2023-05-05 23:59:59"
Beispiel 2: Nach Protokollen für die letzten 24 Stunden suchen:
journalctl --since "now -24 hours"
Beispiel 3: Nach Protokollen für den Zeitraum von 12:00 Uhr bis 17:00 Uhr am 1. Mai 2023 suchen:
journalctl --since "2023-05-01 12:00:00" --until "2023-05-01 17:00:00"
Journalctl-Fehlersuche: Häufige Probleme und Lösungen
Keine Protokollmeldungen
- Stelle sicher, dass systemd aktiv ist. Führe den Befehl
systemctl status systemd-journald
aus, um den Status zu überprüfen. - Überprüfe, ob der journald-Dienst gestartet wurde:
systemctl start systemd-journald
- Überprüfe, ob die Protokolldatei vorhanden ist:
ls -l /var/log/journal
Benötigte Informationen fehlen in den Meldungen
- Verwende den Flag
--output=short
oder--output=json
, um mehr Informationen anzuzeigen. - Überprüfe die journald.conf-Datei (/etc/systemd/journald.conf) auf benutzerdefinierte Filter oder Masken, die relevante Meldungen ausblenden könnten.
Langsame Leistung
- Begrenze die Anzahl der angezeigten Meldungen mit dem Flag
--lines
. - Deaktiviere persistent journaling:
systemctl mask systemd-journal-flush.service
- Verwende den Flag
--vacuum-size
oder--vacuum-time
, um alte Meldungen zu löschen.
Zugang verweigert
- Überprüfe, ob du root-Rechte hast.
- Überprüfe die Berechtigungen für die Protokolldatei, '/var/log/journal'.
- Setze den Eigentümer der Protokolldatei auf root.
Andere Probleme
- Fehler bei der Syntax: Überprüfe die Syntax deiner Befehle.
- Fehlende Berechtigungen: Vergewissere dich, dass du die erforderlichen Berechtigungen hast.
- Beschädigte Protokolldatei: Versuche, die Protokolldatei mit dem Befehl
journalctl --vacuum-size=1M
zu reparieren. - Probleme mit dem journald-Dienst: Starte den Dienst neu mit
systemctl restart systemd-journald
oder kontaktiere den Systembetreuer.
Journalctl-Beispiele: Praktische Anwendungsfälle
Wenn du Journalctl beherrschst, kannst du seine Leistungsfähigkeit in verschiedenen Szenarien nutzen, um Fehler zu beheben und dein Linux-System zu optimieren. Hier sind einige praktische Anwendungsfälle:
Protokolle nach Diensten filtern
Um die Protokolle eines bestimmten Dienstes anzuzeigen, verwende die Flag -u
. Zum Beispiel zeigt der folgende Befehl die Protokolle für den Dienst systemd-resolved
:
Erfahre mehr unter: systemctl status: Überwachung des Systemstatus unter Linux
journalctl -u systemd-resolved
Protokolle nach Zeitstempel filtern
Manchmal ist es nützlich, Protokolle nach einem bestimmten Zeitraum zu filtern. Du kannst dies mit den Flags --since
und --until
tun. Angenommen, du möchtest die Protokolle der letzten Stunde anzeigen, dann kannst du Folgendes ausführen:
journalctl --since "1 hour ago"
Protokolle nach Schlüsselwort filtern
Wenn du nach einem bestimmten Ereignis oder Fehler in den Protokollen suchst, kannst du die Flag -M
verwenden. Dieser Befehl sucht beispielsweise nach allen Vorkommen des Wortes "Fehlschlag":
journalctl -M Fehler
Journald-Konfiguration debuggen
Wenn du Probleme mit dem Journald-Dienst hast, kannst du die Protokolle des Dienstes selbst überprüfen. Dies kann mit dem Befehl journalctl -u journald
erfolgen.
Protokollausgabe formatieren
Standardmäßig gibt journalctl
Protokolle im Textformat aus. Du kannst jedoch auch andere Formate angeben, z. B. JSON oder XML. Verwende dazu die Flag -o
. Beispielsweise formatiert der folgende Befehl die Protokollausgabe im JSON-Format:
journalctl -o json
Protokolle im Echtzeitmodus verfolgen
Wenn du die Protokolle in Echtzeit verfolgen möchtest, kannst du den Befehl journalctl -f
verwenden. Dies ist nützlich, um zu überwachen, was in deinem System passiert, während du Änderungen vornimmst oder Probleme beheben.
Verwandte Artikel
- Linux-Gateway finden und anzeigen
- Die Macht des Linux-tree-Befehls: Verzeichnishierarchien effizient visualisieren
- Debian herunterfahren: Ein umfassender Leitfaden
- Die Macht der Linux-Konsole: Der Source-Befehl enthüllt
- MySQL unter Linux: Installation, Konfiguration und Optimierung
- Linux Open File: Anleitung zum Öffnen, Bearbeiten und Löschen von Dateien aus dem Terminal
- Linux from Scratch: Baue dein eigenes Linux-Betriebssystem
- Alpine Linux: Pakete installieren mit apk
- Wie man die Ubuntu-Version anzeigt: Eine einfache Anleitung
- Linux-Funktionen: Verständnis und Nutzung von Systemprivilegien
- Die ultimative Anleitung zu Linux HTML-Editoren: Code mit Leichtigkeit
- So zeigen Sie DNS-Server unter Linux an
- VeraCrypt für Ubuntu: Sichere Verschlüsselung unter Linux
- Linux-Dienst neu starten: Eine detaillierte Anleitung
- Wiederherstellung beschädigter Linux-Dateisysteme mit fsck: Ein umfassender Leitfaden
Neue Posts
World of Warcraft auf Linux spielen: Eine guide für Abenteurer
Einführung in World of Warcraft
Node.js NVM: Antworten auf die häufigsten Fragen
Entwicklung
Professionelle Gmail-HTML-Signaturen: Erstellen, Gestalten und Nutzen
Marketingstrategien
Die vollständige Anleitung zu poczta wp: Alles, was Sie wissen müssen
Sicherheit und Datenschutz
HTML-Content: Der ultimative Leitfaden zur Erstellung ansprechender Webseiten
SEO-Optimierung
Das HTML-Title-Attribut: Ein Leitfaden zur Optimierung von Titeln für SEO und Benutzerfreundlichkeit
Online-Marketing
HTTP-Statuscodes: Ihre Bedeutung und Verwendung im Web
Einführung in HTTP-Statuscodes
Besucherzähler für Websites: Tracking Ihres Website-Traffics für Erfolg
SEO-Optimierung
Beschleunigen Sie die Dateneingabe mit HTML Datalist
Webentwicklung
HTML in PUG konvertieren: Einfach und schnell gemacht
Webentwicklung
Beliebte Posts
SteamCMD: Der umfassende Leitfaden zur Verwaltung von Steam-Servern
Sicherheitsrichtlinien
POST-Anfragen: Erstellen, Senden und Empfangen von Daten im Web
Webentwicklung
LaTeX: Das mächtige Werkzeug für hochwertiges Dokumentenschreiben
Dokumentenerstellung
Wiederherstellung beschädigter Linux-Dateisysteme mit fsck: Ein umfassender Leitfaden
Fehlerbehebung
Die vollständige Anleitung zu poczta wp: Alles, was Sie wissen müssen
Sicherheit und Datenschutz
Gigacube Admin: Zugang zu den erweiterten Einstellungen Ihres Routers
Fehlerbehebung
Linux Mint Themes: Personalisieren Sie Ihren Desktop
Open Source
TCPdump-Beispiele: Paketakquise und Netzwerkdiagnose
Fehlerbehebung
Mounten von ISO-Images unter Linux: Eine Schritt-für-Schritt-Anleitung
Anleitungen
Linux Open File: Anleitung zum Öffnen, Bearbeiten und Löschen von Dateien aus dem Terminal
Open Source