適切な Syslog 設定を使用することで、環境のプロアクティブな監視を実現し、ダウンタイムを短縮し、サーバに対して予防的なアクションを実行できます。

Syslog の設定時には、ログ ファイルの保持、Syslog の転送、転送の長さ、エラー処理、および Syslog メッセージを安全に転送するための SSL 証明書の設定に影響するいくつかのパラメータを考慮する必要があります。次に、Syslog パラメータを微調整するための推奨事項を示します。使用可能なすべてのパラメータの説明は、「ESXi Syslog のオプション」で確認できます。

ログ ファイルの保持を指定する方法

デフォルトでは、ログ ファイルは構成済みのサイズを越えて拡張できません。ログ ファイルが構成されたサイズに達すると、ログは新しいログ ファイルに切り替わり、最も古いログ ファイルが削除されます。
注: ベスト プラクティスは、このローテーションとサイズ設定のバランスを調整することです。ローテーションの設定値を引き上げると、Syslog ファイルは十分な頻度で生成されるようになり、他のログ ファイルが破損または破壊される可能性を抑えることができます。サイズの設定値を引き上げると、別のログ ファイルに切り替えるまでの時間が短縮されます。サイズの最適な設定値は 1,024 KiB の倍数です。
Syslog.global.defaultSize の設定を使用して、ログ ファイルの最大サイズを KiB 単位で指定し、 Syslog.global.defaultRotate の設定を使用して、新しいログ ファイルにローテーションする前に保持する古いログ ファイルの最大数を設定します。特定のプログラムに関連付けられているログ ファイル保持パラメータを変更するには、 Syslog.loggers.<progName>.rotate Syslog.loggers.<progName>.size settings を使用します。ここで、 <progName> はパラメータを調整するプログラムの名前です。

仮想マシンのログ ファイルに影響する設定の管理

vmx ファイルまたは /etc/vmware/config ファイルのいずれかで、仮想マシンのログ ファイルである vmware.log に影響するいくつかの設定を構成できます。vmx ファイルを編集するには、仮想マシンをパワーオフする必要があり、編集はその仮想マシンでのみ有効になります。/etc/vmware/config ファイルを使用する場合は、プリフィックス「vmx」を設定に追加する必要があります(例:vmx.log.keepOld = "20")。編集は、ESXi ホスト上のすべての仮想マシンに影響します。

表 1. vmware.log ファイルの構成可能な設定
パラメータ 説明 メモ
logging

すべての仮想マシンのログ作成を無効にします。

デフォルト値は logging = "TRUE" です。

仮想マシンのログ作成を無効にするには、次の設定にします。

logging = "FALSE"

この設定は使用しないでください。仮想マシンのログ作成を無効にすると、仮想マシンの問題についてサポートを受けることが非常に困難または不可能になるためです。何らかの理由でこの設定を使用する必要がある場合は、仮想マシンの vmx ファイル内にのみ配置できます。
log.throttleBytesPerSec

どのような場合にログ ファイルを調整するかを制御します。ログ ファイルの調整は、vmware.log への書き込みが長時間にわたって指定されたレートを超えると実行されます。このような状況が発生するのは、仮想マシンを制御する VMX プロセス内のコードにより、ログ メッセージが過剰に作成された場合です。この設定のデフォルト値は 1 KB/秒です。

ログの調整が実行された場合は、vmware.log ファイル内に <<< Log Throttled >>> というメッセージが含まれます。

log.throttleBytesPerSec = "1500"

ログの調整を無効にするには、次の設定を使用します。

log.throttleBytesPerSec = "0xFFFFFFFF"

ログ ファイルの調整により、影響を受ける仮想マシンの問題を診断するために必要な情報が見つかりにくくなる場合があります。ログの調整を無効にする必要がある場合は、影響を受ける仮想マシンの vmx ファイル内に例の行を配置します。デバッグ セッションの終了後に、その行を削除します。
log.keepOld

保持する古い vmware.log ファイルの数を制御します。

log.keepOld = "20" この設定の値をデフォルト値 (10) 未満にしないでください。仮想マシンを頻繁に変更または移動する場合は、この設定を 20 以上に引き上げることを検討してください。
log.rotateSize

