VMware 伺服器軟體產品提供日誌檔案,記錄每個軟體元件的事件數據,並標記時間戳記。VMware 日誌可用於故障排除以及診斷和解決問題。本篇部落格文章涵蓋 ESXi 和 vCenter 日誌,解釋如何在 VMware vSphere 中檢查日誌,如何找到所需資訊並分析它們。
ESXi 日誌
VMware ESXi 是廣泛使用的超級管理程式,允許使用者在物理伺服器上建立和管理虛擬機器。為了確保 ESXi 伺服器的正常運作、故障排除和監控,會生成各種日誌。這些日誌捕獲重要事件、錯誤和性能數據,幫助管理員和支援團隊識別問題並維護虛擬基礎設施的穩定性。以下是一些關鍵的 VMware ESXi 日誌的說明。
VMkernel 日誌
/var/log/vmkernel.log
此日誌記錄 VMkernel 活動,包括裝置驅動程式事件、存儲、網絡和其他與核心相關的活動。它提供對低階系統操作的洞察,對於診斷與硬體相關的問題至關重要。vmkernel 日誌位置位於 /var/log/ 目錄下。
/var/log/vmkwarning.log
此日誌檔案包含由 VMkernel 生成的警告訊息,該訊息是 ESXi 超級管理程式的核心。它記錄可能需要注意但不是關鍵錯誤的事件和狀況。
/var/log/vmksummary.log
vmksummary.log 是一個摘要日誌,提供了 ESXi 主機的運行狀態概覽,包括啟動和關機事件、系統資源使用情況和一些關鍵性能統計信息。
主機管理日誌
/var/log/hostd.log
此日誌包含與 ESXi 主機管理服務(hostd)相關的項目。它捕獲與虛擬機電源操作、任務和事件處理以及與 vCenter Server 的通信(如果適用)相關的事件。
虛擬機日誌
/vmfs/volumes/datastore_name/vm_name/vmware.log
每個虛擬機都維護一個日誌文件,記錄該虛擬機特定的事件,例如電源操作、虛擬硬件更改和來自客戶操作系統的應用程序事件。 vmware.log 文件位置在數據存儲中的 VM 目錄中。
存儲日誌
/var/log/vobd.log
此日誌專注於與存儲和 iSCSI 操作相關的問題。
/var/log/vmkernel.log
如前所述,VMkernel 日誌還捕獲與存儲相關的事件。
網絡日誌
/var/log/vobd.log
此日誌包括與網絡相關的事件,如 vMotion、網絡連通性和通信錯誤。
/var/log/vmkernel.log
VMkernel 日誌也包含與網絡相關的消息。
身份驗證和使用者日誌
/var/log/auth.log
此日誌記錄認證事件,包括使用者登入和登出。
ESXi shell 和 SSH 日誌
/var/log/shell.log
此日誌捕獲由使用者執行的 ESXi Shell(TSM)命令。
/var/log/ssh.log
如果 ESXi 主機啟用了 SSH,此日誌將記錄與 SSH 相關的事件。
系統訊息
/var/log/syslog.log
syslog.log 包含來自 VMkernel 和 ESXi 主機上運行的各種服務的系統訊息的全面日誌。它捕獲了各種信息,包括啟動訊息、硬體事件、網路活動等。
防火牆日誌
/var/log/firewall.log
此日誌跟踪與 ESXi 防火牆相關的事件,包括允許和拒絕的連接。
ESXi 上的 vCenter 伺服器日誌(如果已連接到 vCenter 伺服器)
/var/log/vpxa.log
此日誌文件特定於由 vCenter 伺服器管理的 ESXi 主機。 vpxa.log 與在 ESXi 主機上運行的 vCenter 代理(vpxa)相關。它記錄了 ESXi 主機與 vCenter 伺服器之間的互動,包括從 vCenter 發起的任務,如 VM 電源操作、遷移和配置更改,以及主機狀態更新、任務和事件執行,以及與 vCenter 伺服器的通訊。
ESXi 更新日誌
/var/log/esxupdate.log
esxupdate.log 包含與 ESXi 主機補丁和更新 相關的日誌。此日誌文件記錄有關在 ESXi 主機上安裝、升級和刪除軟件包(VIB)的信息。
USB 日誌
/var/log/usb.log
usb.log 文件記錄與連接到 ESXi 主機的 USB 設備 相關的事件。它跟踪 USB 設備的檢測、連接和斷開連接,以及與 USB 通行證或使用 USB 仲裁服務相關的任何問題。
VMware vCenter 日誌
VMware vCenter 是一個集中管理平台,允許管理員有效管理多個 VMware ESXi 主機和虛擬機器。為了維護 vCenter Server 和連接到它的 ESXi 主機的健康和性能,生成了幾個日誌,每個都有特定的目的。以下是一些重要的 VMware vCenter 日誌的解釋。
vpxd.log
位置:/var/log/vmware/vpxd/vpxd.log
此日誌檔案記錄與vCenter Server服務相關的事件,vpxd日誌位置是vCenter伺服器上的/var/log/vmware/vpxd/目錄。vpxd日誌包含有關vCenter服務啟動、vSphere客戶端連接事件、用戶身份驗證、授權以及通過vSphere客戶端或API執行的各種管理任務的信息。
/var/log/vmware/vpxd/vpxd-alert.log包含有關vpxd過程的非關鍵信息。
fdm.log
位置:/var/log/fdm.log
故障域管理器(FDM)日誌對於vSphere高可用性(HA)故障排除非常重要。它包含有關主機和VM故障、HA配置、心跳數據以及HA集群中主主機選舉的信息。
vmsyslogd.log
位置:/var/log/vmware/vmsyslogd.log
此日誌檔案與在vCenter Server Appliance上運行的syslog服務相關。它記錄從各種組件和服務轉發到vCenter Server的syslog的消息。
vmware-vpostgres.log
位置:/var/log/vmware/vpostgres/postgresql-xx.log
此日誌包含詳細的PostgreSQL數據庫相關消息,包括複製狀態、事務日誌和其他數據庫事件。
catalina.log
位置:/var/log/vmware/vpostgres/catalina.out
此日誌文件屬於VMware Postgres數據庫服務。它包含與數據庫操作相關的消息,包括啟動和關閉事件、查詢和錯誤。
sms.log
位置:/var/log/vmware/sms/sms.log
存儲監控服務(SMS)日誌記錄與存儲監控和管理任務相關的事件,包括數據存儲、存儲設備和存儲警報。
invsvc.log
位置:/var/log/vmware/invsvc/invsvc.log
庫存服務日誌包含有關vCenter Server庫存操作的信息,例如對象更新、數據收集和同步。
applmgmt.log
位置:/var/log/vmware/applmgmt/applmgmt.log
此日誌文件與設備管理服務相關,提供有關vCenter Server設備部署和配置的信息。
vmware-sts-idmd.log
位置:/var/log/vmware/sso/vmware-sts-idmd.log
此日誌記錄與VMware單點登錄(SSO)服務、身份管理和驗證過程相關的事件。
stats.log
位置:/var/log/vmware/perfcharts/stats.log
stats.log文件與vCenter Server性能圖服務(也稱為vCenter性能圖)相關聯。它包含由性能圖服務收集的統計數據和與性能相關的信息。
性能圖服務提供了虛擬機器和主機的性能指標的圖形表示。 stats.log記錄了可用於監控和分析虛擬基礎架構組件性能的性能圖和圖表數據。
注意:性能圖服務對於監控虛擬機器和主機的實時性能至關重要,而stats.log在存儲底層數據方面發揮著作用。
位置:/var/log/vmware/eam/eam.log
eam.log文件屬於vCenter Server中的ESX代理管理器(EAM)服務。 EAM負責管理vSphere代理,包括vSphere安裝捆綁包(VIB)和擴展代理。
eam.log記錄了與vSphere代理的生命周期管理相關的事件和活動。它存儲有關代理部署、升級和驗證的信息。如果您正在尋找VMware生命周期管理器日誌位置,請檢查/var/log/vmware/eam/eam.log
注意:ESX代理管理器確保在ESXi主機上安裝了正確版本的VIB,並且擴展代理已正確註冊。 eam.log在跟踪這些操作並檢測與vSphere代理相關的任何問題方面起著重要作用。
日誌存儲位置
讓我們找出 VMware 日誌存儲在哪個分區以及在哪些目錄中。在默認的 VMware ESXi 安裝中,日誌存儲在不同分區的幾個目錄中。例如,VMware 日誌的典型位置,例如在 ESXi 主機上的 VMkernel 日誌,是:
/scratch/log/
符號連結位於/var/log/但日誌文件存儲在 ESXi 临时分区(請參見上面和下面的屏幕截圖)。我們在解釋如何在 USB 閃存驅動器上安裝 ESXi時涵蓋了临时分区和临时存儲。
例如,您可以使用符號連結(symbolic link)訪問/var/log/hostd.log中的主機管理日誌,但hostd.log文件位於log目錄中的/scratch分區中。
虛擬機器日誌通常位於 VM 目錄中的 VM 數據存儲器上,在 ESXi 服務器重啟後不會刪除,例如:/vmfs/volumes/datastore_name/vm_name/vmware.log
當 VM 日誌文件(vmware.log)滿時,它會重命名為vmware-1.log,vmware-2.log等。
您可以通過進入 VMware vSphere Client 中的VM 設置 > VM 選項並展開高級選項,包括啟用記錄複選框來啟用或禁用 VM 日誌。
因此,/scratch分割區用於在ESXi主機上存儲日誌和其他臨時文件。在某些安裝中,/scratch分割區配置為內存文件系統(tmpfs)。如果您需要在重新啟動後保留日誌,可以使用“esxcli系統syslog”命令和下面解釋的其他命令配置日誌的持久存儲位置。
請注意,ESXi日誌的位置可能會根據ESXi版本和配置而有所不同。此外,如果系統管理員明確配置,日誌可能會存儲在持久存儲設備上。
vCenter日誌位置
大多數vCenter Server日誌位於/var/log/vmware/目錄中。VMware vCenter Server不像ESXi那樣將日誌存儲在臨時(非持久)分割區上。相反,vCenter Server日誌通常存儲在操作系統的本地磁盤或掛載的存儲卷上,這意味著它們在重新啟動後是持久的。VMware vCenter Server Appliance(VCSA)基於Photon Linux,就我們所知,VCSA是最新的vSphere版本中使用的vCenter部署方法。
Linux版(VCSA)安裝的vCenter日誌位置為:
/var/log/vmware/vpx/
vCenter 日誌的確切位置取決於安裝 vCenter Server 的作業系統。直到 VMware vSphere 6.7,已不再支援的基於 Windows 的 vCenter Server 使用以下預設位置存儲 VMware vCenter 日誌:
C:\ProgramData\VMware\vCenterServer\logs\
請注意,vCenter 日誌位置可能因 vCenter Server 版本和配置而有所不同。您可以隨時參考官方 VMware 文件或特定 vCenter Server 版本的文件以找到確切的日誌位置。
由於 vCenter Server 是一個中央管理平台,它依賴持久日誌來維護歷史信息,並促進隨時間的故障排除和性能分析。與 ESXi 不同,ESXi 使用內存文件系統來存儲臨時日誌(對於某些默認配置),vCenter Server 日誌設計為持久並存儲在永久存儲設備上。至於 ESXi 日誌的非持久存儲,您可以更改 ESXi 上的日誌存儲位置。
如何訪問 VMware 日誌
我們已經探討了 VMware 日誌是什麼以及它們存儲在哪裡。現在我們必須找出如何檢查 VMware ESXi 日誌以進行進一步分析。您可以以不同方式訪問 VMware ESXi 日誌。
VMware 主機客戶端
執行以下步驟在 VMware 主機客戶端中查看 ESXi 日誌:
- 在您的 Web 瀏覽器中登錄 VMware 主機客戶端。
- 點擊 主機> 監視 在 導航器 面板中並點擊 日誌 選項。
- 選擇其中一個 ESXi 日誌以查看已記錄的資訊。您可以使用 搜尋 欄位來搜尋所需的字串。
DCUI (ESXi)
您可以使用 ESXi 上的直接控制台用戶界面來查看日誌。您需要物理訪問一個 ESXi 主機,包括顯示器和鍵盤,或者您可以使用 KVM 切換器和類似的技術。
- 登錄到 ESXi 直接控制台用戶界面(DCUI)。
- 在 系統自定義 選單中選擇 查看系統日誌 項目。
- 按下 1 到 6 中的一個鍵來查看您的 ESXi 伺服器上相應的 VMware 日誌。介面的右側顯示了每個數字的說明。
- 在輸入所需的數字後,您會看到一個全屏頁面上顯示著日誌。您可以輸入 / 並輸入搜索字串,以僅顯示包含所需資訊的行。按 q 退出此模式並返回到先前的 DCUI 菜單。
網頁瀏覽器
使用鏈接在網絡瀏覽器中打開一個包含下載日誌文件鏈接的頁面。您必須使用具有管理權限的 ESXi 主機凭證登錄該頁面。
https://<ESXI_host_IP>/host
ESXi 命令行
ESXi 命令行與 DCUI 類似,可用於查看 ESXi 日誌,如果網絡連接不可用,且無法通過網絡遠程查看日誌,則可以使用此方法。
- 確保在 DCUI 中啟用了 ESXi Shell(故障排除選項 > 啟用 ESXi Shell)。
- 按 Alt+F1 打開 ESXi shell。
- 使用命令查看 ESXi 日誌。
SSH
遠程 SSH 訪問是查看和分析 VMware 日誌最方便且功能強大的方法之一。
- 在 DCUI(故障排除選項 > 啟用 SSH)或 VMware Host Client 中啟用 SSH,以允許對 ESXi 主機進行遠程 SSH 訪問。
- 使用 SSH 客戶端(例如,如果從 Windows 連接,使用 PuTTY)連接到 ESXi 主機。
- 使用命令查看 ESXi 日誌和進行 VMware 日誌分析。
使用示例進行 VMware 日誌分析
現在我們知道 VMware 日誌的名稱和位置,以及存取日誌的方法,在虛擬化環境中,這些日誌對於疑難排解各種問題至關重要。是時候探索一些實際的例子,了解如何使用 VMware 日誌進行疑難排解了。
識別 ESXi 主機連接問題
問題: ESXi 主機上的虛擬機器遇到間歇性的網絡連接問題。
應檢查的日誌:
- /var/log/vmkernel.log
- /var/log/vobd.log
- /var/log/hostd.log
疑難排解步驟。檢查 VMkernel 日誌以查找與網絡相關的消息,並尋找錯誤或丟失的封包。同時,查看 hostd 日誌以查找任何主機管理服務的問題。vobd.log 可以提供有關可能影響 VM 網絡的存儲相關問題的見解。
VM 快照創建失敗
問題: 嘗試創建虛擬機器的快照失敗。
應檢查的日誌:
- /vmfs/volumes/datastore_name/vm_name/vmware.log
- /var/log/vmkernel.log
疑難排解步驟。檢查特定虛擬機器的 vmware.log,尋找與快照相關的錯誤或警告消息。同時,檢查 VMkernel 日誌以尋找可能阻止快照操作的存儲相關問題。
VM 效能下降
問題: 虛擬機器遇到性能問題,例如高CPU或內存使用率。
要檢查的日誌:
- /vmfs/volumes/datastore_name/vm_name/vmware.log
- /var/log/vmkernel.log
疑難排解步驟: 分析受影響虛擬機器的vmware.log,查找任何應用程序特定的錯誤或資源利用率的突增。同時,檢查VMkernel日誌以查看性能相關的消息,並確保ESXi主機具有足夠的可用資源。
vCenter服務啟動失敗
問題: vCenter Server服務無法啟動。
要檢查的日誌:
- /var/log/vmware/vpxd/vpxd.log 在vCenter服務器上
- /var/log/vpxa.log 在ESXi主機上
疑難排解步驟: 審查vpxd.log以查找vCenter Server啟動期間的錯誤或異常。此外,檢查受管ESXi主機上的vpxa.log以確保vCenter和主機之間的正確通信。
VMware高可用性(HA)集群故障轉移問題
問題: 在ESXi主機故障後,HA集群中的其他主機上無法重新啟動虛擬機器。
要檢查的日誌: /var/log/fdm.log
疑難排解步驟。分析受影響主機上的 fdm.log,以識別 HA 叢集中的任何錯誤或問題。查找心跳訊息、主機選舉過程,以及虛擬機器故障轉移失敗的可能原因。
vMotion 失敗
問題:嘗試在主機之間遷移虛擬機器時,VMware vMotion 失敗。
檢查的日誌:
- /var/log/vmkernel.log
- /var/log/vobd.log
疑難排解步驟。檢查 vmkernel.log 以查找與 vMotion 相關的訊息和任何網路連通性問題。此外,檢查 vobd.log 以尋找可能影響 vMotion 的儲存相關問題。
VMware Tools 安裝問題
問題:虛擬機器上的 VMware Tools 安裝 失敗。
檢查的日誌:/vmfs/volumes/datastore_name/vm_name/vmware.log
疑難排解步驟。查看虛擬機器內的 vmware.log 以尋找 VMware Tools 相關的錯誤或安裝訊息。
在處理VMware日誌時,將事件在多個日誌中相關聯是至關重要的,以獲得對問題的全面理解。此外,日誌分析工具,如VMware Aria Operations for Logs(前身為vRealize Log Insight),可以幫助精簡日誌審查過程,並在複雜環境中實現更高效的VMware故障排除。
故障排除存儲問題
您可以使用VMware日誌來識別硬碟驅動器或固態驅動器的問題,例如,如果硬碟驅動器上存在壞塊。要識別VMware環境中硬碟驅動器(HDD)或固態驅動器(SSD)的問題,您可以使用各種VMware日誌來跟蹤和分析與存儲相關的事件和錯誤。
- 檢查VMkernel日誌(/var/log/vmkernel.log):
VMkernel日誌提供低級系統信息,包括與存儲相關的事件。查找指示磁盤I/O錯誤或與磁盤問題相關的SCSI感知碼的消息。
錯誤示例:“設備I/O錯誤”,“檢測到媒體錯誤”或“數據中的不可糾正錯誤“
- 檢查存儲特定日誌(/var/log/vobd.log):
該vobd.log包含與存儲相關的消息,包括存儲子系統遇到的錯誤。
錯誤示例:“存儲錯誤:設備 ‘naa.xxxxxxxxxxxxxx’… Sense:未恢復的讀取錯誤“
- 檢查虛擬機日誌(/vmfs/volumes/datastore_name/vm_name/vmware.log):
虛擬機特定日誌可以顯示特定虛擬機遇到的磁盤I/O錯誤。
錯誤示例:“一個或多個虛擬磁盤上發生了磁盤I/O錯誤“,“檢測到磁盤錯誤”或“錯誤堆棧:無法讀取分區表“
建議:除了VMware日誌外還應使用什麼
有關如何更好地進行診斷和故障排除以及及時檢測存儲問題的更詳細建議。
- 監控 vCenter 警報和事件。關注與存儲相關的 vCenter Server 警報和事件。由存儲問題觸發的警報可以提供潛在的磁盤問題見解。
- 使用 VMware 健康檢查。VMware 通過 vSphere 客戶端提供了各種健康檢查。這些檢查可以識別與存儲相關的問題並提供建議。
- 利用第三方監控工具。實施特殊IT 監控和日誌分析工具,以集中並分析來自多個主機和虛擬機的日誌數據。這些工具可以幫助識別整個虛擬基礎結構中與磁盤相關的問題。
- 在識別 HDD 上的壞塊時,特別要注意各種錯誤消息和模式,尤其是那些指示媒體或讀寫錯誤的消息。壞塊可能導致數據損壞或性能降低,及早檢測可以防止更嚴重的問題。如果失敗的磁盤設備上的數據丟失,從 VMware 備份恢復數據到健康的磁盤至關重要。
集群問題 使用 VMware ESXi 日誌和 vCenter 日誌可以在虛擬化環境中識別與集群相關的問題。集群問題可能表現為VM 性能 、HA 故障切換、vMotion 失敗或其他與集群相關的操作問題。
使用VMware ESXi日誌和vCenter日誌對於識別虛擬化環境中的集群相關問題非常有幫助。集群問題可能表現為虛擬機性能問題、HA故障轉移、vMotion失敗或其他集群相關操作問題。
- 檢查vCenter Server日誌:
- 訪問vCenter日誌,例如vpxd.log和vpxa.log,位於/var/log/vmware/vpxd/vpxd.log和/var/log/vpxa.log分別。
- 查找與集群操作、資源管理和vCenter與ESXi主機之間通信相關的錯誤或警告消息。
- 注意集群創建、配置更改以及集群服務問題期間的事件。
- 檢查 ESXi 主機日誌並存取 ESXi 主機日誌,包括 vmkernel.log、hostd.log 和 fdm.log:
- vmkernel.log:檢查以查看是否有任何與叢集相關的事件,例如 vMotion 嘗試、HA 心跳問題或資源共享期間的錯誤。
- hostd.log:尋找與叢集相關的訊息,這些訊息與主機管理服務處理的任務和事件有關。
- fdm.log:檢查以查看是否有 HA 相關的事件,包括主機故障、VM 重新啟動和主選舉事件。
- 檢查虛擬機器日誌:
- 存取 VM 日誌,例如 vmware.log,以識別叢集中個別 VM 的特定問題。
- VM 日誌可以提供有關 VM 效能、資源限制或 vMotion 操作期間失敗的見解。
- 監控叢集特定警報和事件:
- 使用 vCenter 建立與叢集效能和健康狀況相關的特定警報和事件。
- 為資源使用過度、叢集分割或虛擬機器故障等問題配置警報。
- 檢查 vCenter 的事件標籤,以查看與叢集相關的事件,例如虛擬機器遷移、叢集重新配置或高可用性事件。
通過結合來自 ESXi 日誌、vCenter 日誌、效能指標和叢集特定事件的資訊,您可以獲得對叢集健康狀況的全面了解,並識別影響虛擬機器效能、高可用性和整體叢集穩定性的問題。定期日誌分析和主動監控有助於預防叢集問題或在問題發生時迅速解決。
網絡故障排除
在VMware vSphere中進行網絡故障排除涉及識別和解決影響虛擬機和ESXi主機之間的通信的網絡相關問題。VMware ESXi和vCenter日誌在查明此類問題時可能非常有用。以下是使用ESXi和vCenter日誌進行網絡故障排除的一些示例,以及提取相關信息的命令。
識別VM網絡連接問題
問題:虛擬機無法訪問網絡。
- A command to check VMkernel logs (on an ESXi host):
cat /var/log/vmkernel.log | grep -E 'Failed to send packet|dropped|no network'
此命令過濾VMkernel日誌以查找與數據包失敗、丟棄的數據包或網絡不可用相關的消息。
- A command to check VM network configurations (on an ESXi host):
esxcfg-vmknic -l
此命令列出在ESXi主機上配置的VMkernel網絡接口和IP地址。請確認VM的網絡是否正確配置。
解決vMotion問題
問題:兩個ESXi主機之間的vMotion失敗。
- A command to check VMkernel logs (on both source and destination ESXi hosts):
cat /var/log/vmkernel.log | grep -E 'Migration to host|vMotion'
此命令有助於在源和目標ESXi主機上找到與vMotion相關的消息。
- A command to check vCenter events (on vCenter Server):
vim-cmd vmsvc/get.eventlog <vmid> | grep 'Migrate'
將 <vmid> 替換為受影響虛擬機的虛擬機 ID (VMID)。此命令檢索該虛擬機的事件日誌並搜索與 vMotion 相關的事件。
識別網絡性能瓶頸
問題: 虛擬機遭遇網絡性能下降。
- A command to check ESXTOP statistics (on an ESXi host):
esxtop
在 esxtop 中,按 n 切換到網絡視圖。監控網絡吞吐量(MBTx/rx)、網絡數據包/秒和網絡丟包/秒等指標,以識別潛在瓶頸。這些命令用於顯示來自 VMware 日誌文件以外的數據,並顯示 VMware 故障排除的實時更新信息。您還可以使用 esxtop 命令查看 ESXi 的運行時間。
解決 vSphere Distributed Switch (VDS) 問題
問題: 與 vSphere Distributed Switch 上的虛擬機連接問題。
- A command to check VDS health (on vCenter Server):
net-dvs -l
此命令列出所有 分布式虛擬交換機 (VDS) 及其狀態。
- A command to check VDS port status (on vCenter Server):
net-dvs -p <VDS Name>
將 <VDS Name> 替換為 VDS 的名稱。此命令顯示指定分布式虛擬交換機上所有端口的狀態。
請記住,網絡故障排除經常需要分析來自多個來源的日誌和性能數據,包括VMkernel日誌、vCenter日誌、性能指標和網絡配置。上面提供的示例作為收集與網絡問題相關信息的起點,您可能需要根據在vSphere環境中遇到的具體問題調整命令。
VMware日誌分析的正則表達式
如上所述,通過SSH訪問ESXi shell並使用命令行是一種強大的方法來查看VMware日誌和進行VMware日誌分析。您可以使用原生命令行工具作為VMware ESXi日誌分析工具。這些命令行工具對Linux用戶來說很熟悉:
- cat是一個命令行工具,它將一個或多個文本文件的內容連接起來並在終端上顯示。它常用於一次性查看文件的全部內容。然而,對於大型文件,使用cat可能會導致大量的輸出迅速滾動出屏幕,使其對於閱讀這樣的文件來說不太實用。
- less是一個命令行分頁器實用程序,允許您查看和滾動文本文件的內容。它一次顯示一屏文本,並提供導航選項以在文件中向前和向後移動。與cat不同,後者將整個文件內容傾倒到終端,less對於更有效地閱讀大型文件很有用。
- grep 代表「全域規則運算式列印」。它是一個強大的命令列工具,用於在一個或多個文件中搜尋文字模式(規則運算式)。grep 可以過濾並顯示包含指定模式的行。它通常用於文字搜尋、日誌分析和從文件中提取特定信息。
- tail 是一個命令列實用程式,顯示文字文件的最後幾行。預設情況下,tail 顯示文件的最後十行。它在即時監控日誌文件方面特別有用,因為它可以顯示添加到日誌的新條目。tail 命令經常與 -f 選項一起使用,以持續監控文件並查看即時更新。
- head 是一個命令列實用程式,顯示文字文件的前 N 行。預設情況下,head 工具顯示文件的前十行。它有助於快速預覽文件的開頭或提取初始信息。與 tail 類似,您可以使用 -n 選項指定要顯示的行數。
您可以將這些命令列工具與彼此和規則運算式一起使用,以實現 VMware 日誌分析的最高效率。在 ESXi 命令列中使用規則運算式(regex)分析日誌文件可以是一種強大的方式,用於提取特定信息並了解問題或模式。下面您可以看到一些使用規則運算式進行日誌分析的實際實用示例。
過濾日誌以查找特定事件
假設您想要找到特定事件的所有出現,例如“磁碟 I/O 錯誤”,在vmkernel.log文件中。
cat /var/log/vmkernel.log | grep -E '磁碟 I/O 錯誤'
此命令將顯示vmkernel.log中包含“磁碟 I/O 錯誤”短語的所有行。
從日誌中提取IP地址
要從hostd.log文件的日誌中提取IP地址,您可以使用匹配IPv4地址的正則表達式模式。
cat /var/log/hostd.log | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}'
此命令將顯示在hostd.log中找到的所有IPv4地址。
使用量詞查找模式
假設您想要找到vmware.log文件中包含任何連續數字的所有行。
cat /vmfs/volumes/datastore_name/vm_name/vmware.log | grep -E '[0-9]+'
此命令將顯示在vmware.log中包含一個或多個數字的所有行。
搜索多個模式
要在vpxd.log文件中找到包含“錯誤”或“警告”的行,您可以在正則表達式模式中使用OR運算符|。
cat /var/log/vmware/vpxd/vpxd.log | grep -E '錯誤|警告'
此命令將顯示在vpxd.log中包含“錯誤”或“警告”的所有行。
使用萬用字元匹配
假設您想要在vobd.log文件中找到所有包含單詞“failed”的行,不論其大小寫。
cat /var/log/vobd.log | grep -i 'failed'
此命令將顯示所有包含“failed”、“FAILED”、“Failed”等的行,在vobd.log中。
使用捕獲組
要從sms.log文件的行中提取日期和時間信息,您可以使用正則表達式模式中的捕獲組。
cat /var/log/vmware/sms/sms.log | grep -Eo '([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}:[0-9]{2})'
此命令將顯示sms.log中的所有日期和時間出現。
注意:您可以根據您的特定用例更改到所需日誌的路徑。
這些示例展示了如何在ESXi命令行界面中結合使用正則表達式和grep命令來進行日誌分析。正則表達式提供了強大的模式匹配能力,使您能夠提取特定信息、過濾日誌並有效地找到模式。請記住,實際的正則表達式模式可能會根據日誌文件的內容和您想要提取或搜索的信息而有所不同。您可以使用這些示例並調整命令以滿足您對VMware日誌分析的特定需求。
如何導出VMware日誌並下載支持包
可能會發生VMware日誌分析無法幫助您解決發生在ESXi主機或vCenter上的問題。在這種情況下,您可以導出日誌或下載支持包,並將此信息發送給VMware支持。如果您擁有VMware vSphere的許可版本,VMware支持的專家可以幫助您解決VMware環境的問題。
VMware Host Client
要生成支持包並導出VMware日誌,請執行以下步驟:
- 在導航器窗格中點擊監控。
- 選擇日誌選項卡。
- 點擊生成支持包。
- 在您的網絡瀏覽器中保存下載的捆綁包檔案。
VMware vSphere Client
要在vSphere Client中導出VMware系統日誌,請執行以下操作:
- 選擇主機和集群視圖,並選擇您想要導出日誌的ESXi主機(在左側窗格,即導航窗格中)。
- 在開啟的選單中,右鍵點擊ESXi主機並點擊匯出系統日誌。
- 選擇您想要匯出的ESXi日誌,然後點擊匯出日誌。
若要在vSphere Client中將套件上傳至VMware支援,請執行以下操作:
- 點擊左上角的選單圖示。
- 前往管理 > 支援 > 上傳檔案至服務請求,然後點擊上傳檔案至服務請求按鈕。
在網頁瀏覽器中使用連結
使用ESXi主機上的cgi腳本連結:
http://<ESXi_IP_address>/cgi-bin/vm-support.cgi
下載並保存已匯出的ESXi日誌套件(.tgz檔案)。
在ESXi shell(命令列)中生成套件
您可以在ESXi shell中使用以下命令生成包含ESXi日誌的支援套件:
/usr/bin/vm-support
結論
當處理 VMware vSphere,包括 ESXi 和 vCenter 的問題時,分析 VMware 日誌可以幫助管理員識別問題的根本原因並採取適當的糾正措施。通過分析這些日誌,管理員可以識別並解決性能瓶頸、連接問題、配置錯誤和潛在的安全問題等問題。定期審查日誌對於積極管理和維護 VMware vCenter 和虛擬化環境的穩定性和可靠性至關重要。
定期監控 VMware 基礎設施和虛擬機備份可以及時預防問題並避免數據損失。
Source:
https://www.nakivo.com/blog/vmware-logs-analysis-for-troubleshooting/