Linux Logs – Journald, Syslog-ng, Rsyslog

Ein Linux-Protokollierungssystem ist eine Software, die Ereignisse und Aktivitäten auf einem Linux-Betriebssystem erfasst, speichert und verwaltet. Es hilft bei der Überwachung, Fehlerdiagnose und Systemanalyse, indem es Informationen wie Ereignisse aus dem Kernel, Diensten, Anwendungen und Benutzeraktionen über den Betrieb des Systems erfasst. Typische Protokollierungssysteme umfassen Protokolldateien, Dienste zur Protokollverarbeitung, Ereignisstufen und -formate sowie Funktionen zur Filterung und Weiterleitung von Ereignissen. Bekannte Beispiele sind Syslog, Rsyslog und Journald.


    • Journald ist die Logging-Komponente von Systemd, dem Init-System, das in vielen modernen Linux-Distributionen verwendet wird. Es nutzt Key-Value-Paare und Metadaten, um Protokolle sicher zu speichern und Manipulationen zu verhindern. Journald bietet eine effiziente, moderne Methode zur Protokollierung von Systemereignissen.

    • Syslog-ng ist eine erweiterte Version des traditionellen Syslog-Dienstes. Es ermöglicht das Sammeln, Filtern und Weiterleiten von Protokollen aus verschiedenen Quellen. Syslog-ng bietet fortschrittliche Funktionen wie Verschlüsselung, Multiline-Messages und Failover in der kostenpflichtigen Version. Es ist eine leistungsstarke Lösung zur Protokollverwaltung.

    • Rsyslog ist ein leistungsstarker Daemon zur Protokollverwaltung auf Unix-ähnlichen Betriebssystemen. Als Weiterentwicklung des klassischen Syslog-Dienstes bietet es erweiterte Funktionen, flexible Konfiguration und Unterstützung für verschiedene Protokollformate. Rsyslog kann Protokolle filtern, transformieren und an entfernte Server weiterleiten, was es zu einer vielseitigen Lösung macht.

Journald speichert im Gegensatz zu Rsyslog/Syslog-ng Logeinträge nicht in Textdateien sondern in Binärdateien ab. Das hat Vor-, und Nachteile:

Textdatei Binärdatei
Lesbarkeit Textdateien enthalten lesbare Zeichen und sind für Menschen leicht verständlich. Dies erleichtert das manuelle Bearbeiten und Lesen der Dateiinhalte. Binärdateien sind nicht für Menschen lesbar. Es ist schwer zu verstehen, was genau in der Datei gespeichert ist.
OS-Abhängigkeit Textdateien sind in der Regel plattformunabhängig. Sie können von verschiedenen Texteditoren auf verschiedenen Betriebssystemen geöffnet werden. Binärdateien können auf verschiedenen Betriebssystemen unterschiedliche Repräsentationen haben, was die Portabilität beeinträchtigen kann.
Versionskontrolle Textdateien sind in Versionierungssystemen leichter zu verfolgen und zu verwalten, da Änderungen gut lesbar sind. Binärdateien sind schwerer zu versionieren, da Änderungen nicht so leicht sichtbar sind wie in Textdateien.
Interoperabilität Textdateien können leicht von verschiedenen Programmen und Skriptsprachen gelesen und verarbeitet werden. Binärdateien können ohne spezifische Programme nicht gelesen werden.
Größe auf Dateisystem Textdateien können größer sein als binäre Dateien, da sie Zeichen-basiert sind. Dies kann zu erhöhtem Speicherplatzbedarf führen. Binärdateien sind in der Regel kompakter als Textdateien, da sie auf maschinenlesbaren Codes basieren. Dies spart Speicherplatz.
Verarbeitung Das Parsen von Textdateien kann im Vergleich zu binären Dateien langsamer sein, da Zeichen-basierte Verarbeitung mehr Zeit in Anspruch nehmen kann. Das Parsen von Binärdateien ist in der Regel schneller, da keine Zeichen-basierte Verarbeitung erforderlich ist.
 Darstellung Textdateien sind nicht geeignet, um komplexe Datenstrukturen und nicht-textbasierte Informationen (wie Bilder oder Multimedia) darzustellen. Binärdateien können komplexe Datenstrukturen speichern, die nicht leicht in Textform dargestellt werden können.
——————————- ——————————————————————————— ———————————————————————————

In vielen Fällen hängt die Wahl zwischen Text- und Binärdateien von der Art der gespeicherten Daten, dem Verwendungszweck und den Anforderungen an die Lesbarkeit, Effizienz und Verarbeitungsgeschwindigkeit ab. Somit ergeben sich unterschiedliche Voraussetzungen für das Logsystem.

