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転送メッセージのためにそれを修正したい)
UDPにはシーケンス番号がないため、メッセージを首尾一貫して組み合わせる方法はありません(順序が狂って到着した場合)。
Syslog UDPトランスポート- http://tools.ietf.org/html/rfc5426
3.1。データグラムごとに1つのメッセージ
各syslog UDPデータグラムには、syslogメッセージを1つだけ含める必要があります。これは完全であるか、切り捨てられる場合があります。メッセージは、RFC 5424 [2]に従ってフォーマットされ、切り捨てられる必要があります。追加のデータがデータグラムペイロードに存在してはなりません(MUST NOT)。