10 虚拟机监控
概述
Zabbix从version 2.2.0版本开始支持VMware环境监控.
Zabbix可通过低级发现规则自动发现VMware虚拟化平台和虚拟机,并基于预定义的主机原型create 主机进行监控.
Zabbix默认数据集提供多个开箱即用的模板,用于监控VMware vCenter或ESX虚拟化平台.
最低要求的VMware vCenter或vSphere version版本为5.1.
详情
虚拟机监控分为两个步骤完成。首先,vmware collector Zabbix进程会收集虚拟机数据。这些进程通过SOAP协议从VMware Web服务获取必要信息,进行预处理后存储到Zabbix server共享memory中。随后,轮询器会使用Zabbix简单检查VMware keys来检索这些数据。
从Zabbix version 2.4.4版本开始,采集的数据分为两种类型:VMware配置数据和VMware性能计数器数据。这两种数据都由vmware collectors独立采集。因此建议启用的采集器数量应多于被监控的VMware服务数量。否则,VMware性能计数器统计数据的获取可能会因VMware配置数据的采集(在大型部署中耗时较长)而延迟。
目前只有数据存储、网络接口和磁盘设备统计信息以及自定义性能计数器监控项是基于VMware性能计数器信息的。
配置
为使虚拟机监控正常工作,Zabbix需在编译时 4-配置源代码添加 --with-libxml2和--with-libcurl编译选项。
以下配置file选项可用于调整虚拟机 监控参数:
- StartVMwareCollectors - 预启动的vmware采集器实例数量。
该值取决于待监控的VMware服务数量。多数情况下应满足:
servicenum < StartVMwareCollectors < (servicenum * 2)
其中servicenum表示VMware服务数量。例如:\- 监控1个VMware服务时设为2\
- 监控3个VMware服务时设为5
注意该值通常不应小于2,也不应超过监控服务数量的2倍。同时需考虑VMware环境规模及VMwareFrequency、VMwarePerfFrequency配置参数(见下文)。
- VMwareCacheSize
- VMwareFrequency
- VMwarePerfFrequency
- VMwareTimeout
更多细节请参阅Zabbix server和 proxy的配置file页面。
要支持数据存储容量指标,Zabbix要求VMware配置中vpxd.stats.maxQueryMetrics参数值至少为64。另请参阅VMware知识库 article。
发现
Zabbix可以通过低级发现规则自动发现 VMware 虚拟机监控程序与虚拟机。

所有必填字段均以红色星号标记。
上述截图中的发现规则键值为 vmware.hv.discovery[{$VMWARE.URL}].
主机原型
主机原型可以通过低级发现规则创建。当虚拟机被发现时,这些原型将成为生成实际主机的基础。 在未被发现之前,原型不能拥有自己的监控项和触发器(来自链接模板的除外)。

为了使从原型创建的主机具有唯一的主机名称,主机名字段必须至少包含一个low-level discovery macro。
自Zabbix 5.2起,发现的主机可以配置自定义接口或继承发现规则所属一个主机的IP(默认)。要添加一个或多个自定义接口,需将接口选择器从继承切换到自定义模式,然后点击
并从出现的下拉菜单中选择所需的接口类型。所有支持的接口类型都可以为一个主机原型定义:Zabbix agent、SNMP、JMX、IPMI。接口字段支持低级发现宏和user macros。
如果指定了多个自定义接口,请使用默认列指定主接口。
注意事项:
- 如果选择自定义但未指定任何接口,主机将在没有接口的情况下创建。
- 如果为属于 template, discovered hosts will inherit the interface of a host to which the template is linked to.
的一个主机原型选择继承
如果主机接口包含错误数据,一个主机将不会被创建

