ESXi での VMware ログ保存場所の設定方法
VMware ESXiは、他のオペレーティングシステムやソフトウェア製品と同様に、ログファイルを作成するハイパーバイザーです。これについてはすでに解説しました 最も有用なVMwareログ 最近のブログ記事で取り上げた内容を、本記事ではさらに詳しく解説します。ESXiのインストール後、ログファイルはデフォルトの場所に保存されます。ただし、必要に応じてVMwareのログ保存場所を変更することも可能です。本記事では、コマンドラインおよびグラフィカルユーザーインターフェース(GUI)を使用して、ESXiのログ保存場所を変更する方法について説明します。
なぜVMwareのログ保存場所を変更する必要があるのでしょうか?
VMware ESXi のログは、デフォルトでは ESXi ホストの再起動後に削除されます。ホストの再起動ごとに VMware ESXi のログが削除されないようにするには、ESXi ホスト上の VMware ログの保存場所を、デフォルトのスクラッチパーティションから、データストア上のディレクトリなどの永続ストレージに変更できます。
データストアなどの永続ストレージにログを保存するように VMware ESXi を設定する最初の方法は、永続的なスクラッチ領域を設定することです。 デフォルトでは、ESXiはスクラッチ領域にインメモリファイルシステム(tmpfs)を使用するため、再起動時にログは失われます。しかし、永続的なスクラッチ領域を使用すれば、ログは再起動後も保持され、指定されたデータストアに保存されます。
2つ目の方法は、 スクラッチ パーティション構成はそのままに、ログファイルの保存先をスクラッチパーティションから永続データストアに変更します。この例では、このアプローチを採用しています。
VMware vSphere Client を使用すれば、ESXi コマンドラインおよび GUI から VMware ESXi システムログの保存場所を変更できます。
コマンドラインを使用してESXiのログ保存場所を変更する
コマンドラインでESXiのログ保存場所を変更するには、以下の手順を実行してください:
- まず、ログを保存するデータストアを特定します。そのデータストアに、ログファイルを保存するのに十分な空き容量があることを確認してください。
- SSHを有効にして、ESXiホストに接続します。SSHクライアント(例:PuTTY)を使用して、ESXiホストの管理用IPアドレスに接続します。
- VMwareログの現在のスクラッチ設定と保存場所を確認します。VMwareログの保存に関する現在の設定を確認するには、次のコマンドを実行してください:
esxcli system syslog config getスクリーンショットに表示されている出力結果からもお分かりのように、 /スクラッチ/ログ これはローカルのログ出力です。

