Zabbix里希望能够监控我们的vCenter 然后自动发现里面的宿主机和上面的虚拟机,因此搞了个这个,百度了很多文章,最后整理下,现在搞定了。
网上看到很多文章写的不是很好,挺乱的,写么写监控esxi,实际么监控vCenter所以写了这篇文章。
Zabbix 版本 3.2
vCenter 6.5 U1
Esxi 6.0 u3
zabbix 编译要支持–with-libxml2 和 –with-libcurl(前者用来解析调用SOAP接口返回的XML,后者用来调用vcenter的SOAP接口),
如果yum安装的默认支持。
[root@zabbix-server ~]# cat /usr/local/zabbix/etc/zabbix_server.conf
StartVMwareCollectors=5
VMwareFrequency=60
VMwareCacheSize=80M
StartVMwareCollectors=5 #Number of pre-forked vmware collector instances.只有大于0时才能是该功能生效,意为预先配置的vmware监控实例数量。 (特别注意根据官网需要填写的数量是实际宿主机的两倍,默认要大于2才生效。)
VMwareFrequency=60 #Delay in seconds between data gathering from a single VMware service.zabbix获取更新vmware集群结构的最小间隔时间,单位为分钟。
VMwareCacheSize=80M #Shared memory size for storing VMware data.内存中维护的vmware集群结构的大小,建议80M
完成后重启zabbix
我是Zabbix 3.2,默认已经带了模板,如果没带的话需要导入下。
监控VMware需要导入3个模板,在zabbix官网可以下载。传送门->Zabbix templates。分别按顺序导入,注意一定要按顺序Template Virt VMware Guest_3.0.0.xml->Template Virt VMware Hypervisor_3.0.0.xml->Template Virt VMware_3.0.0.xml。我在这边测试的时候就掉过坑,一开始没有按顺序导入,结果捣鼓了一天也没有监控成功。
添加vCenter主机,只需要填写Host name和选择group即可,注意端口写80
只需要连接Virt VMware一个模板即可
{$URL} – 输入vCenter SDK URL (https://vcenter ip/sdk)
{$USERNAME} – 登录vCenter使用的用户名,一般是administrator@vsphere.local,你也可以创建个只读账户
{$PASSWORD} – 登录vCenter使用的密码,密码有时候配置好后会报错说密码不对,应该是里面的一些符号问题,所以请使用个简单的密码,就字母和数字不要符号,否则会有问题,我遇到坑了。
等一会就可以发现vcenter 所有主机和上面的虚拟机,并且虚拟机的内存,cpu,硬盘这些都可以看到,宿主机的版本什么也能看到。