vmware.log ファイルの最大サイズをバイト単位で制御します。

log.rotateSize = "2500000"

vmware.log ファイルの最大サイズの制限を無効にするには、次の設定を使用します。

log.rotateSize = "0"

この設定の値を 100,000 未満にすると、重要なログ メッセージが失われ、仮想マシンのパフォーマンスに影響する可能性があります。ESXi 7.x 以前では、この設定のデフォルト値によって vmware.log ファイルのサイズが制限されることはありません。ESXi 8.x 以降では、この設定のデフォルト値は 2,048,000 です。
log.fileName

仮想マシンのログ ファイルの名前と場所を制御します。

log.fileName = "myVMLog"

この設定により、仮想マシンのログ ファイルの名前が vmware.log から myVMlog に変更されます。

log.fileName = "/vmfs/volumes/vol1/myVM/myVM.log"

この設定により、仮想マシンのログ ファイルが、ファイル名に myVM を使用して、別の VMFS ボリューム (vol1) 上のディレクトリに転送されます。

ホスト サポート バンドルの収集によってログ ファイルが確実に収集されるようにするため、ログ ファイルを仮想マシンのディレクトリ外には配置しないでください。仮想マシンの問題をデバッグするうえで、このログ ファイルが重要になる可能性があります。
log.fileLevel

メッセージが vmware.log に書き込まれる最低レベルを制御します。すべてのログ メッセージにはレベルが関連付けられています。指定された設定より下のレベルのメッセージは、仮想マシンのログ ファイルには追加されません。仮想マシンのメッセージ ログ レベル(制限が最大のものから最小のものまで)は以下のとおりです。

  • エラー
  • 警告
  • 注意
  • 情報(デフォルト)
  • 最詳細
  • デバッグ
  • debug1
  • debug2
  • debug3
  • debug4
  • debug5
  • debug6
  • debug7
  • debug8
  • debug9
  • debug10
log.fileLevel = "debug1"

仮想マシンの問題をデバッグするために必要なメッセージが除外されるのを防ぐため、「情報」よりも制限が厳しいレベルには設定しないでください。認定済みのサポートから要求された場合にのみ、レベルを「情報」未満に下げます。デバッグの終了後に、この設定を「情報」に戻します。

log.filter.minLogLevel.<groupName>

特殊なデバッグ メッセージの出力を制御します。

log.filter.minLogLevel.disklib = "debug5" 認定済みのサポートから要求された場合にのみ、この設定を使用します。サポートから 1 つ以上の <groupName> パラメータが指定されます。デバッグの終了後に、この設定を削除します。
log.sysogID

Syslog などの ESXi ホストのシステム ロガーに対する仮想マシンのログ メッセージの送信を有効にします。

log.syslogID = "vmx"

この設定の値として "vmx" を使用すると、ESXi Syslog デーモンの vmsyslogd から、これらのメッセージを別のログ ファイルに送信できます。

log.syslogLevel

Syslog などの ESXi ホストのシステム ロガーにメッセージを出力する最低レベルを制御します。

log.syslogLevel = "debug" この設定のレベルと機能は、log.fileLevel 設定のものと同じです。

リモート ホストへのメッセージ転送を指定する方法

必要に応じて、Syslog メッセージを 1 つ以上のリモート ホストに送信して Syslog メッセージを収集するように ESXi を構成できます。これらのリモート ホストは Syslog コレクタと呼ばれ、 VMware vRealize Log Insight(旧称は vCenter Log Insight)などが該当します。
注: ベスト プラクティスは、Syslog メッセージを 1 台以上の Syslog コレクタに送信するように各 ESXi ホストを構成することです。これにより、致命的なシステム イベントが発生した場合にメッセージを確実に保存し、Syslog メッセージをリアルタイムの分類や分析(タイプ、時間範囲、マシン別など)やアーカイブ メッセージなど、さまざまな方法で処理できます。

Syslog.global.logHost 設定を使用して、リモート ホストの仕様を定義します。複数のリモート ホスト仕様はカンマ (,) で区切ります。Syslog.global.logHost を設定した後、ESXi ホストは Syslog コレクタとの接続を開いて維持し、メッセージ転送がただちに開始されます。ESXi は Syslog メッセージを生成するときに、ESXi ホスト上の適切なログ ファイルにメッセージを書き込み、構成されたすべての Syslog コレクタに転送します。

