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.
Eine Log-Meldung absetzen
Abschnitt betitelt „Eine Log-Meldung absetzen“Das Werkzeug dafür ist logger:
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:
journalctl -f# Mar 24 10:00:00 server micha[1234]: Backup von /home abgeschlossenFacility und Severity
Abschnitt betitelt „Facility und Severity“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 |
local0–local7 |
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 |
Wo landen die Meldungen?
Abschnitt betitelt „Wo landen die Meldungen?“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.
journalctl -n 20 # letzte 20 Einträgejournalctl -f # live mitlesenjournalctl -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 |
Log-Dateien mit der Shell lesen
Abschnitt betitelt „Log-Dateien mit der Shell lesen“Wenn doch eine Textdatei vorliegt:
tail -f /var/log/syslog # live mitlesenless +F /var/log/syslog # less mit Follow-Modus (Strg+C → Suche möglich)
grep -i "error" /var/log/sysloggrep "sshd" /var/log/auth.log | tail -20
# Komprimierte alte Logs (von logrotate erzeugt)zcat /var/log/syslog.2.gzzgrep "error" /var/log/syslog.2.gzThemen dieser Sektion
Abschnitt betitelt „Themen dieser Sektion“- journalctl — das Journal im Detail
- syslog — rsyslog und syslog-ng als klassische Log-Dienste
- Kernel-Log — dmesg und Kernel-Meldungen
- Logrotate & Dienst-Logs — Log-Rotation und anwendungsspezifische Logs