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:

FacilityBedeutung
kernKernel
userBenutzer-Prozesse
mailMail-System
daemonSystem-Daemons
authAuthentifizierung (Login, sudo, SSH)
cronCron-Daemon
local0local7Frei verfügbar — für eigene Dienste und Skripte

Severities — die Dringlichkeit (von kritisch nach unwichtig):

StufeNameBedeutung
0emergSystem nicht mehr nutzbar
1alertSofortiger Handlungsbedarf
2critKritischer Fehler
3errFehler
4warningWarnung
5noticeNormales, aber bemerkenswertes Ereignis
6infoInformationsmeldung
7debugDebug-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:

PfadInhalt
/var/log/syslogAllgemeine Systemmeldungen (Debian/Ubuntu)
/var/log/messagesAllgemeine Systemmeldungen (RHEL/Fedora)
/var/log/auth.logAuthentifizierung (Debian)
/var/log/secureAuthentifizierung (RHEL/Fedora)
/var/log/kern.logKernel-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