Syslog メッセージに加えて、監査メッセージをセキュリティ上の目的で Syslog コレクタに送信することもできます。監査レコードは、ESXi ホスト上のセキュリティ関連のアクティビティを追跡します。監査レコードの詳細については、「 監査レコード」を参照してください。
注: 監査レコードを設定する必要があるかどうか、およびその方法については、会社のセキュリティ対策チームに確認してください。認証された構成では、通常、監査レコードを有効にする必要があります。

次に、Syslog.global.logHost リモート ホスト仕様の構文を示します。

protocol://target[:port]
パラメータ 説明 メモ
protocol ネットワーク プロトコルを指定します。有効な値は、udptcp、および ssl です。 ssl プロトコルでは、Syslog メッセージの送信を暗号化することが指定されています。tcp および udp プロトコルでは、転送は暗号化されません。
注: システムで Syslog メッセージまたは監査メッセージのキャプチャが重要である場合は、 udp プロトコルを使用しないでください。ESXi 外部のネットワーク インフラストラクチャでは、UDP メッセージがドロップされる可能性があります。
target

リモート ホストを指定します。IPv4 または Ipv6 アドレスのいずれか、またはホスト名を使用できます。

IPv6 アドレスを使用する場合は、[xxx] のように角括弧で囲む必要があります。xxx は IPv6 アドレスです。
port (オプション)使用するリモート ホスト ポートを指定します。UDP または TCP を使用する場合、デフォルト ポートは 1514 です。SSL を使用する場合、デフォルト ポートは 514 です。514 または 1514 以外のポートを使用する場合は、ESXi ファイアウォールを調整してポートを開く必要があります。 各リモート ホストの仕様で指定されたポート向けに ESXi のファイアウォールを開く方法の詳細については、「ESXi ファイアウォールの構成」を参照してください。
リモートマシン仕様のサンプル:
Syslog.global.logHost 文字列の例 メモ
tcp://10.176.130.7:12345 TCP/IP およびポート 12345 を使用して、Syslog メッセージを 10.176.130.7 に転送します。
tcp://[2001:db8:85a3:8d3:1319:8a2e:370:7348] ポート 1514 を使用して、Syslog メッセージを IPv6 アドレスに転送します。

tcp://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:5432

ポート 54321 を使用して、Syslog メッセージを IPv6 アドレスに転送します。
udp://company.com UDP およびポート 514 を使用して、Syslog メッセージを company.com に転送します。

udp://company.com,tcp://10.20.30.40:1050

Syslog メッセージを 2 台のリモート ホストに転送します。最初のリモート ホストは、UDP を使用して、ポート 514 による company.com との通信を行います。2 番目のリモート ホストは TCP を使用して、ポート 1050 による IPV4 アドレス 10.20.30.40 との通信を行います。

ssl://company.com

SSL (TLS) およびポート 514 を使用して、Syslog メッセージを company.com に転送します。

メッセージ転送の最大長

UDP を使用する場合の Syslog メッセージ転送の最大長は、IPv4 で 480 バイト、IPv6 で 1,180 バイトです。

TCP または SSL の場合、Syslog メッセージ転送のデフォルトの最大長は 1 キビバイト (KiB) です。この長さは、 Syslog.global.remoteHost.maxMsgLen パラメータを使用して増やすことができます。最大値は 16 KiB です。16 KiB を超えるメッセージは切り詰められます。
注: 最大転送長を増やす必要がある場合は、具体的に必要な分の長さを増やすことがベスト プラクティスになります。
Syslog メッセージの最大長を増やすと、ESXi 外部のネットワークおよび Syslog インフラストラクチャが 1 KiB を超えるメッセージを処理できない場合、問題が発生する可能性があります。
注: UDP はパケット長に制約があり、外部のネットワーク インフラストラクチャによってメッセージがドロップされる可能性があるため、Syslog メッセージの送信に UDP を使用しないことがベスト プラクティスです。

リモート ホストへの SSL 転送を構成する際の証明書に関する考慮事項

