Lesen von Protokolldateien unter Linux: journalctl und das Verzeichnis /var/log

Linux 4 Min. Lesezeit

Wenn ein Dienst nicht startet, eine Website eine Fehlermeldung anzeigt oder Sie etwas Ungewöhnliches auf dem Server feststellen, finden Sie die Antwort fast immer in den Protokolldateien (Logs). Auf modernen Linux-Systemen werden die Protokolle an zwei Orten gesammelt: im systemd-Protokoll, das Sie mit dem Befehl „journalctl“ einsehen können, und in den Textdateien des Verzeichnisses /var/log.

Die meisten Protokolle können nur als Root-Benutzer oder mit „sudo“ eingesehen werden.

Das systemd-Protokoll: journalctl

journalctl zeigt alle Meldungen des Systems und der von systemd verwalteten Dienste an einem Ort an. Die nützlichsten Optionen sind:

# Egy szolgáltatás naplója (pl. webszerver, SSH, adatbázis)
sudo journalctl -u httpd
sudo journalctl -u sshd
sudo journalctl -u mariadb

# Csak a legutóbbi 100 sor
sudo journalctl -u httpd -n 100

# Folyamatos követés (kilépés: Ctrl+C)
sudo journalctl -u httpd -f

# Időszak szerint
sudo journalctl --since "1 hour ago"
sudo journalctl --since "2026-10-20 08:00" --until "2026-10-20 09:00"

# Csak a hibák és annál súlyosabb üzenetek
sudo journalctl -p err

# Az aktuális, illetve az előző rendszerindítás óta
sudo journalctl -b
sudo journalctl -b -1

# Kernel üzenetek (pl. memóriahiány, lemezhibák)
sudo journalctl -k

Die Befehle können kombiniert werden, beispielsweise „sudo journalctl -u nginx -p err --since today“.

journalctl zeigt die Ausgabe seitenweise an: Mit der Leertaste können Sie blättern, hinter dem / können Sie einen Suchbegriff eingeben, und mit der Taste q können Sie das Programm beenden.

Bleiben die Protokolle nach einem Neustart erhalten?

Wenn der Befehl „journalctl --list-boots“ nur einen Systemstart anzeigt, wird das Protokoll lediglich im Arbeitsspeicher gespeichert und geht beim Neustart verloren. Auf dem AlmaLinux 10-Cloud-Image ergab der Test folgendes Ergebnis: Es gab kein Verzeichnis „/var/log/journal“, und auch nach mehreren Neustarts war nur der aktuelle Start zu sehen. So aktivieren Sie die dauerhafte Speicherung:

sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald

Ab diesem Zeitpunkt wird das Protokoll auf die Festplatte geschrieben; Einträge zu früheren Systemstarts werden nicht mehr erfasst. Im Test zeigte der Befehl „--list-boots“ nach dem nächsten Neustart bereits zwei Systemstarts an, und „journalctl -b -1“ gab auch das Protokoll des vorherigen Systemstarts aus.

Der vom Protokoll belegte Speicherplatz lässt sich mit dem Befehl „journalctl --disk-usage“ überprüfen und beispielsweise auf 500 MB reduzieren:

sudo journalctl --vacuum-size=500M

Das Verzeichnis /var/log

Viele Dienste (insbesondere Webserver und E-Mail-Dienste) schreiben in eigene Textprotokolldateien. Die häufigsten sind:

Blog AlmaLinux, Rocky Linux Ubuntu, Debian
Allgemeines Systemprotokoll /var/log/messages /var/log/syslog
Anmeldungen, SSH, sudo /var/log/secure /var/log/auth.log
Apache-Fehlerprotokoll /var/log/httpd/error_log /var/log/apache2/error.log
Apache-Zugriffsprotokoll /var/log/httpd/access_log /var/log/apache2/access.log
Nginx /var/log/nginx/error.log, access.log /var/log/nginx/error.log, access.log
Korrespondenz /var/log/maillog /var/log/mail.log
Paketverwaltung /var/log/dnf.log /var/log/apt/history.log

Ab Debian 12 ist rsyslog standardmäßig nicht installiert, weshalb die Dateien „/var/log/syslog“ und „/var/log/auth.log“ möglicherweise fehlen; in diesem Fall können dieselben Meldungen mit dem Befehl „journalctl“ eingesehen werden. Im Test war auf dem Debian-12-Cloud-Image keine der beiden Dateien vorhanden, während auf Ubuntu 24.04 und AlmaLinux 10 rsyslog läuft und dort auch die Textprotokolle erstellt werden.

Auf cPanel-Servern befindet sich das Apache-Fehlerprotokoll in der Datei „/etc/apache2/logs/error_log“, das E-Mail-Protokoll (Exim) in der Datei „/var/log/exim_mainlog“. Informationen zur Interpretation der Exim-Meldungen finden Sie unter: Erläuterung der verschiedenen Exim-Statuscodes.

Lesen von Protokolldateien mit den Befehlen „tail“, „less“ und „grep“

# Az utolsó 50 sor
sudo tail -n 50 /var/log/httpd/error_log

# Folyamatos követés: az új sorok azonnal megjelennek (kilépés: Ctrl+C)
sudo tail -f /var/log/httpd/error_log

# Lapozva, a fájl végéről indítva
sudo less +G /var/log/messages

# Keresés egy kifejezésre
sudo grep "Failed password" /var/log/secure
sudo grep -i "example.hu" /var/log/httpd/access_log

Bei der Fehlersuche ist es oft am einfachsten, wenn Sie in einem Terminal mit „tail -f“ das Protokoll verfolgen und gleichzeitig in einem Browser die fehlerhafte Seite neu laden: Die entsprechende Zeile wird sofort angezeigt. Informationen zur Anzeige der Zeilen vor und nach dem Treffer finden Sie im Artikel „Grep: Zeilen vor und nach dem Treffer anzeigen“.

Ältere, komprimierte Protokolle

logrotate schließt und archiviert die Protokolldateien regelmäßig (in der Regel wöchentlich), weshalb sich ältere Einträge in Dateien mit den Endungen .1, .2.gz oder mit einem Datum (z. B. messages-20261019) befinden. Unter AlmaLinux und Rocky Linux ist die datumsbasierte Benennung ohne Komprimierung üblich (in der Datei „/etc/logrotate.conf“ ist der Befehl „compress“ auskommentiert), unter Debian und Ubuntu hingegen die fortlaufend nummerierte Benennung mit .gz-Komprimierung. In den komprimierten Dateien können Sie mit den Befehlen „zgrep“ und „zless“ suchen, ohne sie zu entpacken:

sudo zgrep "Out of memory" /var/log/messages-*

Sollte eine Protokolldatei zu groß geworden sein und den Speicherplatz auf der Festplatte belegen, hilft Ihnen unser Artikel zum Auffinden und Löschen großer „error_log“-Dateien weiter.

Zurück: Linux-Artikel (62)