rsyslog アップロードの制限はありますか?

rsyslog アップロードの制限はありますか?

rsyslogを使用してGraylogサーバーにログをアップロードします

/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

Graylog では、一部の長いメッセージが切り捨てられます (メッセージの末尾が利用できません)。

UDP で netcat を使用して長いメッセージをアップロードしようとしたとき:

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

メッセージは Graylog にあります (複数のメッセージがありますが、すべてのメッセージが利用可能です)

rsyslog からのメッセージの一部が切り捨てられて、netcat からのメッセージは切り捨てられないのはなぜですか?

maximumSize パラメータを増やす必要があるのでしょうか?

私は試した

$MaxMessageSize 256k
$MainMsgQueueDequeueBatchSize 256

しかし成功しなかった

THX

ここに画像の説明を入力してください

答え1

rsyslogdはsyslogプロトコルを使用しており、これはRFC 3164セクション4.1では、

パケットの合計長は 1024 バイト以下でなければなりません。

したがって、rsyslog は、syslog メッセージの標準に準拠するために、メッセージを小さなパケットに分割するという適切な処理を行います。

ncat がメッセージを 1 つの巨大な塊として送信する理由は、ncat が送信するメッセージの種類のプロトコルについて何も知らないため、メッセージを分割する必要があることを認識していないためです。

関連情報