如何在 ESXi 上設定 VMware 日誌位置

VMware ESXi 是一款虛擬化平台,與其他作業系統及軟體產品類似,它也會寫入日誌檔案。我們已探討過 最有用的 VMware 日誌 在最近的一篇部落格文章中,本文將進一步擴展該設定。安裝 ESXi 後,日誌檔案會儲存於預設位置。不過,如有需要,您可以變更 VMware 的日誌位置。這篇部落格文章將說明如何透過命令列及圖形使用者介面 (GUI) 來變更 ESXi 的日誌位置。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

為什麼需要變更 VMware 日誌的位置?

預設情況下,VMware ESXi 主機重新啟動後,其日誌將會被刪除。若您不希望 VMware ESXi 日誌在每次主機重新啟動後被刪除,可將 ESXi 主機上的 VMware 日誌位置從預設的暫存區分區變更為持久性儲存裝置,例如資料存放區上的某個目錄。

將 VMware ESXi 設定為將日誌儲存於資料存放區等永久儲存裝置的首要方法,是建立持久性暫存空間。 預設情況下,ESXi 會使用內存文件系統 (tmpfs) 作為暫存空間,這意味著重啟後日誌將會遺失。然而,透過使用持久性暫存空間,日誌將在重啟後得以保留,並儲存於指定的資料存放區中。

第二種方法是保留 刮痕 保留現有的分割區配置,但將儲存日誌檔案的路徑從"scratch"分割區變更為永久資料存放區。我們在範例中採用此方法。

您可以在 ESXi 命令列介面中,或透過 VMware vSphere Client 在圖形化使用者介面中,變更 VMware ESXi 系統日誌的位置。

使用命令列變更 ESXi 日誌位置

請依照以下步驟,在命令列中變更 ESXi 日誌位置:

  1. 首先,請指定要儲存日誌的資料存放區。請確保該資料存放區有足夠的可用空間來存放日誌檔案。
  2. 啟用 SSH 並連線至 ESXi 主機。請使用 SSH 客戶端(例如 PuTTY)連線至 ESXi 主機的管理 IP 位址。
  3. 檢查 VMware 日誌的當前暫存配置及位置。請執行以下指令,以檢查 VMware 日誌的當前儲存配置:

    esxcli system syslog config get

    如您在螢幕截圖中顯示的輸出結果所見, /scratch/log 這是本地的日誌輸出。

    Checking the local log output (location)

  4. 您也可以使用此指令來查看當前暫存配置的相關資訊:

    vim-cmd hostsvc/advopt/view ScratchConfig.ConfiguredScratchLocation

    Checking the current scratch partition location

  5. 請記下當前的暫存位置(例如 /tmp/scratch),並確認其使用的是記憶體還是特定分割區。
  6. 在資料存放區上建立一個目錄。請使用以下指令,在您選定的資料存放區上建立一個目錄,用以儲存日誌:

    mkdir /vmfs/volumes//log

    替換 加上資料存放區的名稱(datastore10a (就我們的情況而言)。

    在我們的情況下,該指令是:

    mkdir /vmfs/volumes/datastore10a/log

  7. 設定用於儲存 VMware 日誌的新位置。您可以使用類似以下的指令,在本地或遠端 ESXi 主機的資料存放區上設定一個目錄:

    esxcli system syslog config set --logdir=/vmfs/directory/path --loghost='tcp://hostname:514'

    我們將新建立的目錄設定為 Datastore10a 在我們的本地 ESXi 主機上,使用以下指令將其設為儲存 VMware 日誌的新位置:

    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

    該指令已成功執行。

    Setting a new ESXi log location

  8. 重新載入 syslog 以套用新設定,並開始將日誌寫入位於資料存放區中的某個目錄(此為持久位置):

    esxcli system syslog reload

    The location of VMware ESXi logs has been changed

重新載入後,ESXi 將把其日誌儲存於指定資料存放區中的指定目錄中。此舉可確保日誌在重新開機後仍能保留,並為日誌檔案提供更持久且可靠的儲存解決方案。

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

請依照以下步驟,透過 VMware vSphere Client 在 vCenter 圖形使用者介面中變更 ESXi 日誌位置:

  1. 請選擇 Hosts and clusters 導覽窗格的位置(位於介面左側)中查看並選取所需的 ESXi 主機。
  2. 點擊 Configure 按一下"分頁"按鈕,然後點擊 Advanced System SettingsSystem 設定窗格中的該區段。
  3. 尋找 Syslog.global.logDir 需設定的鍵。在我們的情況下,此鍵的位置在第 31 頁。

    點擊 Edit 要變更該 Syslog.global.logDir 鍵。

    How to change the location of VMware ESXi logs in VMware vSphere Client

  4. 將開啟一個新視窗,用於編輯進階系統設定。

    變更預設值 /scratch/log 將值設定為自訂值(該值可以是您資料存放區中的目錄),然後點擊 OK 以儲存設定。

    Changing the location of VMware ESXi logs in VMware vSphere Client

在 VMware Host Client 中變更 ESXi 日誌位置

如果您沒有 vCenter Server,或使用獨立的 ESXi 主機,您可以透過 VMware Host Client 變更 ESXi 日誌位置:

  1. 在網頁瀏覽器中輸入 ESXi 主機的 IP 位址,並登入 VMware Host Client。
  2. 前往 Host > Manage > System > Advanced settings.
  3. 尋找 Syslog.global.logDir 在選項清單中輸入。
  4. 請選擇 Syslog.global.logDir 按鍵並點擊 Edit 選項。

    How to change ESXi log file location in VMware Host Client

  5. 在相應欄位中輸入 ESXi 日誌位置的新值,然後按下 Save.

    Changing ESXi log file location in VMware Host Client

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

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

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

  1. 開啟 PowerCLI,並使用管理員憑證登入 ESXi 伺服器:

    Connect-VIServer -Server -User -Password

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

    Set-VMHostAdvancedConfiguration -VMHost -Name "Syslog.global.logDir" -Value "[] "

    替換 <資料儲存庫名稱> 請輸入您要儲存日誌的資料存放區名稱,以及 <路徑> 並指定新的日誌目錄路徑。

在不使用 vCenter 的情況下,變更多個 ESXi 主機的 ESXi 日誌位置

如果您擁有多個 ESXi 主機,但這些主機並非由 vCenter 管理,請執行以下操作:

  1. 準備一份 ESXi 主機清單。建立一個文字檔案,列出每台主機的 IP 位址或主機名稱,每行一筆(例如: hosts.txt).
  2. 以下是一個用於設定 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 日誌位置:

  1. 在 PowerCLI 中連線至 vCenter Server:

    Connect-VIServer -Server -User -Password

  2. 設定由 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 日誌寫入該伺服器。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

People also read