4 VMware 监控配置示例
概述
以下示例描述了如何设置 Zabbix 以监控 VMware 虚拟机。这包括:
- 创建代表您的 VMware 环境的 一个主机;
- 创建一个低级别自动发现规则,用于发现您的 VMware 环境中的虚拟机;
- 创建 一个主机 原型,Zabbix 将根据该原型 generate 实际的 主机,用于低级别自动发现规则所发现的虚拟机。
先决条件
本示例不涵盖VMware的配置。假设VMware已经配置完成。
在继续之前,请在Zabbix server配置file中将StartVMwareCollectors参数设置为2 配置(默认值为0)。
创建 一个主机
- 在 主机名 字段中,输入 一个主机 名称(例如,“VMware VMs”)。
- 在 主机 群组 字段中,键入或选择 一个主机 群组(例如,“Virtual machines”)。

- 在 宏 选项卡中,设置以下 主机宏:
- {$VMWARE.URL} - VMware 服务(ESXi 虚拟机管理程序)SDK URL(https://servername/sdk)
- {$VMWARE.USERNAME} - VMware 服务用户名
- {$VMWARE.PASSWORD} - VMware 服务 {$VMWARE.USERNAME} 用户密码

- 点击 添加 按钮以 create 主机。此 主机 将代表您的 VMware 环境。
创建低级别自动发现规则
-
点击已创建的 主机 的 Discovery,进入该 主机 的低级别自动发现规则列表。
-
配置低级发现 一个低级别自动发现规则:
- 在 Name 字段中,输入低级别自动发现规则的名称(例如,“Discover VMware VMs”)。
- 在 Type 字段中,选择 "Simple check"。
- 在 Key 字段中,输入用于发现 VMware 虚拟机的内置 监控项 键:
vmware.vm.discovery[{$VMWARE.URL}] - 在 User name 和 Password 字段中,输入先前在 主机 上配置的相应宏。

- 点击 Add 按钮以 create 低级别自动发现规则。 此发现规则将发现 VMware 环境中的虚拟机。
创建 一个主机 原型
-
在低级别自动发现规则列表中,点击之前创建的低级别自动发现规则的 主机 原型。
-
配置 一个主机 原型。 由于 主机 原型是通过低级别自动发现规则创建 主机 的蓝图,因此大多数字段将包含 low-level discovery macros。 这确保了由先前创建的低级别自动发现规则根据content retrieved将创建具有相应属性的主机。
- 在 主机名 字段中,输入宏 {#VM.UUID}。
- 在 可见名称 字段中,输入宏 {#VM.NAME}。
- 在 模板 字段中,输入或选择“VMware Guest”模板。 此模板包含VMware items以及用于监控虚拟机电源状态、CPU使用情况、memory使用情况、网络设备等的发现规则。
- 在 主机 群组 字段中,输入或选择 一个主机 群组(例如,“已发现 主机”)。
- 在 接口 字段中,添加一个自定义的 主机-接口。 然后,在DNS名称字段中输入宏 {#VM.DNS},或者在IP地址字段中输入宏 {#VM.IP}。 或者,如果您的VMware环境虚拟机具有多个接口,请转至 高级 主机 接口配置 部分。 为确保 VMware Guest 模板的正常运行,必须配置自定义的 主机 接口。

- 在 宏 选项卡中,设置 {$VMWARE.VM.UUID} 宏的值为 {#VM.UUID}。 这对于使用此宏作为一个主机级别用户宏的VMware Guest模板的正确运行是必要的,在监控项参数中使用 (for example, vmware.vm.net.if.discovery[{$VMWARE.URL}, {$VMWARE.VM.UUID}]).

- 点击 添加 按钮以create 主机原型。 此 主机 原型将用于对之前创建的低级别自动发现规则所发现的虚拟机进行 create 主机。
查看 主机 和指标
在创建了 主机 原型后,低级别自动发现规则将 create 已发现的 VMware 虚拟机的 主机,并且 Zabbix 将开始监控这些虚拟机。 请注意,如有必要,主机的发现和创建也可以被executed manually。
要查看已创建的主机,请导航至Data collection → Hosts菜单部分。

要查看已收集的指标,请导航到 Monitoring → Hosts 菜单部分,并点击其中一个 主机 的 最新数据。

高级 主机 接口配置
在 创建低级别自动发现规则 部分中配置的 vmware.vm.discovery[{$VMWARE.URL}] 监控项 键,将在 "net_if" field 中返回网络接口数据:
"net_if": [
{
"ifname": "5000",
"ifdesc": "Network adapter 1",
"ifmac": "00:11:22:33:44:55",
"ifconnected": true,
"iftype": "VirtualVmxnet3",
"ifbackingdevice": "VLAN(myLab)",
"ifdvswitch_uuid": "",
"ifdvswitch_portgroup": "",
"ifdvswitch_port": "",
"ifip": [
"127.0.0.1",
"::1"
]
},
{
"ifname": "5001",
"ifdesc": "Network adapter 2",
"ifmac": "00:11:22:33:44:55",
"ifconnected": false,
"iftype": "VirtualVmxnet3",
"ifbackingdevice": "VLAN(myLab2)",
"ifdvswitch_uuid": "",
"ifdvswitch_portgroup": "",
"ifdvswitch_port": "",
"ifip": []
}
]
可以使用此数据来配置自定义的 主机 接口。
1. 在 创建低级别自动发现规则 时,还需配置一个 low-level discovery macro。
在 LLD宏 选项卡中,create 一个具有 JSONPath 值的自定义LLD宏。例如:
- {#MYLAB.NET.IF} -
$.net_if[?(@.ifbackingdevice=="VLAN(myLab)")].ifip[0].first()

2. 在 创建 一个主机 原型 时,添加一个自定义的 主机 接口,并在 DNS名称 或 IP地址 字段中输入LLD宏。
