官方文档地址https://www.zabbix.com/documentation/4.0/zh/manual/vm_monitoring

概述

自Zabbix 2.2.0版本开始支持对VMware的监控。 Zabbix可以使用低级别自动发现VMware宿主机和虚拟机,并根据事先定义的主机原型,为这些虚拟机创建主机并添加监控。 Zabbix中默认提供了几个模板,可以直接用来监控VMware vCenter或ESX hypervisor。 监控虚拟机分两个步骤完成。首先,Zabbix是通过 vmware collector 进程来获取虚拟机数据。这些进程通过SOAP协议从VMware Web SDK服务获取必要的信息,对其进行预处理并存储到Zabbix server共享内存中。然后,Zabbix pollers通过Zabbix简单检查 VMware监控项 来检索这些数据。 自Zabbix 2.4.4版本开始,收集的数据分为两种类型:VMware配置数据和VMware性能数据。这两种类型都由 vmware collectors 进程独立收集。因此,建议启用比受监控的VMware服务更多的收集器。否则,VMware性能统计信息的检索可能会由于检索VMware配置数据而延迟(对于较大型的环境,会需要一段时间)。 目前基于VMware性能统计信息只有数据存储,网络接口和磁盘设备统计信息和自定义性能计数器项。

修改配置文件

启用VMware的collectors实例

vim /etc/zabbix/zabbix_server.conf
StartVMwareCollectors=5
VMwareCacheSize=160M
VMwareFrequency=60
VMwareTimeout=20

修改之后重启zabbix-server

systemctl restart zabbix-server

创建Vcenter主机

zabbix提供了监控vcenter集群的模板,Template VM VMware(用于监控vcenter集群的状态),Template VM VMware Guest(用于监控esxi下的虚拟机状态),Template VM VMware Hypervisor(用于监控esxi主机状态) 我们只要在vcenter主机上链接Template VM VMware模板就可以实现对整个vcenter集群的监控,Template VM VMware模板会自动关联其他两个模板,实现自动发现集群内的esxi主机和虚拟机

配置主机信息

主机信息为vcenter的web地址

链接Template VM VMware模板

定义宏信息

为安全起见,最好是新建一个vcenter的只读用户用于监控

修改监控模板

zabbix自带的三个esxi监控模板没有定义存储的触发器原型,因此三个模板都需要添加 触发器原型,这里以Template VM VMware模板为例创建一个磁盘的触发器原型
定义之后会在发现磁盘之后进行自动添加触发器

添加CPU和内存的使用率监控

添加CPU的使用率监控

添加监控项

100*last("vmware.hv.cpu.usage[{$URL},{HOST.HOST}]")/(last("vmware.hv.hw.cpu.freq[{$URL},{HOST.HOST}]")*last("vmware.hv.hw.cpu.num[{$URL},{HOST.HOST}]"))

添加触发器

添加内存的使用率监控

添加监控项

100*last("vmware.hv.memory.used[{$URL},{HOST.HOST}]")/last("vmware.hv.hw.memory[{$URL},{HOST.HOST}]")

添加触发器

配置好主机之后zabbix日志可能会报这个错,Vmware monitoring Performance counter is not available,这将导致发现的主机监控项大多数变成不支持状态,这是由于在vcenter中对数据库进行查询的数量做了限制,我们可以将该限制调大,或者禁用此限制。

关于这一部分的vmvare官方文档地址为 https://kb.vmware.com/s/article/2107096

发现效果如下


欢迎关注个人公号“运维开发故事”