LLD宏还可用于可见名称、主机组原型字段、标签值或主机原型用户宏的值。
可以为一个主机原型指定的其他选项包括:
- 链接到现有的主机组
- 模板链接
- 加密
如果勾选创建启用,主机将以启用状态添加。如果未勾选,主机将被添加但处于禁用状态。
如果勾选发现(默认),主机将被创建。如果未勾选,主机将不会被创建,除非在覆盖中覆盖此设置。此功能为创建发现规则提供了额外的灵活性。
发现的主机在主机列表中会以创建它们的发现规则名称作为前缀。发现的主机可以手动删除。发现的主机也会根据发现规则的保留丢失资源周期(天)值自动删除。大多数配置选项是只读的,除了启用/禁用主机和主机资产清单。
Zabbix不支持嵌套的主机原型,即在通过低级发现规则发现的主机上不支持主机原型。
开箱即用模板
Zabbix默认数据集提供了多个开箱即用的模板,用于监控VMware vCenter或直接监控ESX虚拟机管理程序。这些模板包含预配置的LLD规则以及一系列内置检查项,用于监控虚拟化环境。
VMware vCenter和ESX虚拟机管理程序监控模板:
- VMware - 使用UUID数据作为对应宏变量;
- VMware FQDN - 使用FQDN数据作为对应宏变量。
要使VMware FQDN模板正常工作,每台被监控虚拟机必须具有符合FQDN规则的唯一操作系统名称,且每台机器必须安装VMware Tools/Open Virtual Machine Tools。若满足这些条件,建议使用VMware FQDN模板。该模板的创建得益于Zabbix 5.2版本引入的create 主机与自定义接口功能。
传统的VMware模板仍然可用,当无法满足FQDN要求时可使用该模板。请注意,VMware模板存在已知的问题。发现的虚拟机主机将使用vCenter中保存的名称创建(例如VM1、VM2等)。若后续在这些主机上安装Zabbix agent active并启用自动注册,自动注册过程将读取主机启动时注册的名称(例如vm1.example.com、vm2.example.com等),由于未找到名称匹配项,create会新建主机。最终将导致每台机器存在两个名称不同的重复主机。
注意事项:
- VMware Hypervisor模板可手动关联至一个主机,也可用于自动发现;
- VMware Guest模板不应手动关联至一个主机,仅能用于自动发现。

Host 配置
要使用VMware简单检查主机必须定义以下用户宏:
- {$VMWARE.URL} - VMware服务(vCenter或ESX虚拟机管理程序)SDK URL (https://servername/sdk)
- {$VMWARE.USERNAME} - VMware服务用户名
- {$VMWARE.PASSWORD} - VMware服务{$VMWARE.USERNAME}用户密码
示例
以下示例演示如何在Zabbix上快速设置VMware监控:
- 确保Zabbix server已使用所需选项(--with-libxml2和--with-libcurl)编译: 服务器启动时日志file必须包含"VMware monitoring: YES"
- 在Zabbix server配置file中将StartVMwareCollectors选项设置为2或更大值
- create一个新的主机
- 设置VMware认证所需的主机宏:

- 将主机链接到VMware服务模板:

- 点击Add按钮保存主机
扩展日志记录
通过设置调试级别5可以记录VMware采集器收集的数据以进行详细调试。该级别可在
server和
proxy配置文件中设置,
或使用运行时控制选项
(-R log_level_increase="vmware collector,N",其中N为进程号)。
以下示例展示了在已设置调试级别4的情况下如何启动扩展日志记录:
# Increase log level of all vmware collectors:
zabbix_server -R log_level_increase="vmware collector"
# 提升第二个vmware采集器的日志级别:
zabbix_server -R log_level_increase="vmware collector,2"
若不需要VMware采集器数据的扩展日志记录,可使用-R log_level_decrease选项停止该功能。
故障排除
-
若指标不可用,请确认它们是否未被
made unavailable or turned off by default in recent VMware vSphere versions or if some limits are not placed on performance-metric database queries. See ZBX-12094 for additional details.
<!-- -->
- 若出现'config.vpxd.stats.maxQueryMetrics'无效或超过允许的最大字符数**错误,请向vCenter Server设置添加
config.vpxd.stats.maxQueryMetrics参数。该参数值应与VMware web.xml中的maxQuerysize值相同。详见VMware知识库article