家里有一台服务器,因为就一台esxi,也不想搞什么vcenter,集群之类的,没必要,就想用zabbix给服务器做监控,监控服务器的cpu,内存之类的,以及服务器上运行的虚拟机的监控,最后是各种应用上的监控,比如nginx之类的。最后所有的数据使用grafana去展示。
从 Zabbix 2.2.0版本开始支持对 VMware 的监控。Zabbix 可以使用低级别自动发现(low-level discovery ) VMware hypervisors(宿主机) 和 虚拟机,并根据事先定义的主机原型,为这些虚拟机创建Host并添加监控。Zabbix 中默认提供了几个模板,可以直接用来监控 VMware vCenter 或 ESX hypervisor。 监控虚拟机分两个步骤完成。首先,Zabbix 是通过 vmware collector 进程来获取虚拟机数据。这些进程通过 SOAP 协议从 VMware Web SDK服务获取必要的信息,对其进行预处理并存储到 Zabbix server 共享内存中。然后,zabbix pollers 通过 zabbix 简单检查 VMware keys 来检索这些数据。
首先打开zabbix的监控vmware的功能,默认是关闭的 要使得虚拟机监控正常工作 修改zabbix配置文件
vi /home/zabbix/etc/zabbix_server.conf
#修改306行,找到StartVMwareCollectors,把前面的注释去掉,数值推荐修改为5,意思是收集实例的数量。
StartVMwareCollectors=5
#VMwareCacheSize=80M,332行,VMwareCacheSize - 用于存储VMware 数据的缓存容量,默认为8M,取值范围:256K-2G。我这里修改为80M
VMwareCacheSize=80M
#还有一些常用的参数
VMwareFrequency - 连接到VMware服务收集一个新数据的频率,默认为60秒,取值范围:10-86400。
VMwarePerfFrequency - 连接到VMware服务收集性能数据的频率,默认为60秒,取值范围10-86400。
VMwareTimeout - VMware collector 等待VMware 服务响应的时间,默认为10秒,取值范围:1-300。
完成配置文件以后重启一下zabbix-server
ps -ef |grep zabbix_server
#找到PID
kill 2381
#然后重启一下
/home/zabbix/sbin/zabbix_server
#查看日志,tailf跟踪日志,日志文件每个人都不一样,默认是在/tmp下
tailf /home/zabbix/tmp/zabbix_server
如果看到VMware monitoring: YES
这个就表示成功了
在exsi中需要打开Managed object Browser(MOB)服务,不然无法发现esxi的uuid导致监控失败 在web client中主机系统高级设置里面打开 Config.HostAgent.plugins.solo.enableMob 右键把值改为true 然后浏览器打开 https:///mob/?moid=ha-host&doPath=hardware.systemInfo,输入root账户密码,即可看到uuid
然后进入zabbix web页面 zabbix4.0上自带对vmare的监控模板,可以用于监控vmware vcenter和esxi hypervisor. 这些模板包含事先定义的 LLD 规则以及用于监视虚拟安装的内置检查。 请注意,“Template Virt VMware“监控模板应用于 VMware vCenter 和 ESX hypervisor(宿主机)监控。 ”Template Virt VMware Hypervisor“和”Template Virt VMware Guest“模板由前者自动发现关联宿主机和虚拟机,通常不应该手动链接到单个主机。 我们是要监控esxi主机和上面运行的虚拟机,所以我这里三个都选择了 点击配置-->主机-->创建主机 填写主机名称和群组 主机名称用esxi的ip就好 然后群组自定义
就像我这样,然后点击模板,
添加这三个 然后点击宏 添加
{$PASSWORD}
{$URL}
{$USERNAME}
{$UUID}
值分别对应了你esxi web页的登录用户名,登陆密码,url地址,还有之前查看的uuid, url要填https:///sdk
点击保存,然后重新进入配置页面, 点击上方的自动发现规则,在模板里面把键值一栏里面的所有HOST.HOST改成{$uuid} 点击更新,等一会就会发现主机了