[comment]: # translation:outdated

[comment]: # ({3ca85094-3ca85094})
# 10 虚拟机监控

[comment]: # ({/3ca85094-3ca85094})

[comment]: # ({9629b83b-621e23e6})
#### 概述

Zabbix 可以使用 [low-level discovery](/manual/discovery/low_level_discovery) 规则来自动发现 VMware 虚拟机管理程序和虚拟机，  
并使用 create 主机 来基于预定义的 [host prototypes](/manual/discovery/low_level_discovery/host_prototypes) 对其进行监控。

Zabbix 还包含 [ready-to-use templates](/manual/config/templates_out_of_the_box/vmware)，用于监控 VMware vCenter 或 ESXi 虚拟机管理程序。

所需的最低 VMware vCenter 或 vSphere version 版本为 5.1。

[comment]: # ({/9629b83b-621e23e6})

[comment]: # ({7c4732bd-4c2e8939})
#### 数据收集

虚拟机监控包括两个步骤：

1. Zabbix *vmware collector* 进程收集虚拟机数据 - 这些进程通过 SOAP 协议从 VMware Web 服务中获取必要的信息，进行预处理，并将其存储在 Zabbix server 共享内存中。

2. Zabbix *poller* 进程使用 Zabbix 简单检查 [VMware monitoring item keys](/manual/vm_monitoring/vmware_keys) 获取数据。

Zabbix 将收集的数据分为 VMware 配置数据和 VMware 性能计数器数据。
这两类数据均由 *vmware collector* 进程独立收集。

根据 VMware 性能计数器信息，可以获取以下统计信息：

- 数据存储
- 磁盘设备
- CPU
- 电源
- 网络接口
- 自定义性能计数器 监控项

有关从 VMware 性能计数器获取数据的 监控项 完整列表，请参见 [脚注](/manual/vm_monitoring/vmware_keys#脚注)。

请注意，VMware 事件检索的频率取决于 [vmware.eventlog](/manual/vm_monitoring/vmware_keys#vmware.eventlog) 的轮询间隔，但不能小于 5 秒。

[comment]: # ({/7c4732bd-4c2e8939})

[comment]: # ({ef4a06c9-68c3f7d5})
#### 配置

如果Zabbix server是从[sources](/manual/installation/install#1-从源代码升级)编译的，则必须使用`--with-libcurl --with-libxml2`配置选项进行编译以启用虚拟机监控。
Zabbix软件包已默认启用这些选项

以下 Zabbix server 配置 file 参数可针对虚拟机监控进行修改:

- [`StartVMwareCollectors`](/manual/appendix/config/zabbix_server#startvmwarecollectors)

::: noteclassic
建议启用的采集器数量应多于受监控的VMware服务数量.
否则，VMware性能计数器统计数据的获取可能会因VMware配置数据的检索而延迟（对于大型安装环境，配置数据检索需要较长时间）。
<br><br>
通常，`StartVMwareCollectors`的值不应低于`2`，且不应超过受监控VMware服务数量的两倍：服务数量 < `StartVMwareCollectors` < (服务数量 \* 2).
例如，当监控一个VMware服务时，将`StartVMwareCollectors`设置为`2`；当监控三个服务时，将`StartVMwareCollectors`设置为`5`。
<br><br>
请注意，所需的采集器数量还取决于VMware环境的范围，以及`VMwareFrequency`和`VMwarePerfFrequency`配置参数。

:::

- [`VMwareCacheSize`](/manual/appendix/config/zabbix_server#vmwarecachesize)
- [`VMwareFrequency`](/manual/appendix/config/zabbix_server#vmwarefrequency)
- [`VMwarePerfFrequency`](/manual/appendix/config/zabbix_server#vmwareperffrequency)
- [`VMwareTimeout`](/manual/appendix/config/zabbix_server#vmwaretimeout)

::: noteimportant
为支持数据存储容量指标，请确保VMware `vpxd.stats.maxQueryMetrics` 键的值至少设置为 `64`。
更多信息，请参阅[*VMware Knowledge Base* article](https://kb.vmware.com/s/article/2107096)。

:::

[comment]: # ({/ef4a06c9-68c3f7d5})

[comment]: # ({dc05cb06-e5966479})
##### 发现

Zabbix 可以使用低级别自动发现规则（例如，*vmware.hv.discovery\[{$VMWARE.URL}\]*）来自动发现 VMware 超级管理程序和虚拟机。  
此外，Zabbix 可以使用 主机 原型来为已发现的实体自动 generate 实际的 主机。  
更多信息，请参见 [*Host prototypes*](/manual/discovery/low_level_discovery/host_prototypes)。

[comment]: # ({/dc05cb06-e5966479})

[comment]: # ({b1610a0a-38145b5c})
##### 配置示例

关于如何使用 *VMware FQDN* 模板配置 Zabbix 以监控 VMware 的基本示例，请参见 [*Monitor VMware with Zabbix*](/manual/guides/monitor_vmware)。

关于如何使用 create 一个主机、低级别自动发现规则以及 一个主机 原型来监控 VMware 的更详细示例，请参见 [*Setup example*](/manual/vm_monitoring/example)。

[comment]: # ({/b1610a0a-38145b5c})

[comment]: # ({6f6ab067-44948bb1})
#### 扩展日志记录

通过 *vmware collector* 进程收集的数据可以使用调试级别 5 进行详细调试日志记录。
调试级别可以在[debuglevel](/manual/appendix/config/zabbix_server#debuglevel)和[debuglevel](/manual/appendix/config/zabbix_proxy#debuglevel)配置文件中进行配置
或使用运行时控制选项 `-R log_level_increase="vmware collector,N"`，其中“N”是进程编号。

例如，要将所有 *vmware collector* 进程的调试级别从 4 提高到 5，请run 使用以下命令：

    zabbix_server -R log_level_increase="vmware collector"

要将第二个 *vmware collector* 进程的调试级别从 4 提升到 5，请执行以下命令：run

    zabbix_server -R log_level_increase="VMware 采集器,2"

当不再需要扩展记录VMware收集器数据时，建议通过运行 `-R log_level_decrease` 命令将调试级别降低至默认值（3）。

[comment]: # ({/6f6ab067-44948bb1})

[comment]: # ({cc21c6f6-f6f9d3ef})
#### 故障排除

- 如果某些指标不可用，请确保它们没有在最新的 VMware vSphere 版本中被默认禁用或不可用，或者性能指标数据库上是否设置了某些限制 queries。
  更多信息，请参阅 [ZBX-12094](https://support.zabbix.com/browse/ZBX-12094)。
- 如果出现 `config.vpxd.stats.maxQueryMetrics` 无效或超出允许的最大字符数错误，请向 vCenter Server 设置中添加一个 `config.vpxd.stats.maxQueryMetrics` 参数。
  此参数的值应与 VMware 的 *web.xml* 文件中 `maxQuerysize` 的值相同。
  更多信息，请参阅 [*VMware Knowledge Base* article](https://kb.vmware.com/s/article/2107096)。
- 如果怀疑您的 Zabbix 安装使用了过多内存，请参阅 [Profiling excessive memory usage with tcmalloc](/manual/installation/known_issues#profiling-excessive-memory-usage-with-tcmalloc)。

[comment]: # ({/cc21c6f6-f6f9d3ef})
