3

我正在尝试通过 Python 从一些 ESXi 服务器获取一些信息。我发现 pyvmomi( https://github.com/vmware/pyvmomi ) 是一个很棒且易于理解的工具。但是,我似乎找不到获取有关 CPU/RAM/存储使用情况的“实时”信息的方法。我正在浏览 VMware 的 SDK(http://pubs.vmware.com/vsphere-55/topic/com.vmware.sdk.doc/GUID-19793BCA-9EAB-42E2-8B9F-F9F2129E7741.html),但我可以只查找主机有多少 cpu 或多少内存。

有没有人通过 Python 做到这一点?

4

2 回答 2

3

检查pyvmomi-community-samples。里面有一个名为 esxi_perf_sample.py 的 python 脚本,其中有一个关于如何在指定时间段内检索特定指标的示例。

除了那个例子,检查这个实现。

这里的技巧在于 counterId 映射到目标机器上当前实现的可用指标的人类可读名称。在尝试检索它们的值之前,您应该首先检索可用的计数器。

在我看来,本文第二个链接的实现是在撰写本文时基于 pyVmomi 的最佳公共示例之一。仔细研究它,因为它可能会自己回答你所有的疑问。

另请注意,尽管 Geeklee vminfo 实现是面向客户的,但所有指标对主机仍然有效。您只需要在执行查询时调整脚本以指定 Host 实体而不是 Guest(或允许两者)。

最后,检索到的指标的“实时”粒度可以通过执行查询调用时的时间间隔来指定。您应根据需要指定时间间隔,但请注意,对于最新的 vSphere 版本,样本之间的最小(默认)间隔为 20 秒,因此您不应指定小于此值的时间间隔。

于 2015-02-16T14:44:08.583 回答
2

我添加了脚本来提取具有多线程的 esxhosts 的 cpu 使用情况。你可以在我的 github 上找到它 https://github.com/dograga/ESXPerfData

于 2016-09-19T15:48:30.643 回答