適切な Syslog 設定を使用することで、環境のプロアクティブな監視を実現し、ダウンタイムを短縮し、サーバに対して予防的なアクションを実行できます。
Syslog の設定時には、ログ ファイルの保持、Syslog の転送、転送の長さ、エラー処理、および Syslog メッセージを安全に転送するための SSL 証明書の設定に影響するいくつかのパラメータを考慮する必要があります。次に、Syslog パラメータを微調整するための推奨事項を示します。使用可能なすべてのパラメータの説明は、「ESXi Syslog のオプション」で確認できます。
ログ ファイルの保持を指定する方法
仮想マシンのログ ファイルに影響する設定の管理
vmx ファイルまたは /etc/vmware/config ファイルのいずれかで、仮想マシンのログ ファイルである vmware.log に影響するいくつかの設定を構成できます。vmx ファイルを編集するには、仮想マシンをパワーオフする必要があり、編集はその仮想マシンでのみ有効になります。/etc/vmware/config ファイルを使用する場合は、プリフィックス「vmx」を設定に追加する必要があります(例:vmx.log.keepOld = "20"
)。編集は、ESXi ホスト上のすべての仮想マシンに影響します。
パラメータ | 説明 | 例 | メモ |
---|---|---|---|
logging | すべての仮想マシンのログ作成を無効にします。 |
デフォルト値は logging = "TRUE" です。仮想マシンのログ作成を無効にするには、次の設定にします。
|
この設定は使用しないでください。仮想マシンのログ作成を無効にすると、仮想マシンの問題についてサポートを受けることが非常に困難または不可能になるためです。何らかの理由でこの設定を使用する必要がある場合は、仮想マシンの vmx ファイル内にのみ配置できます。 |
log.throttleBytesPerSec | どのような場合にログ ファイルを調整するかを制御します。ログ ファイルの調整は、vmware.log への書き込みが長時間にわたって指定されたレートを超えると実行されます。このような状況が発生するのは、仮想マシンを制御する VMX プロセス内のコードにより、ログ メッセージが過剰に作成された場合です。この設定のデフォルト値は 1 KB/秒です。 ログの調整が実行された場合は、vmware.log ファイル内に <<< Log Throttled >>> というメッセージが含まれます。 |
ログの調整を無効にするには、次の設定を使用します。
|
ログ ファイルの調整により、影響を受ける仮想マシンの問題を診断するために必要な情報が見つかりにくくなる場合があります。ログの調整を無効にする必要がある場合は、影響を受ける仮想マシンの vmx ファイル内に例の行を配置します。デバッグ セッションの終了後に、その行を削除します。 |
log.keepOld | 保持する古い vmware.log ファイルの数を制御します。 |
log.keepOld = "20" |
この設定の値をデフォルト値 (10) 未満にしないでください。仮想マシンを頻繁に変更または移動する場合は、この設定を 20 以上に引き上げることを検討してください。 |
log.rotateSize | vmware.log ファイルの最大サイズをバイト単位で制御します。 |
vmware.log ファイルの最大サイズの制限を無効にするには、次の設定を使用します。
|
この設定の値を 100,000 未満にすると、重要なログ メッセージが失われ、仮想マシンのパフォーマンスに影響する可能性があります。ESXi 7.x 以前では、この設定のデフォルト値によって vmware.log ファイルのサイズが制限されることはありません。ESXi 8.x 以降では、この設定のデフォルト値は 2,048,000 です。 |
log.fileName | 仮想マシンのログ ファイルの名前と場所を制御します。 |
この設定により、仮想マシンのログ ファイルの名前が vmware.log から myVMlog に変更されます。
この設定により、仮想マシンのログ ファイルが、ファイル名に myVM を使用して、別の VMFS ボリューム (vol1) 上のディレクトリに転送されます。 |
ホスト サポート バンドルの収集によってログ ファイルが確実に収集されるようにするため、ログ ファイルを仮想マシンのディレクトリ外には配置しないでください。仮想マシンの問題をデバッグするうえで、このログ ファイルが重要になる可能性があります。 |
log.fileLevel | メッセージが vmware.log に書き込まれる最低レベルを制御します。すべてのログ メッセージにはレベルが関連付けられています。指定された設定より下のレベルのメッセージは、仮想マシンのログ ファイルには追加されません。仮想マシンのメッセージ ログ レベル(制限が最大のものから最小のものまで)は以下のとおりです。
|
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.global.logHost 設定を使用して、リモート ホストの仕様を定義します。複数のリモート ホスト仕様はカンマ (,) で区切ります。Syslog.global.logHost を設定した後、ESXi ホストは Syslog コレクタとの接続を開いて維持し、メッセージ転送がただちに開始されます。ESXi は Syslog メッセージを生成するときに、ESXi ホスト上の適切なログ ファイルにメッセージを書き込み、構成されたすべての Syslog コレクタに転送します。
次に、Syslog.global.logHost リモート ホスト仕様の構文を示します。
protocol://target[:port]
パラメータ | 説明 | メモ |
---|---|---|
protocol | ネットワーク プロトコルを指定します。有効な値は、udp、tcp、および 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 バイトです。
リモート ホストへの SSL 転送を構成する際の証明書に関する考慮事項
その他の SSL 転送パラメータ
セキュリティ認証の要件に準拠した ESXi システムでは、X509 CRL チェックの有効化が必要になる場合があります。詳細設定の Syslog.global.certificate.strictX509Compliance と Syslog.global.certificate.checkCRL を有効にするには、デフォルト値の false を true に変更します。実装上の制限により、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.fileRotate と Syslog.global.droppedMsgs.fileSize です。