VMware ESXi 是一個虛擬化管理程式,類似於其他作業系統和軟體產品,它會寫入日誌文件。我們在最近的一篇部落格文章中介紹了最有用的 VMware 日誌,並在這篇文章中擴展了配置。安裝 ESXi 後,日誌文件會存儲在默認位置。但是,如果需要,您可以更改 VMware 日誌的位置。本文將解釋如何在命令行和圖形用戶界面(GUI)中更改 ESXi 日誌位置。
為什麼需要更改 VMware 日誌位置?
默認情況下,重新啟動 ESXi 主機後,VMware ESXi 日誌會被刪除。如果您不希望每次主機重新啟動後刪除 VMware ESXi 日誌,則可以將 VMware 日誌位置從默認的暫存分區更改為持久存儲,例如數據存儲中的目錄。
將 VMware ESXi 配置為在永久存儲(例如數據存儲)上存儲日誌的第一種方法是設置持久暫存空間。默認情況下,ESXi 使用內存文件系統(tmpfs)作為暫存空間,這意味著在重新啟動時日誌將丟失。但是,使用持久暫存空間,日誌將在重新啟動後保留並存儲在指定的數據存儲中。
第二種方法是將暫存分區配置保持不變,但將存儲日誌文件的路徑從暫存分區更改為持久數據存儲。我們在這個例子中使用了這種方法。
您可以在 ESXi 命令行和 GUI 中使用 VMware vSphere 客戶端更改 VMware ESXi 系統日誌的位置。
使用命令列更改 ESXi 日誌位置
按照以下步驟在命令列中更改 ESXi 日誌位置:
- 首先,確定您想要儲存日誌的資料儲存區。確保資料儲存區有足夠的可用空間來容納日誌檔案。
- 啟用 SSH 並連接到 ESXi 主機。使用 SSH 客戶端(例如 PuTTY)連接到 ESXi 主機的管理 IP 地址。
-
檢查當前的暫存配置和 VMware 日誌的位置。運行以下命令以檢查儲存 VMware 日誌的當前配置:
esxcli system syslog config get
正如您在我們的屏幕截圖中顯示的輸出中所見,/scratch/log 是本地日誌輸出。
- 您還可以使用命令查看有關當前暫存配置的信息:
vim-cmd hostsvc/advopt/view ScratchConfig.ConfiguredScratchLocation
- 在數據存儲中創建目錄。使用以下命令在所選數據存儲中創建目錄,以存儲日誌:
mkdir /vmfs/volumes/<datastore_name>/log
用數據存儲的名稱(我們的情況是datastore10a)替換<datastore_name>。
在我們的情況下,命令是:
mkdir /vmfs/volumes/datastore10a/log
-
esxcli 系統 syslog 配置設置 --logdir=/vmfs/directory/path --loghost='tcp://hostname:514'
我們在本地 ESXi 主機的 Datastore10a 上設置了最近創建的目錄作為存儲 VMware 日誌的新位置,命令如下:
esxcli 系統 syslog 配置設置 --logdir=/vmfs/volumes/Datastore10a/log
如果您看到類似“Logdir 必須存在並且是目錄”的錯誤,如果所需目錄已存在,請嘗試使用 datastore(分區)UUID 而不是人性化的 datastore 名稱。檢查 datastore UUID 的最簡單方法是轉到 datastore 目錄:
cd /vmfs/volumes/Datastore10a/
查看當前目錄的路徑,在我們的情況下,datastore10a 的 UUID 為 609a545a-50d29185-ffbb-000c293004f2。
運行命令,使用 datastore UUID 而不是路徑中的 datastore 名稱來設置新的日誌位置:
esxcli 系統 syslog 配置設置 --logdir=/vmfs/volumes/609a545a-50d29185-ffbb-000c293004f2/log
命令已成功執行。
- 重新加載系統日誌以應用新的設置並開始在持久位置寫入日誌,該位置是數據存儲上的目錄:
esxcli system syslog reload
重新加載後,ESXi 將把其日誌存儲在指定數據存儲上的指定目錄中。這將確保日誌在重新啟動時得以保留,並為日誌文件提供更持久和可靠的存儲解決方案。
使用 VMware vSphere Client 更改 ESXi 日誌位置
執行以下步驟以在 vCenter GUI 中使用 VMware vSphere Client 更改 ESXi 日誌位置:
- 選擇 主機和集群 檢視,並在導航窗格中(位於界面左側)中選擇所需的 ESXi 主機。
- 單擊 配置 標籤,然後在配置窗格的 系統 部分中單擊 高級系統設置。
- 查找要配置的 Syslog.global.logDir 關鍵字。在我們的情況下,此關鍵字位於第 31 頁。
單擊 編輯 以更改 Syslog.global.logDir 關鍵字的值。
- A new window to edit advanced system settings opens.
將默認值 /scratch/log 更改為您的數據存儲上的目錄的自定義值,然後單擊 確定 保存設置。
在 VMware 主機客戶端中更改 ESXi 日誌位置
如果您沒有 vCenter Server 或使用獨立的 ESXi 主機,您可以在 VMware 主機客戶端中更改 ESXi 日誌位置:
- 在網頁瀏覽器中輸入 ESXi 主機的 IP 地址並登錄 VMware Host Client。
- 前往 主機 > 管理 > 系統 > 進階設置。
- 在選項列表中找到 Syslog.global.logDir 鍵。
- 選擇 Syslog.global.logDir 鍵,並點擊 編輯 選項。
- 在相應的字段中輸入新的 ESXi 日誌位置值,然後點擊 保存。
如何在 PowerCLI 中更改 ESXi 日誌位置
如果您喜歡 vSphere PowerCLI,這是基於 Windows PowerShell 的命令行界面,您可以考慮以下方法來更改 VMware ESXi 主機的日誌位置。可能有三種情況。
在獨立主機上更改 ESXi 日誌位置
- 打開 PowerCLI 並使用管理員憑證登錄到 ESXi 伺服器:
Connect-VIServer -Server <ESXiHostIPAddress> -User <Username> -Password <Password>
- 在PowerCLI中設定新的 ESXi 日誌位置:
Set-VMHostAdvancedConfiguration -VMHost <HostNameOrIPAddress> -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"
將 <DatastoreName> 替換為您要存儲日誌的資料存儲庫的名稱,並將 <Path> 替換為日誌的新目錄路徑。
更改未使用 vCenter 管理的多個 ESXi 主機的 ESXi 日誌位置
如果您有多個 ESXi 主機,但它們未由 vCenter 管理,請執行以下操作:
- 準備一份 ESXi 主機清單。創建一個文本文件,每行列出一個主機的 IP 地址或主機名稱(例如,hosts.txt)。
-
$hosts = Get-Content -Path "C:\path\to\hosts.txt"
foreach ($host in $hosts) {
Connect-VIServer -Server $host -User <User> -Password <Password>
Set-VMHostAdvancedConfiguration -VMHost $host -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"
Disconnect-VIServer -Server $host -Confirm:$false
}
根據您的環境和基礎設施輸入所需的值。
使用 vCenter 更改多個主機的 ESXi 日誌位置
如果您的 ESXi 主機由 vCenter 管理,您可以按照以下步驟在 PowerShell 中更改 ESXi 日誌位置:
- 在 PowerCLI 中連接到 vCenter Server:
Connect-VIServer -Server <vCenterHostNameOrIPAddress> -User <User> -Password <Password>
- 為 vCenter 管理的所有主機設置 ESXi 日誌位置:
Get-VMHost | ForEach-Object {
Set-VMHostAdvancedConfiguration -VMHost $_ -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"
}
執行命令時輸入所需值,以符合您的環境配置。
結論
使用持久性存儲保存 ESXi 日誌可在 ESXi 重新啟動後保留這些日誌。您可以使用命令行和圖形用戶界面更改 ESXi 日誌位置。如果 ESXi 主機由 vCenter Server 管理,則可以使用 VMware vSphere Client。如果 ESXi 主機未由 vCenter 管理,請使用 ESXi 命令行或 VMware Host Client。擁有大型虛擬環境的組織可以配置一個日誌服務器,將多個主機的 ESXi 日誌寫入此服務器的共享數據存儲中。
Source:
https://www.nakivo.com/blog/change-vmware-esxi-logs-location/