如何查询VMware快照创建人?vSphere 5.1快照操作日志溯源咨询
针对你的问题,我整理了几个可行的方案来找到快照创建者和早期操作记录——毕竟vSphere 5.1的Tasks & Events界面确实有日志保留期限或分页限制的问题,咱们换几个方向找找:
一、优先查看vCenter服务器的本地日志文件
vCenter的Tasks & Events界面展示的日志是经过筛选和有限保留的,但vCenter服务器本身的日志文件会保留更久(取决于你的日志轮转配置),里面有更详细的操作记录:
如果是Windows版vCenter:日志默认存放在
C:\ProgramData\VMware\VMware VirtualCenter\Logs目录下,重点关注这两个文件:vpxd.log:这是vCenter的核心服务日志,所有任务操作(包括快照创建/删除)都会在这里留下记录,每条操作都会标注执行用户的名称和ID。你可以用文本搜索工具(比如Notepad++的全局查找)搜索目标VM的名称,或者关键词CreateSnapshot,很快就能定位到对应的操作条目,找到创建者信息。vpxd-alert.log:如果有和快照相关的告警或重要操作提示,也可能在这里找到补充线索。
如果是vCenter Appliance(VCSA):日志默认路径是
/var/log/vmware/vpx/,同样重点看vpxd.log和vpxd-alert.log。可以用SSH登录到VCSA,用grep命令快速筛选:# 搜索所有快照创建操作 grep -i "CreateSnapshot" /var/log/vmware/vpx/vpxd.log # 缩小范围,只看目标VM的快照操作 grep -i "你的目标VM名称" /var/log/vmware/vpx/vpxd.log | grep -i "snapshot"
二、直接检查ESXi主机的日志
如果vCenter的日志没找到线索,快照操作最终是在对应的ESXi主机上执行的,主机本地日志也会记录这些操作:
ESXi主机的日志默认在 /var/log/ 目录下,重点查看:
hostd.log:这是ESXi主机的管理核心日志,会记录所有虚拟机的操作细节,包括快照创建。搜索关键词CreateSnapshotTask或者目标VM的名称,就能找到对应的操作记录,里面会标注发起操作的用户(可能是vCenter用户,也可能是直接在ESXi上操作的本地用户)。vpxa.log:如果主机是被vCenter管理的,这个日志是vCenter代理的同步日志,也可能包含额外的操作上下文信息。
你可以通过vSphere客户端直接导出ESXi的系统日志:右键点击目标主机 > 导出 > 导出系统日志,解压后查看对应的文件;也可以开启ESXi的SSH功能,直接登录主机用命令查看。
三、查询vCenter后端数据库(进阶方案)
如果上面的方法都没找到,还可以直接查询vCenter的后端数据库——Tasks & Events的原始数据其实存在数据库里,只是界面没展示出来而已(前提是你有数据库的访问权限)。
以SQL Server为例,你可以执行以下SQL查询,找到目标VM的所有快照相关任务:
SELECT t.NAME AS 任务名称, e.USER_NAME AS 操作用户, e.CREATE_TIME AS 操作时间, vm.NAME AS 虚拟机名称 FROM VPX_EVENT e JOIN VPX_TASK t ON e.TASK_ID = t.TASK_ID JOIN VPX_VM vm ON e.VM_ID = vm.VM_ID WHERE t.NAME LIKE '%Snapshot%' AND vm.NAME = '你的目标VM名称' ORDER BY e.CREATE_TIME DESC;
如果是Oracle数据库,语法类似,只需要调整对应的表名和查询语句即可。
四、额外提醒
最后多说一句:生产环境的快照长期存在会拖慢虚拟机性能,还会占用大量存储空间,找到快照后建议尽快确认是否需要保留,不需要的话及时删除(删除前最好做一次完整备份)。另外,建议你调整vCenter的任务和事件保留期限,避免下次再遇到类似的日志追溯问题。
内容的提问来源于stack exchange,提问作者timothepoznanski




