Zum Inhalt springen

Logging

Logging ist unter Linux kein Sonderfall — es ist Standard. Jeder Dienst, jeder Kernel-Treiber, jedes Shell-Skript kann strukturierte Log-Meldungen absetzen. Und alle landen an einem zentralen Ort.

Das Werkzeug dafür ist logger:

Terminal-Fenster
logger "Backup gestartet"
logger -p local0.info "Backup gestartet"
logger -p local0.err "Backup fehlgeschlagen!"
logger -t backup "Backup von /home abgeschlossen"
# -p: Priorität (facility.severity)
# -t: Tag (erscheint als Programmname in der Log-Zeile)

Und sofort sichtbar:

Terminal-Fenster
journalctl -f
# Mar 24 10:00:00 server micha[1234]: Backup von /home abgeschlossen

Jede Log-Meldung trägt zwei Kennzeichen: woher sie kommt (Facility) und wie wichtig sie ist (Severity). Zusammen ergeben sie die Priorität — z. B. local0.err.

Facilities — die Herkunft:

Facility Bedeutung
kern Kernel
user Benutzer-Prozesse
mail Mail-System
daemon System-Daemons
auth Authentifizierung (Login, sudo, SSH)
cron Cron-Daemon
local0local7 Frei verfügbar — für eigene Dienste und Skripte

Severities — die Dringlichkeit (von kritisch nach unwichtig):

Stufe Name Bedeutung
0 emerg System nicht mehr nutzbar
1 alert Sofortiger Handlungsbedarf
2 crit Kritischer Fehler
3 err Fehler
4 warning Warnung
5 notice Normales, aber bemerkenswertes Ereignis
6 info Informationsmeldung
7 debug Debug-Details

Auf modernen Linux-Systemen landet alles zuerst im systemd Journal — einer zentralen, binären Log-Datenbank. Kein extra Log-Dienst nötig, journald läuft auf jedem systemd-System.

Terminal-Fenster
journalctl -n 20 # letzte 20 Einträge
journalctl -f # live mitlesen
journalctl -p err # nur Fehler (Severity ≤ err)

Daneben gibt es klassische Log-Dateien unter /var/log/ — sie werden von einem zusätzlichen Log-Dienst (rsyslog oder syslog-ng) geschrieben, der das Journal weiterliest oder direkt von Anwendungen befüllt wird:

Pfad Inhalt
/var/log/syslog Allgemeine Systemmeldungen (Debian/Ubuntu)
/var/log/messages Allgemeine Systemmeldungen (RHEL/Fedora)
/var/log/auth.log Authentifizierung (Debian)
/var/log/secure Authentifizierung (RHEL/Fedora)
/var/log/kern.log Kernel-Meldungen
/var/log/nginx/ nginx-Logs
/var/log/apache2/ Apache-Logs

Wenn doch eine Textdatei vorliegt:

Terminal-Fenster
tail -f /var/log/syslog # live mitlesen
less +F /var/log/syslog # less mit Follow-Modus (Strg+C → Suche möglich)
grep -i "error" /var/log/syslog
grep "sshd" /var/log/auth.log | tail -20
# Komprimierte alte Logs (von logrotate erzeugt)
zcat /var/log/syslog.2.gz
zgrep "error" /var/log/syslog.2.gz