[comment]: # translation:outdated

[comment]: # ({7ddf901c-7bc79a95})
# 4 VMware监控配置示例

[comment]: # ({/7ddf901c-7bc79a95})

[comment]: # ({3c9549aa-4948cb9c})
#### 概述

以下示例描述了如何设置Zabbix以监视VMware虚拟机。这涉及到：

- 创建一个代表您的VMware环境的主机；
- 创建一个低级别自动发现规则，用于发现VMware环境中的虚拟机；
- 创建一个主机原型，Zabbix将在此基础上为低级别自动发现规则发现的虚拟机生成真实主机。

[comment]: # ({/3c9549aa-4948cb9c})

[comment]: # ({8d40aabd-5d265fdc})
#### 先决条件

::: noteclassic
此示例不包括VMware的配置。假设用户已经完成了对VMware的配置。
:::

在开始之前，设定Zabbix 服务器配置文档中的配置参数[`StartVMwareCollectors`](/manual/appendix/config/zabbix_server#startvmwarecollectors) 为 `2` [或者更大的数值](/manual/vm_monitoring#configuration) (缺省默认数值为 `0`).

[comment]: # ({/8d40aabd-5d265fdc})

[comment]: # ({ae84527f-05232a19})
#### 创建一个主机

1\. 首先前往 *Data collection*（数据采集） → [*Hosts*]（主机）(/manual/web_interface/frontend_sections/data_collection/hosts).

2\. [Create](/manual/config/hosts/host) （创建）创建一个主机：

- 在*Host name* （主机名称）字段，输入一个主机名称  (请参考 "VMware VMs")。
- 在*Host groups* （主机组）字段，输入或者选择一个主机群组 (比如， "Virtual machines")。

![](../../../assets/en/manual/vm_monitoring/vmware_host.png){width="600"}

- 在*Macros* （宏）标签栏，设定如下的主机宏：
    - {$VMWARE.URL} - VMware 服务(ESXi hypervisor) SDK URL (https://servername/sdk)
    - {$VMWARE.USERNAME} - VMware 服务用户名
    - {$VMWARE.PASSWORD} - VMware 服务{$VMWARE.USERNAME} 用户密码

![](../../../assets/en/manual/vm_monitoring/vmware_host_macros.png){width="600"}

3\. 点击*Add* （添加）按钮来创建一个新的主机。这个主机将会代表用户的VMware环境。

[comment]: # ({/ae84527f-05232a19})

[comment]: # ({7fa8a958-967b85cf})
#### 创建低级别发现规则

1\. 点击*Discovery* （发现）为目标主机创建低级别发现规则。

2\. [Create](/manual/discovery/low_level_discovery#configuring-low-level-discovery) （创建）一个新的低级别发现规则：

- 在*Name*（名称）字段，输入一个低级别发现规则名称 (例如， "Discover VMware VMs")。
- 在 *Type*（种类）字段，选择 "[Simple check](/manual/config/items/itemtypes/simple_checks)"（简单检查）。
- 在*Key*（键值）字段，为VMware虚拟机输入一个 field, enter the 内置监控项键值 ：[`vmware.vm.discovery[{$VMWARE.URL}]`](/manual/vm_monitoring/vmware_keys#vmware.vm.discovery)
- 在*User name* （用户名称）和 *Password*（密码）字段，输入之前在主机层面设定的宏。

![](../../../assets/en/manual/vm_monitoring/vmware_host_discovery.png){width="600"}

3\. 点击*Add*（添加）按钮来创建低等级发现规则。该发现规则会探索用户VMware环境下的虚拟机。

[comment]: # ({/7fa8a958-967b85cf})

[comment]: # ({3c0bd2af-4202131d})
#### 创建一个主机原型

1\. 在低级别发现规则列表中，为之前创建的低级别发现规则点击创建*Host prototypes*（主机原型）。

2\. 点击[Create](/manual/discovery/low_level_discovery/host_prototypes#configuration) （创建）一个主机原型。由于主机原型是通过低级别自动发现规则创建主机的蓝图，因此大多数字段将包含 [low-level discovery macros](/manual/config/macros/lld_macros)（低级别自动发现宏）。
这样可以确保主机的创建具有基于先前创建的低级别自动发现规则的[content retrieved](/manual/vm_monitoring/discovery_fields)（检索到的内容）的属性。

- 在*Host name*（主机名称）字段，输入宏 {#VM.UUID}。
- 在*Visible name*（可见名称）字段，输入宏 {#VM.NAME}。
- 在*Templates*（模板）字段，输入或者选择"VMware Guest"（VMware访客）模板。该模板包括[VMware items](/manual/vm_monitoring/vmware_keys) （VMware监控项）和有关虚拟机的电源状态、CPU利用率、内存利用率、网络设备等其它监控项的发现规则。
- 在*Host groups*（主机组）字段，输入或者选择一个主机组(例如， "Discovered hosts")。
- 在*Interfaces*（接口）字段，添加一个[host interface](/manual/discovery/low_level_discovery/host_prototypes#host-interfaces)（主机接口）。之后，输入一个宏{#VM.DNS} 在*DNS name*字段或者输入一个宏 {#VM.IP}在*IP address* 字段。
除此以外，如果用户VMware环境下的虚拟机存在多个接口，那么请进入 [*Advanced host interface configuration*](#advanced-host-interface-configuration) （高级主机接口配置）拦。为了实现*VMware Guest* 模板功能的正常运作，创建一个自动机主机接口是十分必要的。

![](../../../assets/en/manual/vm_monitoring/vmware_host_prototype.png){width="600"}

- 在*Macros*（宏）配置栏，设定{$VMWARE.VM.UUID} 宏的值为{#VM.UUID}。为了实现*VMware Guest* 模板功能的正常运作使用该宏作为一个主机级别的用户宏(例如，*vmware.vm.net.if.discovery\[{$VMWARE.URL}, {$VMWARE.VM.UUID}\]*).

![](../../../assets/en/manual/vm_monitoring/vmware_host_prototype_macros.png){width="600"}

3\. 点击*Add*（添加）按钮创建一个用户原型。此主机原型将用于为先前创建的低级别自动发现规则发现的虚拟机创建主机。

[comment]: # ({/3c0bd2af-4202131d})

[comment]: # ({3e8fd594-92a7e887})

#### 查看主机和指标

创建主机原型后，低级别自动发现规则将为发现的VMware虚拟机创建主机，Zabbix将开始监视这些主机。
请注意，主机的发现和创建也可以 [executed manually](/manual/config/items/check_now)（手动运行）。

查看以创建的主机，用户可以前往[*Data collection* → *Hosts*](/manual/web_interface/frontend_sections/data_collection/hosts) （数据采集→主机）菜单选项。

![](../../../assets/en/manual/vm_monitoring/vmware_discovered_hosts.png){width="600"}

要查看收集的指标，请导航到[*Monitoring* → *Hosts*](/manual/web_interface/frontend_sections/monitoring/hosts) （监控→ 主机）然后单击一个主机的*Latest data* （最新数据）。

![](../../../assets/en/manual/vm_monitoring/vmware_monitored_hosts.png){width="600"}

[comment]: # ({/3e8fd594-92a7e887})

[comment]: # ({2e5060fa-2c1d07a4})
#### 高级主机接口配置

`vmware.vm.discovery[{$VMWARE.URL}]`监控项键值，在[*Create a low-level discovery rule*](#create-a-low-level-discovery-rule) （创建低级别发现规则）配置栏处配置，返回的网络接口位于 ["net_if" field](/manual/vm_monitoring/discovery_fields)：

```json
"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](#create-a-low-level-discovery-rule)（创建一个低级别发现规则）时，另外配置一个[low-level discovery macro](/manual/config/macros/lld_macros)（低级别发现宏）。在*LLD macros*配置选项中，创建一个具有[JSONPath](/manual/config/items/preprocessing/jsonpath_functionality) 值的自定义LLD宏。举例说明：

- {#MYLAB.NET.IF} - `$.net_if[?(@.ifbackingdevice=="VLAN(myLab)")].ifip[0].first()`

![](../../../assets/en/manual/vm_monitoring/vmware_lld_macro.png){width="600"}

2\. 当[creating a host prototype](#create-a-host-prototype)（创建一个主机原型）时, 添加一个自定义主机接口并输入LLD宏在 *DNS name* 或 *IP address* 字段。

![](../../../assets/en/manual/vm_monitoring/vmware_lld_macro_host_prototype.png){width="600"}

[comment]: # ({/2e5060fa-2c1d07a4})
