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
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的使用率监控
添加监控项
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
发现效果如下
文章部分内容参考自鹏哥的公众号《开源搬运工宋师傅》