{"id":6726,"date":"2023-08-24T12:55:09","date_gmt":"2023-08-24T10:55:09","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=6726"},"modified":"2025-04-08T11:57:30","modified_gmt":"2025-04-08T09:57:30","slug":"linux-logs-journald-syslog-ng-rsyslog","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/linux-logs-journald-syslog-ng-rsyslog\/","title":{"rendered":"Linux Logs &#8211; Journald, Syslog-ng, Rsyslog"},"content":{"rendered":"<p>Ein Linux-Protokollierungssystem ist eine Software, die Ereignisse und Aktivit\u00e4ten auf einem Linux-Betriebssystem erfasst, speichert und verwaltet. Es hilft bei der \u00dcberwachung, Fehlerdiagnose und Systemanalyse, indem es Informationen wie Ereignisse aus dem Kernel, Diensten, Anwendungen und Benutzeraktionen \u00fcber 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.<\/p>\n<hr \/>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>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.<br \/>\n<hr \/>\n<\/li>\n<li>Syslog-ng ist eine erweiterte Version des traditionellen Syslog-Dienstes. Es erm\u00f6glicht das Sammeln, Filtern und Weiterleiten von Protokollen aus verschiedenen Quellen. Syslog-ng bietet fortschrittliche Funktionen wie Verschl\u00fcsselung, Multiline-Messages und Failover in der kostenpflichtigen Version. Es ist eine leistungsstarke L\u00f6sung zur Protokollverwaltung.<br \/>\n<hr \/>\n<\/li>\n<li>Rsyslog ist ein leistungsstarker Daemon zur Protokollverwaltung auf Unix-\u00e4hnlichen Betriebssystemen. Als Weiterentwicklung des klassischen Syslog-Dienstes bietet es erweiterte Funktionen, flexible Konfiguration und Unterst\u00fctzung f\u00fcr verschiedene Protokollformate. Rsyslog kann Protokolle filtern, transformieren und an entfernte Server weiterleiten, was es zu einer vielseitigen L\u00f6sung macht.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<p>Journald speichert im Gegensatz zu Rsyslog\/Syslog-ng Logeintr\u00e4ge nicht in Textdateien, sondern in Bin\u00e4rdateien ab. Das hat Vor- und Nachteile:<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>Textdatei<\/td>\n<td><\/td>\n<td>Bin\u00e4rdatei<\/td>\n<\/tr>\n<tr>\n<td>Lesbarkeit<\/td>\n<td>Textdateien enthalten lesbare Zeichen und sind f\u00fcr Menschen leicht verst\u00e4ndlich. Dies erleichtert das manuelle Bearbeiten und Lesen der Dateiinhalte.<\/td>\n<td><\/td>\n<td>Bin\u00e4rdateien sind nicht f\u00fcr Menschen lesbar. Es ist schwer zu verstehen, was genau in der Datei gespeichert ist.<\/td>\n<\/tr>\n<tr>\n<td>OS-Abh\u00e4ngigkeit<\/td>\n<td>Textdateien sind in der Regel plattformunabh\u00e4ngig. Sie k\u00f6nnen von verschiedenen Texteditoren auf verschiedenen Betriebssystemen ge\u00f6ffnet werden.<\/td>\n<td><\/td>\n<td>Bin\u00e4rdateien k\u00f6nnen auf verschiedenen Betriebssystemen unterschiedliche Repr\u00e4sentationen haben, was die Portabilit\u00e4t beeintr\u00e4chtigen kann.<\/td>\n<\/tr>\n<tr>\n<td>Versionskontrolle<\/td>\n<td>Textdateien sind in Versionierungssystemen leichter zu verfolgen und zu verwalten, da \u00c4nderungen gut lesbar sind.<\/td>\n<td><\/td>\n<td>Bin\u00e4rdateien sind schwerer zu versionieren, da \u00c4nderungen nicht so leicht sichtbar sind wie in Textdateien.<\/td>\n<\/tr>\n<tr>\n<td>Interoperabilit\u00e4t<\/td>\n<td>Textdateien k\u00f6nnen leicht von verschiedenen Programmen und Skriptsprachen gelesen und verarbeitet werden.<\/td>\n<td><\/td>\n<td>Bin\u00e4rdateien k\u00f6nnen ohne spezifische Programme nicht gelesen werden.<\/td>\n<\/tr>\n<tr>\n<td>Gr\u00f6\u00dfe auf Dateisystem<\/td>\n<td>Textdateien k\u00f6nnen gr\u00f6\u00dfer sein als bin\u00e4re Dateien, da sie Zeichen-basiert sind. Dies kann zu erh\u00f6htem Speicherplatzbedarf f\u00fchren.<\/td>\n<td><\/td>\n<td>Bin\u00e4rdateien sind in der Regel kompakter als Textdateien, da sie auf maschinenlesbaren Codes basieren. Dies spart Speicherplatz.<\/td>\n<\/tr>\n<tr>\n<td>Verarbeitung<\/td>\n<td>Das Parsen von Textdateien kann im Vergleich zu bin\u00e4ren Dateien langsamer sein, da Zeichen-basierte Verarbeitung mehr Zeit in Anspruch nehmen kann.<\/td>\n<td><\/td>\n<td>Das Parsen von Bin\u00e4rdateien ist in der Regel schneller, da keine Zeichen-basierte Verarbeitung erforderlich ist.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0Darstellung<\/td>\n<td>Textdateien sind nicht geeignet, um komplexe Datenstrukturen und nicht-textbasierte Informationen (wie Bilder oder Multimedia) darzustellen.<\/td>\n<td><\/td>\n<td>Bin\u00e4rdateien k\u00f6nnen komplexe Datenstrukturen speichern, die nicht leicht in Textform dargestellt werden k\u00f6nnen.<\/td>\n<\/tr>\n<tr>\n<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/td>\n<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/td>\n<td><\/td>\n<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In vielen F\u00e4llen h\u00e4ngt die Wahl zwischen Text- und Bin\u00e4rdateien von der Art der gespeicherten Daten, dem Verwendungszweck und den Anforderungen an die Lesbarkeit, Effizienz und Verarbeitungsgeschwindigkeit ab. Somit ergeben sich unterschiedliche Voraussetzungen f\u00fcr das Logsystem.<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>Journald<\/td>\n<td><\/td>\n<td>Rsyslog \/ Syslog-ng<\/td>\n<\/tr>\n<tr>\n<td>Speicherung der Logeintr\u00e4ge<\/td>\n<td>Bin\u00e4r &#8211; Dateibasiert. Logeintr\u00e4ge k\u00f6nnen ohne den Journald Dienst nicht ausgelesen werden. Defekte in den Dateien man ggf. das gesamte Log unbrauchbar.<\/td>\n<td><\/td>\n<td>Klartext &#8211; Dateibasiert. Logeintr\u00e4ge k\u00f6nnen mit Bordmitteln ausgelesen werden. Verschiedene Logdatein f\u00fcr Apache, SSH etc..<\/td>\n<\/tr>\n<tr>\n<td>Strukturierte Logausgabe<\/td>\n<td>Logausgaben k\u00f6nnen direkt \u00fcber den journald Befehl nach Diensten, Benutzern, Zeitr\u00e4umen u.\u00e4. ausgeben werden<\/td>\n<td><\/td>\n<td>Logausgaben k\u00f6nnen nur mit externen Bordmitteln wie grep, sed, awk etc. gefiltert werden<\/td>\n<\/tr>\n<tr>\n<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/td>\n<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/td>\n<td><\/td>\n<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Bin\u00e4r vs Text<\/h2>\n<p>Bin\u00e4rprotokolle erm\u00f6glichen eine effiziente Speicherung und schnelle Verarbeitung von detaillierten Informationen. Durch Textprotokolle bleiben wichtige Ereignisse f\u00fcr Menschen lesbar und einfach zu \u00fcberpr\u00fcfen. Diese Kombination erlaubt umfassende Analyse, Plattformunabh\u00e4ngigkeit und Leistungsoptimierung. In sicherheitskritischen Umgebungen sorgt die Verwendung beider Formate f\u00fcr effektive Sicherheits\u00fcberpr\u00fcfungen. Einziger Nachteil ist der Speicherplatzbedarf, da beide Logsysteme ihre Dateien unabh\u00e4ngig voneinander speichern.<\/p>\n<p>Beide Logsysteme bieten die M\u00f6glichkeit den maximalen Speicherplatz festzulegen und so das pr\u00e4ferierte Logsystem f\u00fcr gro\u00dfe Zeitr\u00e4ume zu nutzen und das jeweils andere Logsystem auf kurze Zeitr\u00e4ume zu beschr\u00e4nken.<\/p>\n<p>Ab Debian 12 Bookworm wird Journald statt Rsyslog genutzt. Rsyslog kann allerdings einfach \u00fcber die Paketverwaltung installiert und zus\u00e4tzlich zu Journald verwendet werden. Bei gleichzeitiger Verwendung beider Logsysteme sollte Eines auf einen kurzen Zeitraum beschr\u00e4nkt werden. Die Installation und Konfiguration der Logdienste kann wie folgt realisiert werden:<\/p>\n<pre class=\"lang:default decode:true \"># Installation von rsyslog und logrotate\r\nsudo apt install -y rsyslog logrotate\r\n\r\n# journald auf 7 Tage beschr\u00e4nken\r\nsed -i 's\/#MaxFileSec=.*\/MaxFileSec=7days\/' \/etc\/systemd\/journald.conf\r\n\r\n# journald eintr\u00e4ge an syslog weiterreichen\r\nsed -i 's\/#ForwardToSyslog=.*\/ForwardToSyslog=yes\/' \/etc\/systemd\/journald.conf\r\n\r\n# Neustart der Log Dienste\r\nsudo systemctl restart systemd-journald rsyslog\r\nsudo systemctl restart rsyslog\r\n<\/pre>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Text basierter Log ohne Zeiteinschr\u00e4nkung, mit Bordmitteln auswertbar<\/li>\n<li>Bin\u00e4r basierter Log \u00fcber 7 Tage, schnell auslesbarer, log f\u00fcr Systemoperationen<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>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\u00e4nkung auf. Die Logdateien von Rsyslog werden mittels Logrotate komprimiert, ben\u00f6tigen aber mehr Speicher als ein reines Journald. Daf\u00fcr sind die Logdateien mit Bordmitteln auswertbar.<\/p>\n<hr \/>\n<h2>Tipps und Tricks<\/h2>\n<hr \/>\n<p>Im Folgenden sind einige Befehle zur Darstellung von journalctl aufgelistet:<br \/>\n<code><\/code><\/p>\n<table>\n<tbody>\n<tr>\n<td>journalctl<\/td>\n<td>Anzeigen aller Logeintr\u00e4ge mit pager (\u00e4hnlich cat \/var\/log\/syslog | less)<\/td>\n<\/tr>\n<tr>\n<td>journalctl &#8211;no-pager<\/td>\n<td>Anzeigen aller Logeintr\u00e4ge (\u00e4hnlich cat \/var\/log\/syslog)<\/td>\n<\/tr>\n<tr>\n<td>journalctl -b<\/td>\n<td>Anzeigen von Protokollen aus dem aktuellen Boot<\/td>\n<\/tr>\n<tr>\n<td>journalctl -e<\/td>\n<td>Anzeigen von Protokollen, nur letzter Pager<\/td>\n<\/tr>\n<tr>\n<td>journalctl -f<\/td>\n<td>Anzeigen und live Logausgabe<\/td>\n<\/tr>\n<tr>\n<td>journalctl -n &lt;Zahl&gt;<\/td>\n<td>Anzeigen der letzten &lt;Zahl&gt; Eintr\u00e4ge (default ist 10)<\/td>\n<\/tr>\n<tr>\n<td>journalctl &#8211;list-boots<\/td>\n<td>Zeilenweise Anzeige der einzelnen Bootvorg\u00e4nge<\/td>\n<\/tr>\n<tr>\n<td>journalctl -b -6<\/td>\n<td>Anzeigen von Daten aus einem Boot (Nummer)<\/td>\n<\/tr>\n<tr>\n<td>journalctl -b caf0524a1d394ce0bdbcff75b94444fe<\/td>\n<td>Anzeigen von Daten aus einem Boot (Boot-ID)<\/td>\n<\/tr>\n<tr>\n<td>journalctl &#8211;since yesterday<\/td>\n<td>Anzeigen von Daten f\u00fcr den gestrigen Tag<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>journalctl -u postfix.service<\/td>\n<td>Anzeigen von Daten f\u00fcr den Postfix Dienst<\/td>\n<\/tr>\n<tr>\n<td>journalctl -u postfix.service &#8211;since today<\/td>\n<td>Anzeigen von Daten f\u00fcr den Postfix Dienst f\u00fcr den heutigen Tag<\/td>\n<\/tr>\n<tr>\n<td>journalctl &#8211;since &#8220;2023-11-15&#8221; &#8211;until &#8220;2023-11-20 01:00&#8221; -u postfix@-.service<\/td>\n<td>Anzeigen von Daten zwischen 15.11.2023 bis 20.11.2023 1:00 f\u00fcr den Postfix Dienst<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>journalctl -p &lt;err|number&gt; -b<\/td>\n<td>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)<\/td>\n<\/tr>\n<tr>\n<td>sudo journalctl &#8211;vacuum-size=&lt;size&gt;<\/td>\n<td>Gr\u00f6\u00dfenbeschr\u00e4nkung der Logdatein auf &lt;size&gt; (100M | 1G | &#8230;)<\/td>\n<\/tr>\n<tr>\n<td>sudo journalctl &#8211;vacuum-time=&lt;time&gt;<\/td>\n<td>Zeitbeschr\u00e4nkung der Logdatein auf &lt;time&gt; (1 years | 20 days | &#8230;)<\/td>\n<\/tr>\n<tr>\n<td>journalctl &#8211;disk-usage<\/td>\n<td>Anzeigen der aktuellen Festplattenbelegung der Logdatein<\/td>\n<\/tr>\n<tr>\n<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/td>\n<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/><span style=\"font-size: 10pt;\">by Speefak <span style=\"font-size: 8pt;\">| <a href=\"https:\/\/manpages.ubuntu.com\/manpages\/xenial\/en\/man5\/journald.conf.d.5.html\" target=\"_blank\" rel=\"noopener noreferrer\">manpages.ubuntu.org<\/a> | <a href=\"https:\/\/www.loggly.com\/ultimate-guide\/managing-linux-logs\/\" target=\"_blank\" rel=\"noopener noreferrer\">www.loggly.com<\/a>\u00a0| <a href=\"https:\/\/www.c-rieger.de\/nextcloud-installationsanleitung\/\" target=\"_blank\" rel=\"noopener noreferrer\">www.c-rieger.de<\/a> | <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-use-journalctl-to-view-and-manipulate-systemd-logs-de\">www.digitalocean.com<\/a><\/span><br \/>\n<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein Linux-Protokollierungssystem ist eine Software, die Ereignisse und Aktivit\u00e4ten auf einem Linux-Betriebssystem erfasst, speichert und verwaltet. Es hilft bei der \u00dcberwachung, Fehlerdiagnose und Systemanalyse, indem es Informationen wie Ereignisse aus dem Kernel, Diensten, Anwendungen und Benutzeraktionen \u00fcber den Betrieb des Systems erfasst. Typische Protokollierungssysteme umfassen Protokolldateien, Dienste zur Protokollverarbeitung, Ereignisstufen und -formate sowie Funktionen zur [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-6726","post","type-post","status-publish","format-standard","hentry","category-anleitungen"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a>","rttpg_excerpt":"Ein Linux-Protokollierungssystem ist eine Software, die Ereignisse und Aktivit\u00e4ten auf einem Linux-Betriebssystem erfasst, speichert und verwaltet. Es hilft bei der \u00dcberwachung, Fehlerdiagnose und Systemanalyse, indem es Informationen wie Ereignisse aus dem Kernel, Diensten, Anwendungen und Benutzeraktionen \u00fcber den Betrieb des Systems erfasst. Typische Protokollierungssysteme umfassen Protokolldateien, Dienste zur Protokollverarbeitung, Ereignisstufen und -formate sowie Funktionen zur&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/6726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=6726"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/6726\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=6726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=6726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=6726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}