web-dev-qa-db-ja.com

rsyslog udp転送が2048文字で切り捨てられる

RHEL 6サーバーのRsyslogは、ポート514 UDPでローカルにメッセージを受信して​​います。これらのメッセージは、通常のsyslogメッセージのサイズよりもはるかに大きくなることがあります。 rsyslogがすべてのメッセージを問題なく処理していることを確認しています。問題なくローカルファイルに書き込みます。ただし、リモートホストをrsyslog構成に追加すると、これらの同じ大きなメッセージが約2048文字で切り捨てられます。

私はrsyslogdバージョンを実行しています:5.8.10

rsyslogd 5.8.10, compiled with:
  FEATURE_REGEXP:               Yes
  FEATURE_LARGEFILE:            No
  GSSAPI Kerberos 5 support:        Yes
  FEATURE_DEBUG (debug build, slow code):   No
  32bit Atomic operations supported:    Yes
  64bit Atomic operations supported:    Yes
  Runtime Instrumentation (slow code):  No

私がrsyslog confに加えた唯一の変更は、以下の2つです。

これは私のrsyslog confファイルの一番上にあります:

 $MaxMessageSize 64k

これは私のrsyslog confファイルの一番下にあります:

$template RemoteHost,"<%%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%
*.* @my-rsyslog-central-logger:514; RemoteHost

RsyslogがログをUDP経由でリモートホストに切り捨てる理由を誰かが知っていますが、ローカルファイルにログを書き込むときにログを処理できますか?

** netcatを使用してrsyslogがUDP経由で転送していたローカルポートをリッスンすることで、リモートrsyslogホストで発生していないことを再確認しました。

** TCPを試してみましたが、転送された大きなメッセージは切り捨てられなかったため、UDPが切り捨てられる理由は次のとおりです。(私は答えがUDP、しかし私はまだ知りたい、そして可能であればUDP転送メッセージのためにそれを修正したい)

7
nictrix

UDPにはシーケンス番号がないため、メッセージを首尾一貫して組み合わせる方法はありません(順序が狂って到着した場合)。

Syslog UDPトランスポート- http://tools.ietf.org/html/rfc5426

3.1。データグラムごとに1つのメッセージ

各syslog UDPデータグラムには、syslogメッセージを1つだけ含める必要があります。これは完全であるか、切り捨てられる場合があります。メッセージは、RFC 5424 [2]に従ってフォーマットされ、切り捨てられる必要があります。追加のデータがデータグラムペイロードに存在してはなりません(MUST NOT)。

4
Jeff Warnica