
Ich bin neu im Syslog-Modul. Ich versuche, Nachrichten mit strukturierten Daten zu protokollieren, indem ich diesen Parameter in der Vorlage verwende. Aber es wird ein Nullwert für strukturierte Daten angezeigt. Ich arbeite mit rsyslogd 5.8.11 und rsyslogd 4.8.4 und für beide Versionen erhalte ich dieselben Ergebnisse.
Ich verwende die Vorlage:
"<%PRI%>%TIMESTAMP:::date-rfc3339%%HOSTNAME%%syslogtag%%APP-NAME%%PROCID%%MSGID% %msg% %STRUCTURED-DATA%\n”
Abrufen des Nachrichtenformats wie folgt:
<142> 2015-01-29T06:43:53.081641-05:00 localhost login[2116]: login 2116 - [2116 : 2116 INFO]SERIAL Login from IP:127.0.0.1 user:admin -
Kann mir jemand sagen, was ich falsch mache? Ich möchte lediglich Nachrichten mit strukturierten Daten mit SD-ID, SD-PARAM in der Protokolldatei protokollieren.
Antwort1
rsyslog kann RFC5424-Nachrichten mit strukturierten Daten ausgeben.
Aber haben Sie auch eine Möglichkeit, RFC5424-Nachrichten zu sendenZursyslog? -- Es sollte funktionieren, wenn Sie Ihre Nachrichten direkt über UDP oder TLS protokollieren. Wenn Sie jedoch über herkömmliche BSD-Syslog-Funktionen protokollieren, gibt es weder strukturierte Daten noch MSGID. (Soweit ich weiß, hat NetBSD die einzige RFC5424-fähige libc mit einemsyslogp()Funktion.)
Antwort2
Ich versuche auch, dies zu erreichen. Ich habe herausgefunden, wie man mithilfe der Vorlage das Nachrichtenformat RFC5424 ausgibt RSYSLOG_SyslogProtocol23Format
. Ich weiß jedoch nicht, wie ich den strukturierten Daten Felder hinzufügen kann. Außerdem sende/empfange ich erfolgreich das RFC5424-Format mithilfe von syslog-ng.