我正在尝试通过Python从一些ESXi服务器中获取一些信息。我发现pyvmomi(https://github.com/vmware/pyvmomi)是用于此目的的出色且易于理解的工具。但是,我似乎找不到找到有关CPU / RAM /存储使用情况的“实时”信息的方法。我正在查看VMware(http://pubs.vmware.com/vsphere-55/topic/com.vmware.sdk.doc/GUID-19793BCA-9EAB-42E2-8B9F-F9F2129E7741.html)的SDK,但是我只能找到主机有多少cpus或多少内存。
有没有人通过Python做到这一点?
最佳答案
检查pyvmomi-community-samples。那里有一个名为esxi_perf_sample.py的python脚本,其中包含有关如何在指定时间段内检索特定指标的示例。
与该示例一起,检查this实现。
这里的诀窍在于将counterId映射到目标机器上当前实现的可用度量的人类可读名称。在尝试检索其值之前,应首先检索可用的计数器。
我认为,本文的第二个链接的实现是您在撰写本文时基于pyVmomi找到的最佳公开示例之一。请仔细研究它,因为它可能会回答您所有的疑问。
还要注意,尽管Geeklee vminfo实现是面向来宾的,但所有度量标准仍对主机有效。执行查询时,您只需要调整脚本以指定主机实体而不是Guest(或同时允许两者)即可。
最后,在执行查询调用时,可以通过一个时间间隔来指定所检索指标的“实时”粒度。您应根据需要指定间隔,但请注意,对于最新的vSphere版本,样本之间的最小(默认)间隔为20秒,因此,您不应指定小于此值的时间间隔。
关于python - pyvmomi获取RAM/CPU使用率VSphere SDK 5.5?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28502855/