rsyslog-Upload-Beschränkung?

rsyslog-Upload-Beschränkung?

Ich verwende rsyslog, um Protokolle auf meinen Graylog-Server hochzuladen

/etc/rsyslog.conf:

$InputFileName /var/log/apache-error.log
$InputFileFacility apache
$InputFileTag #apacheError:
$InputFileStateFile apache-error
$InputFileSeverity error
$InputRunFileMonitor

if $programname == '#apacheAccess' then @1.2.3.4:1514

Einige lange Nachrichten werden in Graylog abgeschnitten (das Ende der Nachricht ist nicht verfügbar).

Als ich versuchte, eine lange Nachricht mit Netcat in UDP hochzuladen:

echo -n -e "$(for i in $(seq 0 64000); do echo -n '0123456789';done)" | nc -u 1.2.3.4 1514

Die Nachricht befindet sich im Graylog (in mehreren Nachrichten, aber alle Nachrichten sind verfügbar)

Warum wird ein Teil einer Nachricht von rsyslog abgeschnitten, eine Nachricht von netcat jedoch nicht?

Muss ein maximumSize-Parameter erhöht werden oder so?

Ich habe es versucht

$MaxMessageSize 256k
$MainMsgQueueDequeueBatchSize 256

aber ohne Erfolg

Danke

Bildbeschreibung hier eingeben

Antwort1

rsyslogd verwendet das Syslog-Protokoll, das definiert ist inRFC 3164In Abschnitt 4.1 heißt es:

Die Gesamtlänge des Pakets MUSS 1024 Bytes oder weniger betragen.

Daher macht rsyslog das Richtige, indem es die Nachricht in kleinere Pakete aufteilt, um dem Standard für Syslog-Nachrichten zu entsprechen.

Der Grund, warum ncat die Nachricht als einen großen Blob sendet, besteht darin, dass ncat nichts über das Protokoll für den von Ihnen gesendeten Nachrichtentyp weiß und sich daher nicht darüber im Klaren ist, dass es die Nachricht aufteilen sollte.

verwandte Informationen