Harting Development

Journalctl: Befehle und Tipps zur Fehlerbehebung in Linux-Protokollen

Lukas Fuchs vor 4 Monaten Monitoring & Logging 3 Min. Lesezeit

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:

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 Format JJJJ-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:

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.

Weitere Beiträge

Folge uns

Neue Beiträge

Systemadministration

Raspberry Pi 4 Stromversorgung über GPIO: So machst du es sicher und sinnvoll

AUTOR • Nov 04, 2026
Linux-Server

Welche Festplatten für NAS: So wähle ich die richtige HDD ohne Geld zu verbrennen

AUTOR • Nov 04, 2026
Systemadministration

Onetec Erfahrungsberichte: Was die Behandlung wirklich kann, für wen sie passt und worauf ich achten würde

AUTOR • Nov 04, 2026
Linux-Server

Linux auf Surface installieren: So läuft dein Microsoft Surface mit Linux stabil und schnell

AUTOR • Nov 03, 2026
Netzwerk & Routing

NFS Volumes mit Linux mounten: Anleitung zum effektiven Dateisystemzugriff

AUTOR • Nov 03, 2026
Systemadministration

Windows Zeit synchronisieren per CMD: So setzt du die Uhr schnell und sauber zurück

AUTOR • Nov 02, 2026
Automatisierung & Scripting

Linux Dateien von URLs herunterladen: Die schnellsten Methoden mit wget, curl und Browser-Alternativen

AUTOR • Nov 01, 2026
Systemadministration

IrfanView für Linux: Kostenloser Grafikbetrachter und Bildbearbeitung im Alltag sinnvoll nutzen

AUTOR • Nov 01, 2026
Automatisierung & Scripting

Die besten Texteditoren für Linux: der klare Vergleich der führenden Optionen

AUTOR • Nov 01, 2026
Automatisierung & Scripting

PDF Bearbeitung unter Linux: Anleitung und bewährte Verfahren für schnelle, saubere Ergebnisse

AUTOR • Nov 01, 2026
Linux-Server

Baldurs Gate 3 unter Linux: Anleitung für begeisterte Spieler, die sofort loslegen wollen

AUTOR • Nov 01, 2026
Sicherheit & Hardening

Bluetooth Störsender Schutz vor unerwünschten Funkstörungen: So schütze ich meine Verbindungen

AUTOR • Nov 01, 2026
Netzwerk & Routing

Beste Position WLAN Router Wohnung: So holst du die maximale Reichweite raus

AUTOR • Oct 31, 2026
Netzwerk & Routing

OpenWrt auf Fritzbox installieren: So machst du deine Fritzbox zum flexiblen Router

AUTOR • Oct 31, 2026
Systemadministration

Autostart von Anwendungen unter Linux: So richtest du den Start beim Login sauber ein

AUTOR • Oct 31, 2026
Systemadministration

CMD Laufwerke wechseln: So wechselst du in der Eingabeaufforderung auf C, D oder USB

AUTOR • Oct 31, 2026
Sicherheit & Hardening

Mailer Daemon Virus entfernen: So prüfst du die Ursache und stoppst die E-Mails

AUTOR • Oct 31, 2026
Linux-Server

User anzeigen Linux: Alle Benutzer, aktive Sessions und Gruppen schnell finden

AUTOR • Oct 31, 2026
Systemadministration

Linux Benutzer anzeigen: Alle Nutzer schnell per Terminal finden

AUTOR • Oct 31, 2026
Systemadministration

Linux Gruppe anzeigen: So findest du Gruppen und Mitglieder schnell per Terminal

AUTOR • Oct 31, 2026

Beliebte Beiträge

Automatisierung & Scripting

Typing D: Tipps und Techniken für schnellere Eingabe

AUTOR • Apr 04, 2025
Automatisierung & Scripting

Die Verwendung von std::filesystem::exists in C++: Ein umfassender Leitfaden

AUTOR • Apr 04, 2025
Automatisierung & Scripting

Reguläre Ausdrücke und das Zeichen 'd': Anwendung und Beispiele

AUTOR • Apr 04, 2025
Netzwerk & Routing

Top 5 Free Online WHOIS Lookup Tools: Die besten kostenlosen Domain-Prüfer im Vergleich

AUTOR • Aug 06, 2026
Sicherheit & Hardening

Private DNS verwenden auf Android-Geräten

AUTOR • May 13, 2026
Linux-Server

Minecraft Server unter Linux: schnelle und einfache Einrichtung ohne Umwege

AUTOR • Jun 13, 2026
Systemadministration

Linux Swap: Ein umfassender Leitfaden zu virtuellem Speicher

AUTOR • Jun 11, 2026
Linux-Server

So finden Sie die Linux Mint Versionsnummer: 5 schnelle Wege ohne Rätselraten

AUTOR • Jun 13, 2026
Linux-Server

Bootfähigen Linux USB Stick erstellen: Schritt-für-Schritt Anleitung ohne Fehler

AUTOR • Jun 13, 2026
Netzwerk & Routing

Roborock mit WLAN verbinden: Schritt-für-Schritt-Anleitung für eine reibungslose Einrichtung

AUTOR • Jul 16, 2026
Systemadministration

CPPS Übungen: Effektive Wege zur Linderung chronischer Beckenschmerzen

AUTOR • Apr 10, 2026
Automatisierung & Scripting

Alles über e Nachkommastellen: Zahlen mit Präzision verstehen

AUTOR • Jul 14, 2025
Automatisierung & Scripting

Home Assistant auf Synology mit Docker: Ein umfassender Leitfaden

AUTOR • Mar 18, 2026
Netzwerk & Routing

iPhone WLAN Probleme nach Update: So lösen Sie die häufigsten Herausforderungen

AUTOR • Jun 18, 2025
Automatisierung & Scripting

Effiziente Algorithmen: Pseudocode verständlich erklärt

AUTOR • Jun 16, 2025
Systemadministration

Effiziente Suchmethoden in std::string: Ein Leitfaden zur Verwendung der std::string::find-Funktion

AUTOR • Apr 04, 2025
Systemadministration

WinSCP unter Linux: Die ultimative Anleitung zur Verwaltung von Remote-Dateien

AUTOR • Jun 11, 2026
Linux-Server

Ordnergröße in Linux anzeigen: So ermitteln Sie den Speicherplatzverbrauch effizient

AUTOR • Jun 12, 2026
Systemadministration

Linux RAM Informationen: Ein umfassender Überblick für bessere Analyse und Performance

AUTOR • Jun 12, 2026
Netzwerk & Routing

HP LaserJet Pro MFP M28w mit WLAN verbinden: Schritt-für-Schritt-Anleitung für eine stabile Einrichtung

AUTOR • Jun 12, 2026