使用Zabbix6.0监控ESXi7.0

Zabbix官方文档:
https://www.zabbix.com/documentation/current/zh/manual/vm_monitoring
https://www.zabbix.com/integrations/vmware

参考
https://developer.aliyun.com/article/918021

https://www.on0926.com/zabbix-%E7%9B%91%E6%8E%A7-esxi-%E4%B8%BB%E6%9C%BA/

之前做了Zabbix监控PVE,实现起来比较简单所以没有记录,这次对ESXi进行监控。

配置ESXi

在ESXi添加一个zabbix用户

  1. 添加用户
    进入esxi,导航器中 管理-安全和用户-用户
    添加一个用户zabbixuser

  2. 添加用户权限
    回到 导航器中 主机-操作-权限
    选择添加用户,选择zabbixuser,权限为只读
    选择完毕后点击右下角添加用户

获取ESXi的UUID

方法1

进入esxi,导航器中 管理-系统-高级设置
找到Config.HostAgent.plugins.solo.enableMob编辑选项将False改为True
修改底下会显示 调试用 Managed Object Browser 已启用
从web访问 https://esxi_ip/mob/?moid=ha-host&doPath=hardware.systemInfo ,查看UUID的值
保存UUID值后关闭Config.HostAgent.plugins.solo.enableMob

方法2

开启esxi的ssh,并ssh远程连接上
执行命令获取UUID

1
esxcfg-info -u |awk '{print tolower($0)}'

配置Zabbix

创建主机

在侧栏选择 配置-主机
创建主机

顶栏选择

  1. 主机配置
    主机名称 为上面查到的ESXi的UUID
    模板 VMware Hypervisor

群组 ESXiServer(我自己添加的)
Interfaces 类型客户端 IP正确即可

这里vCenter使用模板VMware更全面,ESXi使用模板VMware Hypervisor即可
模板VMware会自动将vCenter或者ESXi下的所有虚拟机接入zabbix,VMware Hypervisor只会显示基本的ESXi服务器的参数
2. 宏配置
选择继承以及主机宏,这些配置是继承选择的模板
{$VMWARE.PASSWORD} zabbixuserpassword
{$VMWARE.URL} 地址:https://esxi_ip/sdk
{$VMWARE.USERNAME} zabbixuser
{$VMWARE.HV.UUID} ESXi的UUID
输入密码时可以将值一栏右边的文本改为Secret text来隐藏密码,保存后无法显示密码,只能重新配置密码。
如果出现Unknown hypervisor uuid可以试试将模板 取消链接并清理,随后重新链接模板等待一段时间

开启Zabbix对ESXi的支持

默认是关闭的,在数据界面可以看到最新数据的信息栏会报错
网上对于非Docker部署的Zabbix开启VMware支持的文章很多,这里主要写Docker部署的Zabbix.
参考博客的使用Docker部署Zabbix
在拉取的zabbix-docker目录下编辑
./env_vars/.env_srv

1
2
3
4
5
6
7
8
9
#MYSQL用户密码以及ROOT用户密码设置   .MYSQL_PASSWORD       .MYSQL_ROOT_PASSWORD  .MYSQL_ROOT_USER      .MYSQL_USER
#添加对VMware的支持 .env_srv
#VMware支持选项
#STARTVMWARECOLLECTORS要大于你所接入的节点数量,但要小于你所接入节点数量的两倍(官方说明)
ZBX_STARTVMWARECOLLECTORS=0
ZBX_VMWAREFREQUENCY=60
ZBX_VMWAREPERFFREQUENCY=60
ZBX_VMWARECACHESIZE=8M
ZBX_VMWARETIMEOUT=10

完成后重新部署zabbix-server即可

再次在Zabbix中查看ESXi数据信息栏提示Couldn't connect to server,即代表对VMware的支持已经生效
如果上面Zabbix主机配置没有问题,耐心等待一段时间,ESXi下的信息就会出现在Zabbix中
最终效果是本文章封面

后记

https://www.bboy.app/2018/11/15/%E4%BD%BF%E7%94%A8zabbix%E7%9B%91%E6%8E%A7esxi/
这个博客底下有评论到
zabbix6。0不需要改‘Config.HostAgent.plugins.solo.enableMob‘,也不需要把uuid写在主机名称了。现在需要把uuid写在{$VMWARE.HV.UUID}里就好了。
也可以试试

添加完成后会发现有两个字段utilization和usage,我不太能分清这两者的区别,于是找了一下资料,发现定义各不相同
根据VMware官方的定义 https://kb.vmware.com/s/article/2055995

1
2
cpu.utilization - Provides statistics for physical CPUs.
cpu.usage - Provides statistics for logical CPUs. This is based on CPU Hyperthreading.