VMware 服务器软件产品提供日志文件,记录每个软件组件的事件数据和时间戳。 VMware 日志可用于故障排除和诊断解决问题。 本博客文章涵盖了 ESXi 和 vCenter 日志,解释了如何在 VMware vSphere 中检查日志,如何查找所需信息并对其进行分析。
ESXi 日志
VMware ESXi 是广泛使用的 hypervisor,允许用户在物理服务器上创建和管理虚拟机。 为了确保 ESXi 服务器的正常运行、故障排除和监视,会生成各种日志。 这些日志捕获重要事件、错误和性能数据,帮助管理员和支持团队识别问题并维护虚拟基础设施的稳定性。 以下是一些重要的 VMware ESXi 日志的解释。
VMkernel 日志
/var/log/vmkernel.log
此日志记录 VMkernel 活动,包括设备驱动程序事件、存储、网络和其他与内核相关的活动。 它提供了关于底层系统操作的见解,对于诊断与硬件相关的问题至关重要。 vmkernel 日志位置位于 /var/log/ 目录。
/var/log/vmkwarning.log
此日志文件包含由 VMkernel 生成的警告消息,VMkernel 是 ESXi hypervisor 的核心。 它记录可能需要注意但不是关键错误的事件和条件。
/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 文件位置是数据存储上的一个虚拟机目录。
存储日志
/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服务器性能图表服务(也称为vCenter性能图表)相关联。它包含由性能图表服务收集的统计数据和与性能相关的信息。
性能图表服务为虚拟机和主机的性能指标提供图形表示。 stats.log记录可用于生成监视和分析虚拟基础架构组件性能图表和图形的数据。
注意:性能图表服务对于监视虚拟机和主机的实时性能至关重要,而stats.log在存储底层数据方面发挥着作用。
eam.log
位置:/var/log/vmware/eam/eam.log
eam.log文件属于vCenter服务器中的ESX代理管理器(EAM)服务。 EAM负责管理vSphere代理,包括vSphere安装包(VIB)和扩展代理。
eam.log记录与vSphere代理的生命周期管理相关的事件和活动。它存储有关代理部署、升级和验证的信息。如果您正在查找VMware Lifecycle Manager日志位置,请检查/var/log/vmware/eam/eam.log
注意:ESX代理管理器确保在ESXi主机上安装了正确版本的VIB,并正确注册了扩展代理。eam.log对于跟踪这些操作并检测与vSphere代理相关的任何问题至关重要。
存储日志的位置
让我们找出 VMware 日志存储在哪个分区以及哪些目录中。在默认的 VMware ESXi 安装中,日志存储在不同分区的几个目录中。例如,在 ESXi 主机上的 VMkernel 日志的典型位置是:
/scratch/log/
符号链接位于/var/log/,但日志文件存储在 ESXi 临时分区中(参见上面和下面的截图)。我们在解释如何在 USB 闪存驱动器上安装 ESXi时介绍了临时存储和临时分区。
例如,您可以使用符号链接(symbolic link)访问/var/log/hostd.log中的主机管理日志,但hostd.log文件位于/scratch分区的log目录中。
虚拟机日志通常位于 VM 数据存储中的 VM 目录中,并在 ESXi 服务器重新启动后不会被删除,例如:/vmfs/volumes/datastore_name/vm_name/vmware.log
当 VM 日志文件(vmware.log)满时,它会被重命名为vmware-1.log,vmware-2.log等。
您可以在 VMware vSphere 客户端中转到VM 设置 > VM 选项并展开高级选项,其中包括启用日志记录复选框来启用或禁用 VM 日志。
因此,/scratch分区用于在ESXi主机上存储日志和其他临时文件。在某些安装中,/scratch分区配置为内存文件系统(tmpfs)。如果需要在重新启动后保留日志,可以使用“esxcli system 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日志:
- 登录到您的网络浏览器中的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(故障排除选项 > 启用 SSH)或 VMware Host Client 以允许对 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 日志来识别硬盘驱动器或固态驱动器的问题,例如,如果 HDD 上有坏块。要识别 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 日志外还应使用什么
有关与 VMware 日志一起使用的建议,以便更好地进行详细诊断和故障排除,及时检测存储问题。
- 监视vCenter告警和事件。密切关注与存储相关的vCenter服务器告警和事件。由存储问题触发的告警可以提供有关潜在磁盘问题的见解。
- 使用VMware健康检查。VMware提供各种健康检查,可通过vSphere Client执行。这些检查可以识别与存储相关的问题并提供建议。
- 利用第三方监控工具。实施特殊的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日志进行网络故障排除的一些示例,以及提取相关信息的命令。
识别虚拟机网络连接问题
问题:虚拟机无法访问网络。
- 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地址。请验证虚拟机的网络是否正确配置。
解决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分布式交换机(VDS)问题
问题:在vSphere分布式交换机上的虚拟机连接问题。
- 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)分析日志文件是一种强大的方法,可以提取特定信息并深入了解问题或模式。下面您可以看到一些实际示例,说明如何在ESXi中使用正则表达式进行日志分析。
筛选日志以查找特定事件
假设您想要找到特定事件的所有出现,例如“磁盘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主机客户端
要生成支持包并导出VMware日志,请执行以下步骤:
- 在导航器窗格中单击监控。
- 选择日志选项卡。
- 单击生成支持包。
- 在您的网络浏览器中保存下载的包存档。
VMware vSphere客户端
要在vSphere客户端中导出VMware系统日志,请执行以下操作:
- 选择主机和集群视图,并选择您想要导出日志的ESXi主机(在左侧窗格,即导航窗格中)。
- 在打开的菜单中,右键单击ESXi主机并点击导出系统日志。
- 选择您想要导出的ESXi日志,然后点击导出日志。
要在vSphere客户端中将捆绑包上传到VMware支持,请执行以下操作:
- 点击左上角的菜单图标。
- 转到管理 > 支持 > 上传文件到服务请求,然后点击上传文件到服务请求按钮。
在Web浏览器中链接
使用ESXi主机的cgi脚本链接:
http://<ESXi_IP_地址>/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/