Rsyslog: Führendes Leerzeichen in RFC5424-formatierten Nachrichten

Erstellt am 22. Nov. 2014  ·  3Kommentare  ·  Quelle: rsyslog/rsyslog

Wenn Sie die Vorlage RSYSLOG_SyslogProtocol23Format zum Senden von Nachrichten nutzen, enthält das MSG-Feld ein führendes Leerzeichen.

Folgende Konfiguration wird verwendet:

$ActionQueueFileName name1
$ActionQueueMaxFileSize 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
$DefaultNetstreamDriverCAFile /path/to/CA.crt
$ActionSendStreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer syslog.domain.com
*.* @@(o)syslog.domain.com:1234;RSYSLOG_SyslogProtocol23Format

Die Ausgabe des Befehls logger test123 führt dazu, dass die folgende Nachricht an den Server gesendet wird. Beachten Sie die beiden Leerzeichen nach dem NILVALUE für das strukturierte Datenfeld:
<13>1 2014-11-21T19:02:19.219331-06:00 host1 user1 - - - test123

Das obige Protokoll wird dem Nachrichtenformat RFC5424 wie folgt zugeordnet:
PRI = <13>
AUSFÜHRUNG = 1
ZEITSTEMPEL = 2014-11-21T19:02:19.219331-06:00
HOSTNAME = host1
APP-NAME = user1
PROC-ID = -
MSGID = -
STRUKTURIERTE-DATEN = -
MSG = 'test123'

Der Wert des MSG-Felds ist oben in einfache Anführungszeichen eingeschlossen, um das führende Leerzeichen in der Nachricht zu veranschaulichen. Jede Nachricht, die von diesem Server gesendet wird, hat das führende Leerzeichen. Das Obige ist nur ein Beispiel für die Verwendung von Logger.

rsyslogd 8.4.2, kompiliert mit:
FEATURE_REGEXP: Ja
GSSAPI Kerberos 5-Unterstützung: Nein
FEATURE_DEBUG (Debug-Build, langsamer Code): Nein
Unterstützte atomare 32-Bit-Operationen: Ja
Unterstützte 64-Bit-Atomic-Operationen: Ja
Speicherzuweisung: Systemstandard
Laufzeitinstrumentierung (langsamer Code): Nein
uuid-Unterstützung: Ja
Anzahl der Bits in RainerScript-Ganzzahlen: 64

Dieses Verhalten kann auch bei der Paketerfassung dieses Datenverkehrs beobachtet werden (TLS zum Testen natürlich deaktiviert).
0x0070: 202d 202d 2020 7465 7374 3132 330a .-.-..test123.

Wenn ich zusätzliche Informationen bereitstellen kann oder mein Testfall/meine Konfiguration fehlerhaft ist, lassen Sie es mich bitte wissen. Danke! :Lächeln:

Hilfreichster Kommentar

Das mmrm1stspace wurde in v8.24.0 hinzugefügt.

Kommentieren Sie hier, da ich dieses Problem zuerst bei der Suche mit Google gefunden habe.

Alle 3 Kommentare

Das führende Leerzeichen ist da, weil die Nachricht im RFC3164-Format stammt, und wenn nach dem Tag ein Leerzeichen steht (was normalerweise der Fall ist), ist dies Teil des MSG-Felds. Daher beginnt MSG tatsächlich mit einem Leerzeichen. Wenn Sie dieses Leerzeichen entfernen möchten, können Sie dies über den Vorlagenprozessor tun, falls erforderlich, indem Sie bedingte Logik verwenden (wenn von 3164 und 5424 stammende Nachrichten verarbeitet werden müssen).

Das mmrm1stspace wurde in v8.24.0 hinzugefügt.

Kommentieren Sie hier, da ich dieses Problem zuerst bei der Suche mit Google gefunden habe.

Dieser Thread wurde automatisch gesperrt, da es nach seiner Schließung keine Aktivitäten mehr gegeben hat. Bitte öffnen Sie ein neues Problem für verwandte Fehler.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen