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实例
代码语言:shell复制vim /etc/zabbix/zabbix_server.conf
StartVMwareCollectors=5
VMwareCacheSize=160M
VMwareFrequency=60
VMwareTimeout=20
修改之后重启zabbix-server
代码语言:shell复制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的使用率监控
添加监控项
代码语言:shell复制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}]"))
添加触发器
添加内存的使用率监控
添加监控项
代码语言:shell复制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
发现效果如下
文章部分内容参考自鹏哥的公众号《开源搬运工宋师傅》