SSL を使用して Syslog メッセージをリモート ホストに転送するように ESXi を構成する場合は、各リモート ホストの SSL 証明書を ESXi ホストの CA ストアに追加する必要があります。詳細については、「 ESXi ホストの証明書管理」および「 ESXCLI を使用した CA 証明書の管理」を参照してください。
注: SSL とプライベート キーを使用して Syslog メッセージを安全に受信できるようにコレクタを構成する方法については、Syslog コレクタのドキュメントを参照してください。

その他の SSL 転送パラメータ

セキュリティ認証の要件に準拠した ESXi システムでは、X509 CRL チェックの有効化が必要になる場合があります。詳細設定の Syslog.global.certificate.strictX509ComplianceSyslog.global.certificate.checkCRL を有効にするには、デフォルト値の falsetrue に変更します。実装上の制限により、Syslog.global.certificate.checkSSLCerts の設定を使用して CRL チェックを有効にしている場合は、証明書チェーン内のすべての証明書で CRL リンクを提供する必要があります。デフォルトでは、この設定は有効になっています。この設定を false に変更することで、SSL 証明書のチェックを無効にできますが、この方法はベスト プラクティスではありません。リモート ホストとの通信のトラブルシューティングを行う場合は、SSL 証明書チェックの無効化が必要になる場合がありますが、オフにする期間は制限するようにしてください。

Syslog デーモンのエラーとステータスの情報を確認できる場所

ESXi の Syslog デーモンは、ステータスとエラー情報を、ドロップされたメッセージも含めてログ ファイル /var/run/log/vmsyslogd.log に保存します。監査レコードの転送が有効になっている場合、Syslog デーモンは、デーモンの開始、停止、エラー状態など、その操作に関連する監査レコードも出力します。これにより、Syslog デーモンが適切に実行されていることを確認できます。

デフォルトの Syslog ログ ファイル ストレージ領域を変更する方法

デフォルトの Syslog ログ ファイル ストレージ領域は、各 ESXi ホストのローカルの /var/run/log です。デフォルトの Syslog ログ ファイル ストレージ領域は、Syslog 構成変数 Syslog.global.logDir を使用することにより、パーシステント ストレージ上であれば任意の場所に変更できます。Syslog.global.logDir が、Syslog ログ ファイルを保存するために複数の ESXi ホストで共有されているパーシステント ストアに構成されている場合は、ログの混在を防ぐために Syslog.global.logDirUnique 設定を true に変更します。Syslog.global.logDirUnique を設定すると、各 ESXi マシンは Syslog.global.logDir パスに追加された一意の名前を取得し、ログ ファイルを他のホストから区別するようになります。

リモート ホストおよびメッセージ ドロップ用の Syslog メッセージ キュー

Syslog の排出量が開始されると、ESXiの再起動と障害、または停止する Syslog 再構成を除いて停止することはありません。

ESXi は、Syslog メッセージと監査レコードをリモート ホストに転送するために、容量が制限されたメモリベースのキュー メカニズムを使用します。このメカニズムにより、vmsyslogd サービスは大量の短いメッセージを処理でき、ネットワーク接続の問題をデータのドロップなしで迅速に解決できます。

接続の問題が長引くか、受信データのフローがキュー メカニズムで許容できる制限を継続的に超えると、vmsyslogd サービスは一部の Syslog メッセージをドロップします。

このようなドロップを最小限に抑えるには、vmsyslogd ログ ファイルを使用可能な最高速のストレージに配置し、エンドツーエンドのバンド幅が 1 GigE 以上のネットワーク上に Syslog コレクタを構成します。

アプリケーションからログが過剰に生成される場合は、分析と修正のためにサポート サービス リクエストを発行します。

メッセージのドロップに関する統計情報は、Syslog デーモン ログ ファイルに記録されます。

ドロップされたメッセージは、/var/run/log/vmsyslogd-dropped.log に記録されます。このログ ファイルには、プログラム固有の保持パラメータと同様に、固有の保持設定があります。ドロップされたメッセージのログ ファイルの保持パラメータは、Syslog.global.droppedMsgs.fileRotateSyslog.global.droppedMsgs.fileSize です。