プレフィックスとして数値の長さを持つ syslog メッセージの取り込みに失敗する
search cancel

プレフィックスとして数値の長さを持つ syslog メッセージの取り込みに失敗する

book

Article ID: 449995

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

免責事項:これは英文の記事「Syslog messages with numeric length prefix fail to parse, vCenter Server」の日本語訳です。
記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


vCenter Server からサードパーティ製の syslog コレクタ(Elastic や Logstash など)へ TCP 経由でログを転送する際、受信側でメッセージ処理が失敗します。

  • 期待しない数値プレフィックスと共にログメッセージが送信される
  • サードパーティ製のパーサーがメッセージを不正な形式として拒否するか、syslogの優先度タグを認識できません
  • 書式の例
[363 <134>1 2026-07-06T10:27:49.680341+02:00 #### sso-tomcat-localhost-access - - - ...]

Environment

  • VMware vCenter Server 8.x
  • サードパーティ製 syslog コレクタ(Elastic, Logstash, Splunk)

Cause

vCenter Serverは TCP で syslog を送信する際、RFC 6587で定義されているオクテットカウントフレーミング(Octet Counting framing)を使用します。この方式では、各syslogメッセージの先頭にメッセージの長さ(オクテット単位)を表す整数とそれに続くスペースが付加されます。これにより受信側のサーバーはメッセージの境界を正確に識別できるようになります。一方、多くのサードパーティ製パーサーはデフォルトで非透過フレーミング(Non-Transparent-Framing: 改行文字に依存する方式)を採用しており、長さを示すプレフィックスを処理できません。

Resolution

解決策: サードパーティ製syslogコレクタの設定を調整し、RFC 6587/オクテットカウントレーミングをサポートするようにしてください。

  1. RFC 6587フレーミング方式を扱うようにサードパーティ製コレクターの入力設定(例: Logstash入力)を変更
  2. カスタムパーサーを使用している場合、<PRI>タグの前に存在する先頭整数とスペース区切り文字を考慮
  3. 改行文字ではなく長さのプレフィックスに基づいて新しいメッセージの開始を識別するように設定されていることを確認

注: オクテットカウントはストリーム指向プロトコルにおける信頼性の高い syslog 配信の標準規格であるため、vCenter Server でオクテットカウントを無効にすることは推奨されません。

Additional Information

Log Management Documentation