pyvmomi获取RAM / CPU使用率VSphere SDK 5.5?

时间:2015-02-13 15:23:03

标签: python django vmware esxi pyvmomi

我试图通过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),但我只能找到主机有多少cpus或多少内存。

有没有人通过Python做过这个?

2 个答案:

答案 0 :(得分:2)

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

与该示例一起,请检查this实施。

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

在我看来,这篇文章的第二个链接的实现是你在撰写本文时基于pyVmomi找到的最好的公共示例之一。仔细研究一下,因为它可能会回答你所有的疑惑。

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

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

答案 1 :(得分:0)

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