Journald Rsyslog / Syslog-ng
Speicherung der Logeinträge Binär – Dateibasiert. Logeinträge können ohne den Journald Dienst nicht ausgelesen werden. Defekte in den Dateien man ggf. das gesamte Log unbrauchbar. Klartext – Dateibasiert. Logeinträge können mit Bordmitteln ausgelesen werden. Verschiedene Logdatein für Apache, SSH etc..
Strukturierte Logausgabe Logausgaben können direkt über den journald Befehl nach Diensten, Benutzern, Zeiträumen u.ä. ausgeben werden Logausgaben können nur mit externen Bordmitteln wie grep, sed, awk etc. gefiltert werden
——————————- ——————————————————————————— ———————————————————————————

Binär vs Text

Binärprotokolle ermöglichen eine effiziente Speicherung und schnelle Verarbeitung von detaillierten Informationen. Durch Textprotokolle bleiben wichtige Ereignisse für Menschen lesbar und einfach zu überprüfen. Diese Kombination erlaubt umfassende Analyse, Plattformunabhängigkeit und Leistungsoptimierung. In sicherheitskritischen Umgebungen sorgt die Verwendung beider Formate für effektive Sicherheitsüberprüfungen. Einziger Nachteil ist der Speicherplatzbedarf, da beide Logsysteme ihre Dateien unabhängig von Einander speichern .

Beide Logsysteme bieten die Möglichkeit den maximalen Speicherplatz festzulegen und so das präferierte Logsystem für große Zeiträume zu nutzen und das jeweils andere Logsystem auf kurze  Zeiträume zu beschränken.

Ab Debian 12 Bookworm wird Journald statt Rsyslog genutzt. Rsyslog kann allerdings einfach über die Paketverwaltung installiert und zusätzlich zu Journald verwendet werden. Bei gleichzeitiger Verwendung beider Logsysteme sollte Eines auf einen kurzen Zeitraum beschränkt werden. Die Installation und Konfiguration der Logdienste kann wie folgt realisiert werden:

      • Text basierter Log ohne Zeiteinschränkung, mit Bordmitteln auswertbar
      • Binär basierter Log über 7 Tage, schnell auslesbarer, log für Systemoperationen

In o.g. Konfigurationsbeispiel liegt der Focus auf Datenkonsistenz mit rsyslog. Journald wird dabei auf max 7 Tage begrenzt und rsyslog zeichnet wie gewohnt ohne Zeitbeschränkung auf. Die Logdateien von Rsyslog werden mittels Logrotate komprimiert, benötigen aber mehr Speicher als ein reines Journald. Dafür sind die Logdateien mit Bordmitteln auswertbar.


Tipps und Tricks


Im Folgenden sind einige Befehle zur Darstellung der Lo(normalerweise lgs mit Hilfe von journalctl aufgelistet:

journalctl Anzeigen aller Logeinträge mit pager ( ähnlich cat /var/log/syslog | less )
journalctl –no-pager Anzeigen aller Logeinträge ( ähnlich cat /var/log/syslog)
journalctl -b Anzeigen von Protokollen aus dem aktuellen Boot
journalctl -e Anzeigen von Protokollen, nur letzter Pager
journalctl -f Anzeigen und live Logausgabe
journalctl -n <Zahl> Anzeigen der letzten <Zahl> Einträge ( default ist 10 )
journalctl –list-boots Zeilenweise Anzeige der einzelnen Bootvorgänge
journalctl -b -6 Anzeigen von Daten aus einem Boot ( Nummer )
journalctl -b caf0524a1d394ce0bdbcff75b94444fe Anzeigen von Daten aus einem Boot ( Boot-ID )
journalctl –since yesterday Anzeigen von Daten für den gestrigen Tag
journalctl -u postfix.service Anzeigen von Daten für den Postfix Dienst
journalctl -u postfix.service –since today Anzeigen von Daten für den Postfix Dienst für den heutigen Tag
journalctl –since “2023-11-15” –until “2023-11-20 01:00” -u postfix@-.service Anzeigen von Daten zwischen 15.11.2023 bis 20.11.2023 1:00 für den Postfix Dienst
journalctl -p <err|number> -b Datenabruf versch. Fehlerklassen: ( 0: emerg (Notfall) | 1: alert (Alarm) | 2: crit (kritisch) | 3: err (Fehler) | 4: warning (Warnung) | 5: notice (Hinweis) | 6: info (Information) | 7: debug (Fehlersuche)
sudo journalctl –vacuum-size=<size> Größenbeschränkung der Logdatein auf <size> ( 100M | 1G | …)
sudo journalctl –vacuum-time=<time> Zeitbeschränkung der Logdatein auf <time> ( 1 years | 20 days | …)
journalctl –disk-usage Anzeigen der aktuellen Festplattenbelegung der Logdatein
—————————————————————————————— —————————————————————————————————————-

 


CC_BY_NC_SAby Speefak | manpages.ubuntu.org | www.loggly.com | www.c-rieger.de | www.digitalocean.com

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back To Top