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环境规模及VMwareFrequencyVMwarePerfFrequency配置参数(见下文)。
  • VMwareCacheSize
  • VMwareFrequency
  • VMwarePerfFrequency
  • VMwareTimeout

更多细节请参阅Zabbix serverproxy的配置file页面。

要支持数据存储容量指标,Zabbix要求VMware配置中vpxd.stats.maxQueryMetrics参数值至少为64。另请参阅VMware知识库 article

发现

Zabbix可以通过低级发现规则自动发现 VMware 虚拟机监控程序与虚拟机。

所有必填字段均以红色星号标记。

上述截图中的发现规则键值为 vmware.hv.discovery[{$VMWARE.URL}].

主机原型

主机原型可以通过低级发现规则创建。当虚拟机被发现时,这些原型将成为生成实际主机的基础。 在未被发现之前,原型不能拥有自己的监控项和触发器(来自链接模板的除外)。

为了使从原型创建的主机具有唯一的主机名称,主机名字段必须至少包含一个low-level discovery macro

自Zabbix 5.2起,发现的主机可以配置自定义接口或继承发现规则所属一个主机的IP(默认)。要添加一个或多个自定义接口,需将接口选择器从继承切换到自定义模式,然后点击add_link.png并从出现的下拉菜单中选择所需的接口类型。所有支持的接口类型都可以为一个主机原型定义: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采集器收集的数据以进行详细调试。该级别可在 serverproxy配置文件中设置, 或使用运行时控制选项 (-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