如何在Zenoss API中根据主机名获取设备uid

时间:2014-11-25 00:02:13

标签: zenoss

我是Zenoss的新手。我想知道是否有任何方法可以根据设备名称获取UID。例如,在vCenter中我有一个名为“MyTestVM”的虚拟机,我可以在Zenoss Infrastructure部分看到它。我正在开发一个门户,以显示zenoss的CPU和内存监控图。为了做到这一点,我需要将UID传递给它的一个API,我不知道如何获得任何设备的UID(具体是VM)。

这里的任何帮助都会非常有用。

此致 基兰

PS:如果这个问题有任何混淆,请帮帮我。

1 个答案:

答案 0 :(得分:0)

根据您的需要,您有几个选择。

快速而丑陋的方式是从浏览器中提取UID或UUID。

  1. 导航至infrastructure / devices /...

  2. 下的设备详细信息页面
  3. UID应出现在您的地址栏中。 如果网址为“https://zenoss5.zenoss-host-name/zport/dmd/Devices/Server/Linux/devices/x.x.x.x/devicedetail#deviceDetailNav:device_overview” 那你的UID是“/zport/dmd/Devices/Server/Linux/devices/x.x.x.x”

  4. 您还可以通过检查页面源并搜索“uuid”来找到UUID

    有趣且更自动化的方法是使用zendmd进行查找。

    请参阅此处的文档:support.zenoss.com: zendmd intro

    1. 附加到您的zope容器,并su到zenoss用户。
    2. 运行 func setupSpinner(){ spinner = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 40, height:40)) spinner.color = UIColor(Colors.Accent) self.spinner.center = CGPoint(x:UIScreen.main.bounds.size.width / 2, y:UIScreen.main.bounds.size.height / 2) self.view.addSubview(spinner) spinner.hidesWhenStopped = true }
    3. 使用其名称查找设备:

      zendmd

    4. 从您的dmd设备获取所需的详细信息:

      • UUID:

      In [1]: find('MyTestVM') Out[1]: <Device at /zport/dmd/Devices/Server/Linux/devices/x.x.x.x> In [2]: mydevice = find('MyTestVM') Out[3]: '3c5a857a-7d9f-4df9-bff9-2fcb9a07acbc'

      • ID:

      In [3]: mydevice.getUUID() Out[3]: '3c5a857a-7d9f-4df9-bff9-2fcb9a07acbc'

    5. 最好的方法是使用JSON API。

      json api guidefull API documentation