zabbix4.0监控vsphere6.5

简介

家里有一台服务器,因为就一台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这个就表示成功了

修改vsphere配置

在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

2019-02-27 14-37-13屏幕截图.png

添加监控模板

然后进入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就好
然后群组自定义
2019-02-27 14-38-39屏幕截图.png

就像我这样,然后点击模板,
2019-02-27 14-39-32屏幕截图.png
添加这三个
然后点击宏
添加

{$PASSWORD}
{$URL}
{$USERNAME}
{$UUID}

值分别对应了你esxi web页的登录用户名,登陆密码,url地址,还有之前查看的uuid,
url要填https:///sdk

点击保存,然后重新进入配置页面,
点击上方的自动发现规则,在模板里面把键值一栏里面的所有HOST.HOST改成{$uuid}
点击更新,等一会就会发现主机了

文章目录
  1. 1. 简介
  2. 2. 原理
    1. 2.0.1. 实现
  • 3. 修改vsphere配置
  • 4. 添加监控模板