4 VMware监控配置示例
概述
以下示例描述了如何设置Zabbix以监视VMware虚拟机。这涉及到:
- 创建一个代表您的VMware环境的主机;
- 创建一个低级别自动发现规则,用于发现VMware环境中的虚拟机;
- 创建一个主机原型,Zabbix将在此基础上为低级别自动发现规则发现的虚拟机生成真实主机。
先决条件
此示例不包括VMware的配置。假设用户已经完成了对VMware的配置。
在开始之前,设定Zabbix 服务器配置文档中的配置参数StartVMwareCollectors 为 2
或者更大的数值 (缺省默认数值为 0
).
创建一个主机
1. 首先前往 Data collection(数据采集) → [Hosts](主机)(/manual/web_interface/frontend_sections/data_collection/hosts).
2. Create (创建)创建一个主机:
- 在Host name (主机名称)字段,输入一个主机名称 (请参考 “VMware VMs”)。
- 在Host groups (主机组)字段,输入或者选择一个主机群组 (比如, “Virtual machines”)。
- 在Macros (宏)标签栏,设定如下的主机宏:
- {$VMWARE.URL} - VMware 服务(ESXi hypervisor) SDK URL (https://servername/sdk)
- {$VMWARE.USERNAME} - VMware 服务用户名
- {$VMWARE.PASSWORD} - VMware 服务{$VMWARE.USERNAME} 用户密码
3. 点击Add (添加)按钮来创建一个新的主机。这个主机将会代表用户的VMware环境。
创建低级别发现规则
1. 点击Discovery (发现)为目标主机创建低级别发现规则。
2. Create (创建)一个新的低级别发现规则:
- 在Name(名称)字段,输入一个低级别发现规则名称 (例如, “Discover VMware VMs”)。
- 在 Type(种类)字段,选择 “Simple check“(简单检查)。
- 在Key(键值)字段,为VMware虚拟机输入一个 field, enter the 内置监控项键值 :vmware.vm.discovery[{$VMWARE.URL}]
- 在User name (用户名称)和 Password(密码)字段,输入之前在主机层面设定的宏。
3. 点击Add(添加)按钮来创建低等级发现规则。该发现规则会探索用户VMware环境下的虚拟机。
创建一个主机原型
1. 在低级别发现规则列表中,为之前创建的低级别发现规则点击创建Host prototypes(主机原型)。
2. 点击Create (创建)一个主机原型。由于主机原型是通过低级别自动发现规则创建主机的蓝图,因此大多数字段将包含 low-level discovery macros(低级别自动发现宏)。 这样可以确保主机的创建具有基于先前创建的低级别自动发现规则的content retrieved(检索到的内容)的属性。
- 在Host name(主机名称)字段,输入宏 {#VM.UUID}。
- 在Visible name(可见名称)字段,输入宏 {#VM.NAME}。
- 在Templates(模板)字段,输入或者选择”VMware Guest”(VMware访客)模板。该模板包括VMware items (VMware监控项)和有关虚拟机的电源状态、CPU利用率、内存利用率、网络设备等其它监控项的发现规则。
- 在Host groups(主机组)字段,输入或者选择一个主机组(例如, “Discovered hosts”)。
- 在Interfaces(接口)字段,添加一个host interface(主机接口)。之后,输入一个宏{#VM.DNS} 在DNS name字段或者输入一个宏 {#VM.IP}在IP address 字段。 除此以外,如果用户VMware环境下的虚拟机存在多个接口,那么请进入 Advanced host interface configuration (高级主机接口配置)拦。为了实现VMware Guest 模板功能的正常运作,创建一个自动机主机接口是十分必要的。
- 在Macros(宏)配置栏,设定{$VMWARE.VM.UUID} 宏的值为{#VM.UUID}。为了实现VMware Guest 模板功能的正常运作使用该宏作为一个主机级别的用户宏(例如,vmware.vm.net.if.discovery[{$VMWARE.URL}, {$VMWARE.VM.UUID}]).
3. 点击Add(添加)按钮创建一个用户原型。此主机原型将用于为先前创建的低级别自动发现规则发现的虚拟机创建主机。
查看主机和指标
创建主机原型后,低级别自动发现规则将为发现的VMware虚拟机创建主机,Zabbix将开始监视这些主机。 请注意,主机的发现和创建也可以 executed manually(手动运行)。
查看以创建的主机,用户可以前往Data collection → Hosts (数据采集→主机)菜单选项。
要查看收集的指标,请导航到Monitoring → Hosts (监控→ 主机)然后单击一个主机的Latest data (最新数据)。
高级主机接口配置
vmware.vm.discovery[{$VMWARE.URL}]
监控项键值,在Create a low-level discovery rule (创建低级别发现规则)配置栏处配置,返回的网络接口位于 “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. 当creating a low-level discovery rule(创建一个低级别发现规则)时,另外配置一个low-level discovery macro(低级别发现宏)。在LLD macros配置选项中,创建一个具有JSONPath 值的自定义LLD宏。举例说明:
- {#MYLAB.NET.IF} -
$.net_if[?(@.ifbackingdevice=="VLAN(myLab)")].ifip[0].first()
2. 当creating a host prototype(创建一个主机原型)时, 添加一个自定义主机接口并输入LLD宏在 DNS name 或 IP address 字段。