介绍
VMware监控分两个步骤完成
①Zabbix 是通过 vmware collector 进程来监控虚拟机。这些进程通过 SOAP 协议从 VMware Web 服务获取必要的信息,对其进行预处理并存储到 Zabbix server 共享内存中。
②zabbix pollers 通过 zabbix 简单检查 VMware keys 来检索这些数据。
整体步骤
①.修改服务端的zabbix_server.conf文件打开对vmware监控的支持
②.在vcenter的机器上添加只读用户作为ZABBIX监控专用账户
③.ZABBIX Web 添加vcenter的监控模板和宏
注意:vcenter服务端不需要安装zabbix_agent客户端,如果ZABBIX Server是编译安装需要加上 –with-libxml2 和 –with-libcurl 编译选项。
配置文件说明
代码语言:javascript复制StartVMwareCollectors:vmware 收集器实例的数量。
此值取决于要监控的 VMware 服务的数量。
在大多数情况下,这应该是:servicenum < StartVMwareCollectors < (servicenum * 2)其中 servicenum 是 VMware 服务的数量。
例如:如果您有 1 个 VMware 服务要将 StartVMwareCollectors 设置为 2,那么如果您有 3 个 VMware 服务,请将其设置为 5。
请注意,在大多数情况下,此值不应小于 2,不应大于 VMware 数量的 2 倍服务。
VMwareCacheSize:用于存储VMware数据的共享内存大小。
VMwareFrequency:从单个VMware服务收集数据之间的延迟(秒)。
VMwarePerfFrequency:从单个VMware服务检索性能计数器统计信息之间的延迟(秒)。
VMwareTimeout:响应超时时间.
ZABBIX Monitor VMware vCenter
vCenter 添加zabbix监控账户
ssh登录vcenter服务器,添加一个普通用户,并将这个用户添加到vcenter的只读组中
# 添加zabbix作为只读用户
注意:需要勾选传播到子对象,否则账户将对EXSI主机没有查看权限,为了安全起见,在vCenter 创建只读账户用于ZABBIX监控即可。
测试vCenter 账号
可以访问需要调用的接口https://ip/mob 输入刚才的只读用户账号密码
ZABBIX web 添加监控vCenter
页面只需填写“主机名称”、“可见的名称”、“主机群组”、“agent IP地址”即可,“agent代理程序的接口”需要写 443。
注意:
①由于监控进程使用soap协议获取虚拟机信息,直接通过https://ip/sdk,返回400是正常现象
②zabbix 监控vCenter 6.5以上版本时需要在web client中主机系统高级设置里面打开
Config.HostAgent.plugins.solo.enableMob 右键把值改为true
设置宏
代码语言:javascript复制{$PASSWORD} => zabbix@zabbix
{$URL} => https://172.18.51.247/sdk
{$USERNAME} => zabbix
---------------------------------------------------------------------------------
{$URL} - VMware 服务 (vCenter or ESXI hypervisor) SDK URL (https://servername/sdk).
{$USERNAME} - VMware 服务用户名
{$PASSWORD} - VMware 服务{$ USERNAME}用户密码
配置监控模板
监控vCenter 主机模板页面只需添加“Template Virt VMware”即可。
“Template VM VMware“模板应用于 VMware vCenter 和 ESXI hypervisor 监控。
”Template VM VMware Guest“和”Template VM VMware Hypervisor“模板由自动发现使用,通常设置为自动链接到主机。
注意:如果不需要监控EXSI上的虚拟机需要在Template VM Vmware模板自动发现规则中把 Discover VMware VMs停用。
Discover VMware VMs链接的模板是Template VM VMware Guest模板。
自动发现vCenter上的集群、ESXI主机和监控项
添加自定义监控项
CPU item
键值:vmware.hv.cpu[usedpercent]
计算公式:
代码语言:javascript复制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}]"))
Memory item
键值:vmware.hv.memory[usedpercent]
计算公式:
代码语言:javascript复制100*last("vmware.hv.memory.used[{$URL},{HOST.HOST}]")/last("vmware.hv.hw.memory[{$URL},{HOST.HOST}]")
CPU和Memory 触发器
宏设置
CPU Triggers
Memory Triggers
Storage
存储触发器
ZABBIX Monitor VMware ESXI
监控EXSI主机使用Template VM VMware Hypervisor模板,需要预先查询ESXI主机的UUID。
ESXI UUID
6.0以前版本查询方式
代码语言:javascript复制https://<host>/mob/?moid=ha-host&doPath=hardware.systemInfo
6.0以后的版本禁用mob ui, 需要ssh系统查看
代码语言:javascript复制vim-cmd hostsvc/hostsummary | grep uuid
Macros
代码语言:javascript复制Needs 4 Macros Set:
{$URL} = https://ESXI_SERVER_IP/sdk/
{$UUID} = See Notes
{$USERNAME} = ESXi Login
{$PASSWORD} = ESxi Password
添加esxi主机
配置宏