<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://xinux.net/index.php?action=history&amp;feed=atom&amp;title=Erkl%C3%A4rung_rsyslog-client</id>
	<title>Erklärung rsyslog-client - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://xinux.net/index.php?action=history&amp;feed=atom&amp;title=Erkl%C3%A4rung_rsyslog-client"/>
	<link rel="alternate" type="text/html" href="https://xinux.net/index.php?title=Erkl%C3%A4rung_rsyslog-client&amp;action=history"/>
	<updated>2026-08-27T11:07:04Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://xinux.net/index.php?title=Erkl%C3%A4rung_rsyslog-client&amp;diff=73100&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „=== Zeile für Zeile ===  ; &lt;code&gt;*.*&lt;/code&gt; : Der klassische Selektor „alle Facilities, alle Prioritäten“. Es wird also wirklich jede Meldung weitergelei…“</title>
		<link rel="alternate" type="text/html" href="https://xinux.net/index.php?title=Erkl%C3%A4rung_rsyslog-client&amp;diff=73100&amp;oldid=prev"/>
		<updated>2026-08-27T06:37:38Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „=== Zeile für Zeile ===  ; &amp;lt;code&amp;gt;*.*&amp;lt;/code&amp;gt; : Der klassische Selektor „alle Facilities, alle Prioritäten“. Es wird also wirklich jede Meldung weitergelei…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Zeile für Zeile ===&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;*.*&amp;lt;/code&amp;gt;&lt;br /&gt;
: Der klassische Selektor „alle Facilities, alle Prioritäten“. Es wird also wirklich jede Meldung weitergeleitet – von &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; bis &amp;lt;code&amp;gt;emerg&amp;lt;/code&amp;gt;. Einschränken ließe sich das z.&amp;amp;nbsp;B. mit &amp;lt;code&amp;gt;*.info&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;authpriv.*&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;action(type=&amp;quot;omfwd&amp;quot; …)&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;omfwd&amp;lt;/code&amp;gt; ist das Ausgangsmodul für die Weiterleitung über das Netz. Es ist fest eingebaut, muss also nicht geladen werden. Die neue &amp;lt;code&amp;gt;action()&amp;lt;/code&amp;gt;-Syntax wird hier gebraucht, weil die alte Kurzform &amp;lt;code&amp;gt;*.* @@192.168.1.10:514&amp;lt;/code&amp;gt; keine Queue-Parameter kennt.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;target=&amp;quot;192.168.1.10&amp;quot;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;port=&amp;quot;514&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Adresse und Port des Logservers. Ein Hostname wäre auch möglich, eine IP erspart aber die Abhängigkeit von der Namensauflösung – gerade beim Booten oder wenn der DNS selbst Probleme meldet.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;protocol=&amp;quot;tcp&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Übertragung per TCP statt UDP. Nur damit ist die Queue überhaupt sinnvoll: rsyslog merkt bei TCP, wenn die Zustellung fehlschlägt. Bei UDP schickt es blind ins Netz und erfährt von einem Ausfall nichts.&lt;br /&gt;
&lt;br /&gt;
=== Die Queue – der eigentliche Kern ===&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;queue.type=&amp;quot;linkedlist&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Eine dynamisch wachsende Warteschlange im Arbeitsspeicher (verkettete Liste). Sie belegt nur so viel Speicher, wie gerade gebraucht wird – im Gegensatz zu &amp;lt;code&amp;gt;fixedarray&amp;lt;/code&amp;gt;, das seinen Platz sofort reserviert. Ohne diesen Parameter läuft die Aktion in der Direct-Queue: jede Meldung wird sofort und synchron zugestellt, und ein hängender Server bremst das ganze System aus.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;queue.filename=&amp;quot;fwdqueue&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Macht daraus eine '''Disk-Assisted Queue'''. Läuft der Speicherpuffer voll, schreibt rsyslog die Meldungen unter diesem Namen nach &amp;lt;code&amp;gt;/var/spool/rsyslog/&amp;lt;/code&amp;gt; auf Platte. Der Name muss auf dem Host eindeutig sein, wenn mehrere Queues konfiguriert sind.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;action.resumeRetryCount=&amp;quot;-1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Anzahl der Wiederholversuche nach einem Fehler; &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; heißt „unendlich oft“. Ohne das gibt rsyslog nach wenigen Versuchen auf und verwirft die Meldungen – der Logserver darf also beliebig lange weg sein (Reboot, Wartung), ohne dass etwas verlorengeht.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;queue.saveOnShutdown=&amp;quot;on&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Beim Beenden des Dienstes wird der noch nicht zugestellte Inhalt der Queue auf Platte geschrieben und beim nächsten Start wieder eingelesen. Ohne das wäre der Puffer nach einem Neustart des Clients weg.&lt;br /&gt;
&lt;br /&gt;
=== Zusammenspiel ===&lt;br /&gt;
&lt;br /&gt;
Fällt der Logserver aus, sammelt der Client die Meldungen im Speicher, ab einer gewissen Menge auf Platte, und probiert es endlos weiter. Kommt der Server zurück, wird der Rückstand automatisch nachgeliefert – in der ursprünglichen Reihenfolge, mit den Originalzeitstempeln.&lt;br /&gt;
&lt;br /&gt;
=== Hinweise für die Praxis ===&lt;br /&gt;
&lt;br /&gt;
* '''Lokale Kopie bleibt erhalten:''' Diese Aktion leitet nur weiter. Ohne &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; schreiben die Standardregeln zusätzlich nach &amp;lt;code&amp;gt;/var/log/…&amp;lt;/code&amp;gt;. Das ist meist erwünscht – bei einem Ausfall des Servers hat man dann immer noch die lokalen Logs.&lt;br /&gt;
* '''Platzbedarf begrenzen:''' Standardmäßig darf die Disk-Queue erheblich wachsen. Bei knappem Plattenplatz zusätzlich &amp;lt;code&amp;gt;queue.maxDiskSpace=&amp;quot;1g&amp;quot;&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;queue.maxFileSize=&amp;quot;16m&amp;quot;&amp;lt;/code&amp;gt; setzen.&lt;br /&gt;
* '''Spool-Verzeichnis prüfen:''' &amp;lt;code&amp;gt;$WorkDirectory /var/spool/rsyslog&amp;lt;/code&amp;gt; muss existieren und dem rsyslog-Benutzer gehören, sonst schlägt das Auslagern still fehl.&lt;br /&gt;
* '''Test:''' Mit &amp;lt;code&amp;gt;logger -t test &amp;quot;Hallo Logserver&amp;quot;&amp;lt;/code&amp;gt; eine Meldung erzeugen und auf dem Server unter &amp;lt;code&amp;gt;/var/log/hosts/&amp;amp;lt;client&amp;amp;gt;/test.log&amp;lt;/code&amp;gt; nachsehen.&lt;br /&gt;
* '''Ausfall simulieren:''' Auf dem Server &amp;lt;code&amp;gt;rsyslog&amp;lt;/code&amp;gt; stoppen, auf dem Client weiter Meldungen erzeugen, Server wieder starten – die Meldungen kommen nach. Gutes Übungsszenario im Kurs.&lt;br /&gt;
* '''Sicherheit:''' Auch hier gilt: unverschlüsselt und ohne Authentisierung. Über unsichere Strecken TLS (&amp;lt;code&amp;gt;StreamDriver&amp;lt;/code&amp;gt;) oder RELP verwenden.&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>