- また、このコマンドを使用して、現在のスクラッチ設定に関する情報を確認することもできます:
vim-cmd hostsvc/advopt/view ScratchConfig.ConfiguredScratchLocation
- 現在のスクラッチ領域の場所(例:/tmp/scratch)と、メモリを使用しているか、特定のパーティションを使用しているかを確認してください。
- データストア上にディレクトリを作成します。ログを保存したいデータストア上で、次のコマンドを使用してディレクトリを作成してください:
mkdir /vmfs/volumes//log 置き換える
データストアの名前(datastore10a (当方のケースでは)。今回の場合、コマンドは次のとおりです:
mkdir /vmfs/volumes/datastore10a/log - VMwareのログを保存する新しい場所を設定します。次のようなコマンドを使用して、ローカルまたはリモートのESXiホスト上のデータストアにあるディレクトリを設定できます。
esxcli system syslog config set --logdir=/vmfs/directory/path --loghost='tcp://hostname:514'新しく作成したディレクトリを データストア10a 次のコマンドを使用して、VMwareのログを保存する新しい場所として、ローカルのESXiホストを指定します:
esxcli system syslog config set --logdir=/vmfs/volumes/Datastore10a/log次のようなエラーが表示された場合は “Logdir は存在しており、かつディレクトリでなければなりません“必要なディレクトリがすでに存在する場合は、人間が理解しやすいデータストア名ではなく、データストア(パーティション)のUUIDを使用してみてください。データストアのUUIDを確認する最も簡単な方法は、データストアのディレクトリに移動することです:
cd /vmfs/volumes/Datastore10a/現在のディレクトリのパスを確認してください。そこにはデータストア(パーティション)のUUIDが表示されているはずです。今回のケースでは、UUIDは datastore10a は 609a545a-50d29185-ffbb-000c293004f2 です。
パス内のデータストア名ではなく、データストアのUUIDを使用して、新しいログの保存場所を設定するコマンドを実行します:
esxcli system syslog config set --logdir=/vmfs/volumes/609a545a-50d29185-ffbb-000c293004f2/logコマンドは正常に実行されました。

- syslog を再読み込みして新しい設定を適用し、データストア上のディレクトリという永続的な場所にログの書き込みを開始します:
esxcli system syslog reload
再起動後、ESXiは指定されたデータストア上の指定ディレクトリにログを保存します。これにより、再起動後もログが確実に保持され、ログファイルのためのより永続的で信頼性の高い保存ソリューションが提供されます。
VMware vSphere Client を使用して ESXi のログ保存場所を変更する
VMware vSphere Client を使用して vCenter GUI で ESXi のログ保存場所を変更するには、以下の手順を実行してください:
- [選択]
Hosts and clustersナビゲーションペイン(インターフェースの左側にある)で、必要なESXiホストを表示して選択します。 - をクリックして
Configureタブをクリックし、次にAdvanced System Settings~の中でSystem設定ペインのセクション。 - 次の
Syslog.global.logDir設定用のキーです。今回の場合、このキーは31ページにあります。クリック
Editの値を変更するにはSyslog.global.logDirキー。
- 詳細なシステム設定を編集するための新しいウィンドウが開きます。
デフォルトを変更する
/scratch/logデータストア上のディレクトリなど、任意のカスタム値を入力し、[クリック] をクリックしますOK設定を保存するには。
VMware Host Client での ESXi ログ保存場所の変更
vCenter Serverをお持ちでない場合や、スタンドアロンのESXiホストを使用している場合は、VMware Host ClientでESXiのログ保存場所を変更できます:
- WebブラウザにESXiホストのIPアドレスを入力し、VMware Host Clientにログインします。
- 移動
Host>Manage>System>Advanced settings. - 次の
Syslog.global.logDirオプションの一覧から選択してください。 - [選択]
Syslog.global.logDirキーを押して、Editオプション。
- ESXiのログ保存場所の新しい値を該当するフィールドに入力し、
Save.
PowerCLI で ESXi のログ保存場所を変更する方法
もし気に入ったら vSphere PowerCLIWindows PowerShell をベースとしたコマンドラインインターフェースである VMware PowerShell を使用する場合、VMware ESXi ホストのログ保存場所を変更するには、以下の方法を検討できます。主に 3 つのケースが考えられます。
スタンドアロンホストでESXiのログ保存場所を変更する
- PowerCLI を起動し、管理者権限で ESXi サーバーにログインします:
Connect-VIServer -Server-User -Password - PowerCLI で新しい ESXi ログの保存場所を設定します:
Set-VMHostAdvancedConfiguration -VMHost-Name "Syslog.global.logDir" -Value "[ ] " 置き換える <データストア名> ログを保存したいデータストアの名前と <パス> ログ用の新しいディレクトリパスを指定して。
vCenterを使用せずに、複数のESXiホストのESXiログ保存場所を変更する
複数のESXiホストがあるものの、vCenterで管理されていない場合は、次の手順を実行してください:
- ESXiホストのリストを作成します。各ホストのIPアドレスまたはホスト名を1行ずつ記載したテキストファイルを作成します(例: hosts.txt).
- ESXiのログ保存先を設定するPowerCLIスクリプトの例を見てみましょう:
$hosts = Get-Content -Path "C:pathtohosts.txt"foreach ($host in $hosts) {Connect-VIServer -Server $host -User-Password Set-VMHostAdvancedConfiguration -VMHost $host -Name "Syslog.global.logDir" -Value "[] " Disconnect-VIServer -Server $host -Confirm:$false}ご利用の環境やインフラに合わせて、必要な値を入力してください。
vCenter を使用して複数のホストの ESXi ログ保存場所を変更する
ESXiホストがvCenterによって管理されている場合、PowerShellでESXiのログ保存場所を次のように変更できます:
- PowerCLI で vCenter Server に接続する:
Connect-VIServer -Server-User -Password - vCenterで管理されているすべてのホストのESXiログ保存先を設定します:
Get-VMHost | ForEach-Object {Set-VMHostAdvancedConfiguration -VMHost $_ -Name "Syslog.global.logDir" -Value "[] " }環境の設定に合わせてコマンドを実行する際は、必要な値を入力してください。
結論
ESXiのログに永続ストレージを使用することで、ESXiの再起動後もこれらのログを保持することができます。 ESXiのログ保存場所は、コマンドラインまたはグラフィカルユーザーインターフェイスを使用して変更できます。ESXiホストがvCenter Serverによって管理されている場合は、VMware vSphere Clientを使用できます。ESXiホストがvCenterによって管理されていない場合は、ESXiコマンドラインまたはVMware Host Clientを使用してください。大規模な仮想環境を持つ組織では、共有データストアを備えたログサーバーを設定し、複数のホストのESXiログをこのサーバーに書き込むように構成できます。