这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.

10. 虚拟机监控

概述

从 Zabbix 2.2.0版本开始支持对 VMware 的监控。

Zabbix可以根据事先定义的主机原型使用低级别自动发现发现Vmware宿主机和虚拟机,并为其创建主机并添加监控。

Zabbix中默认提供了几个开箱即用模板,可以直接用来监控VMware vCenter或ESX hypervisor。

支持VMware vCenter或vSphere 版本最低为 5.1。

详情

监控虚拟机分两个步骤完成。首先,Zabbix是通过 vmware收集器 进程来获取虚拟机数据。这些进程通过SOAP协议从VMwareWeb服务获取必要的信息,对其进行预处理并存储到Zabbix server共享内存中。然后,zabbix轮询器通过zabbix简单检查VMware密钥来检索这些数据。

从 Zabbix 2.4.4 开始,收集的数据分为两种类型:VMware配置数据和VMware性能计数器数据。这两种类型都由vmware收集器 进程独立收集。因此,建议启用比受监控的VMware服务更多的收集器。否则,VMware性能计数器统计信息的检索可能会由于检索VMware配置数据而延迟(对于较大型的环境,会需要一段时间)。

目前基于VMware性能计数器统计信息只有数据存储,网络接口和磁盘设备统计信息和自定义性能计数器项。

配置

要使虚拟机监控正常工作,应该使用 --with-libxml2 和 --with-libcurl 编译选项来编译Zabbix。

以下配置文件参数可用于调整虚拟机监控:

  • StartVMwareCollectors - 预先启动Vmware收集器实例的数量。
    此值取决于要监控的VMware服务的数量。在大多数情况下,这应该是:
    servicenum < StartVMwareCollectors < (servicenum * 2)
    其中 servicenum 是VMware服务的数量。例如:如果您有 1 个 VMware服务要将StartVMwareCollectors设置为 2,那么如果您有3个VMware服务,请将其设置为5。请注意,在大多数情况下,此值不应小于2,并且不应大于您监控的VMware服务数量的2倍。还要记住,此值还取决于VMware环境大小及VMwareFrequencyVMwarePerfFrequency配置参数(请参阅下文)。
  • VMwareCacheSize
  • VMwareFrequency
  • VMwarePerfFrequency
  • VMwareTimeout

有关更多详细信息,请参阅zabbix 服务器代理的配置文件页面。

<note important>为了支持数据存储容量指标,Zabbix要求VMware配置vpxd.stats.maxQueryMetrics参数至少为64。另请参见VMware知识库文章 :::

发现

Zabbix 可以使用低级别发现规则自动发现VMware宿主机和虚拟机。

所有必填项输入字段均标有红色星号。

以上截图中的发现规则key是 vmware.hv.discovery[{$URL}]

主机原型

可以使用低级别发现规则来创建主机原型。当发现虚拟机时,这些原型会成为真实主机。监控主机原型在被发现之前,除了来自链接模板的监控项和触发器,不能有自己的监控项和触发器。发现的主机将属于现有主机,并将根据获取的已有主机IP进行主机配置。

在主机原型配置中,低级别发现宏用于主机名,显示名称和主机组原型字段。也可以使用低级别发现宏将用户宏定义为值。关联现有主机组,模板链接和加密链接等可配置选项。

如果选中 创建启用,则主机将添加为启用状态。如果未选中,将添加主机,但处于禁用状态。

如果选中“发现”(默认),将创建主机。如果未选中,则除非在发现规则中覆盖此设置,否则不会创建主机。创建发现规则时,此功能提供了更多的灵活性。

在主机列表中,自动发现的主机将根据它们创建的发现规则名称命名前缀。可以手动删除发现的主机。发现的主机也将根据发现规则的 // 保留丢失资源期限(以天为单位)// 自动删除。除了启用/禁用主机和主机清单外,大多数配置选项都是只读的。发现的主机不能有自己的主机原型。

可以使用的模板

Zabbix 中默认提供了几个现成的模板,用于监控VMware vCenter或ESX hypervisor。

这些模板包含事先定义的低级别发现规则以及用于监视虚拟安装的内置检查。注意:

  • "模板VM VMware"模板应用于VMware vCenter和ESX hypervisor监控;
  • 发现使用"模版VM VMware Hypervisor" 和 "模版VM VMware Guest",通常不应手动将其链接到主机。

如果您的服务器从2.2之前的版本升级并且没有此类模板,您可以手动导入,从社区页面下载 官方模板。然而这些模板依赖于 VMware VirtualMachinePowerState 和 //VMware status // 映射,因此有必要首先创建这些值映射(使用 SQL 脚本,手动或从XML导入)。

主机配置

要使用VMware简单检查,主机必须定义以下用户宏:

  • {$URL} - VMware服务 (vCenter or ESX hypervisor) SDK URL (https://servername/sdk).
  • {$USERNAME} - VMware服务用户名
  • {$PASSWORD} - VMware服务{$USERNAME} 用户 密码

例子

以下示例演示如何在Zabbix上快速配置VMware监控:

  • 编译安装zabbix server时添加依赖项(--with-libxml2 和 --with-libcurl)
  • 将 Zabbix server配置文件中的 StartVMwareCollectors选项设置为1或更大
  • 创建一个新主机
  • 设置监控VMware服务所需的身份验证相关的主机宏:
    {{..:..:assets:zh:manual:vm_monitoring:vm_host_macros.png|}}
       * 将主机链接到VMware服务模板:
           {{..:..:assets:zh:manual:vm_monitoring:vm_host_templates.png|}}
       * 单击 //添加// 按钮保存主机

扩展日志

可以使用调试级别5记录由VMware收集器收集的数据,以进行详细调试。此级别可以在服务器代理配置文件中设置或使用运行时控制选项(-R log_level_increase="vmware collector,N",其中 N 是过程编号)设置此级别。以下示例说明如果将调试级别设置为4,如何启动扩展日志记录:

提高所有vmware收集器的日志级别:
       shell> zabbix_server -R log_level_increase="vmware collector"
       
       提高第二个vmware收集器的日志级别:
       shell> zabbix_server -R log_level_increase="vmware collector,2"

如果不需要对VMware收集器数据进行扩展日志,可以使用-R log_level_decrease选项进行停止。

故障排查

  • 如果指标不可用,请确保在最新的VMware vSphere版本中默认情况下它们是否不可用或未关闭,或者性能指标数据库查询未设置某些限制。有关其他详细信息,请参见ZBX-12094
  • 如果'config.vpxd.stats.maxQueryMetrics'无效或超过允许的最大字符数**错误,请在vCenter服务器设置中添加一个config.vpxd.stats.maxQueryMetrics参数。此参数的值应与VMware's web.xmlmaxQuerysize的值相同 。有关详细信息,请参见此VMware知识库文章