如何配置ESXi上的VMware日志位置

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 日誌位置

按照以下步驟在命令列中更改 ESXi 日誌位置:

  1. 首先,確定您想要儲存日誌的資料儲存區。確保資料儲存區有足夠的可用空間來容納日誌檔案。
  2. 啟用 SSH 並連接到 ESXi 主機。使用 SSH 客戶端(例如 PuTTY)連接到 ESXi 主機的管理 IP 地址。
  3. 檢查當前的暫存配置和 VMware 日誌的位置。運行以下命令以檢查儲存 VMware 日誌的當前配置:

    esxcli system syslog config get

    正如您在我們的屏幕截圖中顯示的輸出中所見,/scratch/log 是本地日誌輸出。

  4. 您還可以使用命令查看有關當前暫存配置的信息:

    vim-cmd hostsvc/advopt/view ScratchConfig.ConfiguredScratchLocation

  5. 在數據存儲中創建目錄。使用以下命令在所選數據存儲中創建目錄,以存儲日誌:

    mkdir /vmfs/volumes/<datastore_name>/log

    用數據存儲的名稱(我們的情況是datastore10a)替換<datastore_name>

    在我們的情況下,命令是:

    mkdir /vmfs/volumes/datastore10a/log

  6. 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

    命令已成功執行。

  7. 重新加載系統日誌以應用新的設置並開始在持久位置寫入日誌,該位置是數據存儲上的目錄:

    esxcli system syslog reload

重新加載後,ESXi 將把其日誌存儲在指定數據存儲上的指定目錄中。這將確保日誌在重新啟動時得以保留,並為日誌文件提供更持久和可靠的存儲解決方案。

使用 VMware vSphere Client 更改 ESXi 日誌位置

執行以下步驟以在 vCenter GUI 中使用 VMware vSphere Client 更改 ESXi 日誌位置:

  1. 選擇 主機和集群 檢視,並在導航窗格中(位於界面左側)中選擇所需的 ESXi 主機。
  2. 單擊 配置 標籤,然後在配置窗格的 系統 部分中單擊 高級系統設置
  3. 查找要配置的 Syslog.global.logDir 關鍵字。在我們的情況下,此關鍵字位於第 31 頁。

    單擊 編輯 以更改 Syslog.global.logDir 關鍵字的值。

  4. A new window to edit advanced system settings opens.

    將默認值 /scratch/log 更改為您的數據存儲上的目錄的自定義值,然後單擊 確定 保存設置。

在 VMware 主機客戶端中更改 ESXi 日誌位置

如果您沒有 vCenter Server 或使用獨立的 ESXi 主機,您可以在 VMware 主機客戶端中更改 ESXi 日誌位置:

  1. 在網頁瀏覽器中輸入 ESXi 主機的 IP 地址並登錄 VMware Host Client。
  2. 前往 主機 > 管理 > 系統 > 進階設置
  3. 在選項列表中找到 Syslog.global.logDir 鍵。
  4. 選擇 Syslog.global.logDir 鍵,並點擊 編輯 選項。

  5. 在相應的字段中輸入新的 ESXi 日誌位置值,然後點擊 保存

如何在 PowerCLI 中更改 ESXi 日誌位置

如果您喜歡 vSphere PowerCLI,這是基於 Windows PowerShell 的命令行界面,您可以考慮以下方法來更改 VMware ESXi 主機的日誌位置。可能有三種情況。

在獨立主機上更改 ESXi 日誌位置

  1. 打開 PowerCLI 並使用管理員憑證登錄到 ESXi 伺服器:

    Connect-VIServer -Server <ESXiHostIPAddress> -User <Username> -Password <Password>

  2. 在PowerCLI中設定新的 ESXi 日誌位置:

    Set-VMHostAdvancedConfiguration -VMHost <HostNameOrIPAddress> -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"

    將 <DatastoreName> 替換為您要存儲日誌的資料存儲庫的名稱,並將 <Path> 替換為日誌的新目錄路徑。

更改未使用 vCenter 管理的多個 ESXi 主機的 ESXi 日誌位置

如果您有多個 ESXi 主機,但它們未由 vCenter 管理,請執行以下操作:

  1. 準備一份 ESXi 主機清單。創建一個文本文件,每行列出一個主機的 IP 地址或主機名稱(例如,hosts.txt)。
  2. $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 日誌位置:

  1. 在 PowerCLI 中連接到 vCenter Server:

    Connect-VIServer -Server <vCenterHostNameOrIPAddress> -User <User> -Password <Password>

  2. 為 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/