8 虚拟机监控

概述

Zabbix 可以使用低级别发现规则自动发现 VMware 虚拟机监控程序和虚拟机, 并基于预定义的主机原型创建用于监控它们的主机。

Zabbix 还包含用于监控 VMware vCenter 或 ESXi 虚拟机监控程序的开箱即用模板

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

数据采集

虚拟机的监控包含两个步骤:

  1. Zabbix vmware collector(vmware 采集器)进程完成对虚拟机的数据采集 - 这些进程通过SOAP协议收集包括必要的VMware web服务信息,对这些信息进行预处理并且存储于Zabbix Server的共享内存。

  2. Zabbix poller (轮询)进程通过VMware monitoring item keys完成对数据的检索。

Zabbix将采集的数据分为两种,分别是VMware 配置数据和VMware性能计算数据。这两种类型的数据都由vmware collector独自完成采集。

下列所统计的参数都是可查看的VMware 性能计算信息:

  • Datastore(数据存储)
  • Disk device(磁盘设备)
  • CPU
  • Power(电源)
  • Network interface(网络接口)
  • Custom performance counter items(自定义性能计算参数)

用户若对完整的VMware 性能计算参数有查阅需求,请查看VMware monitoring item keys

请注意,Vmware事项的检索频率依赖于vmware.eventlog的轮询间隔,且该间隔不能小于5秒钟。

配置

如果 Zabbix 服务器是从 sources 编译的,则必须使用 --with-libcurl --with-libxml2 配置选项进行编译,才能启用虚拟机监控。 Zabbix 软件包在编译时已默认启用这些选项。

可通过修改以下 Zabbix 服务器配置文件参数来进行虚拟机监控:

建议启用的收集器数量多于受监控的 VMware 服务数量; 否则,获取 VMware 性能计数器统计信息可能会因获取 VMware 配置数据而延迟(对于大型安装,这一过程需要一些时间)。

通常,StartVMwareCollectors 的值不应低于 2,也不应超过受监控 VMware 服务数量的两倍:服务数量 < StartVMwareCollectors <(服务数量 * 2)。 例如,监控一个 VMware 服务时,将 StartVMwareCollectors 设置为 2;监控三个服务时,将 StartVMwareCollectors 设置为 5

请注意,所需的收集器数量还取决于 VMware 环境的范围,以及 VMwareFrequencyVMwarePerfFrequency 配置参数。

要支持数据存储容量指标,请确保 VMware 的 vpxd.stats.maxQueryMetrics 键值至少设置为 64。 有关更多信息,请参阅 VMware Knowledge Base article

自动发现规则

Zabbix可以使用low-level discovery rules(低级别发现规则,例如vmware.hv.discovery[{$VMWARE.URL}])来实现 VMware hypervisors(宿主机)和虚拟机的自动发现。

除此之外,Zabbix可以使用host prototypes(主机原型)来实现对发现的实体进行自动生成监控主机的功能。 更多信息,请参考Host prototypes

Configuration examples

For a basic example of how to set up Zabbix for monitoring VMware using the VMware FQDN template, see Monitor VMware with Zabbix.

For a more detailed example of how to create a host, a low-level discovery rule, and a host prototype for monitoring VMware, see Setup example.

扩展日志记录

vmware collector 进程收集的数据可以使用调试级别 5 进行详细调试日志记录。 调试级别可以在 服务器proxy 配置文件中进行配置, 也可以使用运行时控制选项 -R log_level_increase="vmware collector,N",其中 "N" 是进程编号。

例如,要将所有 vmware collector 进程的调试级别从 4 提高到 5,请运行以下命令:

zabbix_server -R log_level_increase="vmware collector"

要将第二个 vmware collector 进程的调试级别从 4 提高到 5,请运行以下命令:

zabbix_server -R log_level_increase="vmware collector,2"

当不再需要对 VMware collector 数据进行扩展日志记录时,建议通过运行 -R log_level_decrease 命令将调试级别降低到默认值(3)。

故障排查

  • 如果某些指标不可用,请确认这些指标在较新的 VMware vSphere 版本中没有默认变为不可用或被关闭,或者性能指标数据库查询没有受到某些限制。 更多信息,请参见 ZBX-12094
  • 如果出现 config.vpxd.stats.maxQueryMetrics 无效或超过允许的最大字符数错误,请在 vCenter Server 设置中添加 config.vpxd.stats.maxQueryMetrics 参数。 该参数的值应与 VMware 的 web.xml 文件中的 maxQuerysize 值相同。 更多信息,请参见 VMware Knowledge Base 文章
  • 如果您怀疑 Zabbix 安装占用了过多内存,请参见 使用 tcmalloc 分析过度的内存使用情况