目录
[监控]zabbix 监控VMware EXSI的虚拟机,并修改模板使其能自动绘图 目录一、背景二、本文主题三、前期准备的配置步骤1.如何安装zabbix5.0 2.如何下载和导入zabbix模板3. zabbix监控VMware EXSI的原理4. exsi上主机上如何开启 Vmware 的(Managed Object Browers)5. 通过VMware EXSI WEB获取 EXSI 的UUID四、zabbix配置步骤1.在zabbix中开启vmware collector 相关功能,并重启相关服务2.添加 VMwere EXSI hosts 的监控五、高级设置(自定义模板参数 )1.需要对EXSI中的每个虚机的CPU,内存使用情况,通过图形展示出来2.需要对EXSI中的每个虚机的网卡流量,磁盘读写,通过图形展示出来3.需要对EXSI中的每个虚机的电源监控,实现对虚机电源是否开启进行告警提示4.需要对EXSI中的每个虚机的磁盘监控,实现磁盘空间不足自动告警的提示5.需要对EXSI系统的健康状态,通过图形展示出来六:效果图展示1.查看被模板自动发现的VMs2.查看VMs的状态(阀值是否触发,Graphs图形是否有生成)3.查看某个VM自动生成的图形4.因VM关机而触发的告警截图5.查看EXSI 管理系统的健康图形七、参考链接七、版权声明八、广告[莽哥鲜果]
一、背景
当传统公司达到一定规模时,硬件服务器的使用是不可避免的。
企业中,服务器最常见的使用场景是提供文件共享,搭建Web网站等服务。
那硬件服务器到底是什么 ?其实我们可以简单将它看作是一台高性能的计算机,它的架构与我们生活中使用的个人电脑(通用的计算机架构)是类似;它们都是由CPU ,内存,硬盘,网卡等IO设备组成。
它们的区别在于,硬件服务器是需要提供高可靠的服务的,通常是需要同时让多人使用,经常连续的工作在7×24小时环境中;而个人电脑一般是单独使用,随时开关机,偶尔突然崩溃(windows常见的蓝屏)一下也不会产生大范围的影响。
所以简单来说,硬件服务在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面都比较好。
虽然近几年公有云(国内阿里,国外亚马逊)的大力发展,企业已经可以从公有云里按需的购买虚机直接部署内部应用,亦或直接购买现成的SaaS云服务。
但是企业总有些应用,出于安全考虑是不会放在公有云上(是通过公网直接可以访问,所以有一定的安全风险)的,或者有的服务本身也不必要上云,正如我前面说到的文件共享服务。
因此企业里总会有几台或几个数据中心的硬件服务器需要管理和监控。
通常,普通的硬件服务器一般就跑了一个操作系统。IT管理员只需通过常规的各种方式(例如SSH,SNMP,IPMI)可以完成监控。
但这几年硬件服务的能力越来越强,若一台硬件服务上只跑一个操作系统,是非常浪费硬件资源的,所以大部分企业为了更大程度的利用物理硬件资源,会选择将硬件服务的资源先虚拟化,然后在硬件服务器上跑N个各种不同的操作系统,这种行为,其实也就是我们常说的虚拟化。虚拟化架构如下图所示

目前常用的虚拟化技术,是开源的KVM 和闭源的VMware,传统企业用得最多的还是VMware。
我们展开说一下VMware的虚拟化,在生活中用到最多是VMware statation,它是VMware为个人用户提供的一种虚拟化服务,而EXSI(单机)是VMware为企业虚拟化提供解决方案,多个EXSI可以组成VCenter。VCenter它是虚拟化集群管理平台,可以简单的理解成它是管理N个EXSI主机的管理工具 。
综上,因为虚拟化技术的使用 ,若要对这一类的硬件服务器监控时,情况就比较复杂了。虽然EXSI,VCenter的控制平台本身会有一个资源监控界面,但IT管理员往往是比较倾向于,在一个监控服务器中查看所有的被监控主机的健康状态。
而目前在传统的中小型企业中,开源的监控系统zabbix是最受欢迎的,这里会讲解一下如何使用zabbix监控VMware Hypervisor-EXSI的虚拟机,并通过修改zabbix 对应模板,实现默认功能模板原本没有添加的一些功能。
二、本文主题
zabbix 如何通过自带的监控模板,实现对VMware Hypervisor-EXSI和它里面的虚拟机进行监控
通过修改zabbix 里对应的默认监控模板,实现下面的业务需求
对EXSI中的每个虚机的CPU,内存使用情况,通过图形展示出来
对EXSI中的每个虚机的网卡流量,磁盘读写,通过图形展示出来
对EXSI中的每个虚机的磁盘监控,实现磁盘空间不足自动告警的提示
对EXSI中的每个虚机的电源监控,实现对虚机电源是否开启进行告警提示
对EXSI系统的健康状态,通过图形展示出来
三、前期准备的配置步骤
1.如何安装zabbix5.0
详细Centos7 X86安装zabbix 5.0+如何实现邮件告警+如何动态在线扩容磁盘的教程,请查看下面的链接:
zabbix 5.0 +postgresql(简单优化)+TimescaleDB+中文安装实战教程
2.如何下载和导入zabbix模板
如何从share.zabbix.com 官方共享模板网站里,如何通过使用SNMP来监控网卡流量,请查看下面的链接:
zabbix +使用SNMP模板自动发现网络接口并绘图+修复该模板graphs绘图时流量断图故障
3. zabbix监控VMware EXSI的原理
原理(官方介绍):
虚拟机监控分两个步骤完成。首先,Zabbix 是通过 vmware collector 进程来监控虚拟机。这些进程通过 SOAP 协议从 VMware Web 服务获取必要的信息,对其进行预处理并存储到 Zabbix server 共享内存中。然后,zabbix pollers 通过 zabbix 简单检查 VMware keys 来检索这些数据。
从 Zabbix 2.4.4 开始,收集的数据分为两种类型:VMware 配置数据和 VMware 性能数据。这两种类型都由 vmware collectors 进程独立收集。因此,建议启用比受监控的 VMware 服务更多的收集器。否则,检索 VMware 性能统计信息可能会出现延迟(比较大型的监控场景)。

4. exsi上主机上如何开启 WMware 的(Managed Object Browers)
EXSI 默认是关闭MOB的,因此这一步开启操作,是必做操作,否则后续通过web访问exsi时会出现503的报错,也就是说这一步没做成功就意味着zabbix无法监控VMware EXSI
EXSI 6.0配置步骤如下:
#使用vsphere client客户端登陆exsi主机-->选中exsi主机-->配置选项卡-->高级设置-->Config->HostAgent-->PlugIns-->下拉找到MOB-->勾选enable

5. 通过VMware EXSI WEB获取 EXSI 的UUID
原因:
在zabbx-web添加exsi主机时,在填写主机名称时需使用UUID,否则关联监控项时会报错
所以这里需要先通过VMware EXSI WEB界面查询到相关参数,好为后续设置做准备
查询方式:
访问 http://<exsi_ip.address> 会自动跳转到 https://<exsi_ip.address>
注意
#这里的<exsi_ip.address>,请替换成你自己生产环境中的exsi主机的ip地址。另外EXSI 主机的ssl证书是vmware自签的 ,初次访问时浏览器请点击高级,并选择接收风险,才能打开VMware EXSI的 WEB界面

打开后请再次点击 Browse objects managed by this host. 也可以直接使用 http://<exsi_ip.address>/mob打开。
注意:
#1.这里的<exsi_ip.address>,请替换成你自己生产环境中的exsi主机的ip地址。
#2.若是第4步没有操作,或者没有操作成功,打开http://<exsi_ip.address>/mob是会显示503报错

打开MOB后 注意核对一下时间显示是否正常,若是不正确,请在EXSI 主机上调整系统时间

EXSI主机上调整系统时间,或者设置NTP时间服务器
EXSI 6.0 直接设置日期和时间操作步骤如下:
#使用vsphere client客户端登陆exsi主机-->选中exsi主机-->配置选项卡-->时间配置--> 属性->直接设置时间和日期->确认
EXSI 6.0 配置NTP时间服务器操作步骤如下:
#使用vsphere client客户端登陆exsi主机-->选中exsi主机-->配置选项卡-->时间配置--> 属性-> 选项-->NTP设置-->添加内部/外部时间服务器地址->常规-->启动NTP 功能->确认
浏览器通过特定连接地址获取EXSI的 UUID
链接地址:
#https://<ip.address>/mob/?moid=ha-host&doPath=hardware.systemInfo
四、zabbix配置步骤
1.在zabbix中开启vmware collector 相关功能,并重启相关服务
~]vi /etc/zabbix/zabbix_server.conf
# StartVMwareCollectors=0
#先启动Vmware collector收集器实例的数量,默认为0,表示不启用改功能
StartVMwareCollectors=10
# StartVMwareCollectors计算方式
# servicenum < StartVMwareCollectors < (servicenum * 2)
# 也就是说StartVMwareCollectors 取值范围是是exsi主机的2倍之间即可
# 例如:只有1个exsi主机需要监控,那就将StartVMwareCollectors设置为2
### Option: VMwareFrequency
# VMwareFrequency=60
#连接到VMware服务收集一个新数据的频率,默认为60秒,我选择使用默认数值
#仔细想一下,这个应该是VMwarePerfFrequency的总和
#若zabbix监控exsi主机数量比较多的情况下,建议适当的调大一点,避免出现问题
### Option: VMwarePerfFrequency
# VMwarePerfFrequency=60
#连接到VMware服务收集性能数据的频率,默认为60秒,我选择使用默认数值
### Option: VMwareCacheSize
VMwareCacheSize=200M
#VMwareCacheSize用于存储VMware 数据的缓存容量,
#我这里设置200M,若是您监控主机内存很充足,可以根据选择默认,zabbix 5.0 默认是2G
### Option: VMwareTimeout
# VMwareTimeout=10
VMwareTimeout=40
# VMware collector 等待VMware 服务响应的时间,默认为10秒
# 我调大一点,避免双方服务繁忙,导致数据采集超时
~]#systemctl restart zabbix-server
#重启服务,使修改的配置生效
~]# systemctl status zabbix-server | grep -i VM
├─23097 /usr/sbin/zabbix_server: vmware collector #1 [updated 0, removed 0 VMware services in 0.000080 sec, idle 5 sec
├─23098 /usr/sbin/zabbix_server: vmware collector #2 [updated 0, removed 0 VMware services in 0.000035 sec, idle 5 sec
├─23099 /usr/sbin/zabbix_server: vmware collector #3 [updated 0, removed 0 VMware services in 0.000056 sec, idle 5 sec
├─23100 /usr/sbin/zabbix_server: vmware collector #4 [updated 0, removed 0 VMware services in 0.000061 sec, idle 5 sec
├─23101 /usr/sbin/zabbix_server: vmware collector #5 [updated 0, removed 0 VMware services in 0.000060 sec, idle 5 sec
├─23102 /usr/sbin/zabbix_server: vmware collector #6 [updated 0, removed 0 VMware services in 0.000073 sec, idle 5 sec
├─23104 /usr/sbin/zabbix_server: vmware collector #7 [updated 0, removed 0 VMware services in 0.000039 sec, idle 5 sec
├─23106 /usr/sbin/zabbix_server: vmware collector #8 [updated 0, removed 0 VMware services in 0.000061 sec, idle 5 sec
├─23107 /usr/sbin/zabbix_server: vmware collector #9 [updated 0, removed 0 VMware services in 0.000137 sec, idle 5 sec
├─23108 /usr/sbin/zabbix_server: vmware collector #10 [updated 0, removed 0 VMware services in 0.000053 sec, idle 5 sec
2.添加 VMwere EXSI hosts 的监控
通过web登陆zabbix,通过下面的配置步骤添加监控
Configuration-->Hosts->Create host->输入hostname,interface[被监控的接口+监控方式]
#这里假设192.168.1.1就是我们要监控的的网络硬件设备
注意Hostname 只能添加EXSI主机的UUID
#根本原因:是因为后续使用的监控模板中设置了自动发现(low-level discovery,LLD),它需要使用EXSI的UUID
#Agent 这里添加EXSI主机+端口即可,我是监控EXSI 用的是80

应用zabbix自带监控vmware VM的模板
监控vmware 的有三个模板,分别为Template VM VMware,Template VM VMware Guest ,Template VM VMware Hypervisor ,他们的功能介绍如下:
Template VM VMware
#核心模板,会被后面2个模板依赖
Template VM VMware Guest
#比较重要,它能自动发现EXSI里的虚机和虚机里的系统信息(CPU,内存,磁盘文件,网卡流量),
Template VM VMware Hypervisor
#相对重要,他能监控虚拟化系统- -EXSI的相关系统信息,注意是虚拟化系统,和你从exsi系统里看到的监控状态是一致的。
#建议三个都添加,若是有其他考虑,请至少添加Template VM VMware ,Template VM VMware
Guest

设置相关内置的宏参数后,即可完成配置
模板内置宏参数讲解
#Macro 相关参数 ,实际情况下,请把<>里的替换成你自己的实际参数
{$USERNAME}: <your_exsi_username>
#exsi 的用户
{$PASSWORD}: <your_exsi_password>
#exsi 的登陆密码
{$URL}:https://<your_exsi_ipaddress>/sdk
#通过EXSI的MOB,再从这个URL接口获取监控数据

点击updtes,即可完成EXSI主机的监控
五、高级设置(自定义模板参数 )
zabbix对VMware 的默认监控模板,是不会自动绘图,也没有设置相关的告警阀值;
因此用户若是想需要这些功能,就需要自己修改模板。
生成网络里,我遇到以下业务需求:
需要对EXSI中的每个虚机的CPU,内存使用情况,通过图形展示出来
需要对EXSI中的每个虚机的网卡流量,磁盘读写,通过图形展示出来
需要对EXSI中的每个虚机的磁盘监控,实现磁盘空间不足自动告警的提示
需要对EXSI中的每个虚机的电源监控,实现对虚机电源是否开启进行告警提示
需要对EXSI系统的健康状态,通过图形展示出来
配置步骤如下:
1.需要对EXSI中的每个虚机的CPU,内存使用情况,通过图形展示出来
修改对象:
Template VM VMware Guest
配置步骤:
Configuration-> Templates->Template Virt VMware Guest->Graphs ->create graphsCPU 使用情况,图形自动生成的设置
Name: CPU
Items: Add ->勾选 CPU ready/ CPU usage

MEM 使用情况,图形自动生成的设置
Name: CPU
Items: Add ->勾选 Host memory usage/Memory size avg/Swapped memory

2.需要对EXSI中的每个虚机的网卡流量,磁盘读写,通过图形展示出来
修改对象:
Template VM VMware Guest
配置步骤:
Configuration-> Templates->Template Virt VMware Guest-> Discovery rules网卡流量,图形自动生成的设置
Configuration-> Templates->Template Virt VMware Guest-> Discovery rules->Network device discovery ->Graph prototypes->create graph prototypes
Name: Number of bytes Traffic on interface {#IFDESC}
Items: Add prototype->中勾选下面的选项
Number of bytes received on interface {#IFDESC}
Number of bytes transmitted on interface {#IFDESC}

磁盘读写,图形自动生成的设置
Configuration-> Templates->Template Virt VMware Guest-> Discovery rules->Network device discovery ->Disk device discovery->create graph prototypes
Name: Average read /write from the disk {#DISKDESC}
Items: Add prototype->勾选全部
Average number of bytes read from the disk {#DISKDESC}
Average number of bytes written to the disk {#DISKDESC}
Average number of reads from the disk {#DISKDESC}
Average number of writes to the disk {#DISKDESC}

3.需要对EXSI中的每个虚机的电源监控,实现对虚机电源是否开启进行告警提示
修改对象:
Template VM VMware Guest
配置步骤:
Configuration-> Templates->Template Virt VMware Guest->Triggers ->create triggers
name:
VM guest {HOST.NAME} is powered OFF
Serverity:
High
Expression:
{Template VM VMware Guest:vmware.vm.powerstate[{$URL},{HOST.HOST}].last()}=0

4.需要对EXSI中的每个虚机的磁盘监控,实现磁盘空间不足自动告警的提示
修改对象:
Template VM VMware Guest
配置步骤:
Configuration-> Templates->Template Virt VMware Guest-> Discovery rules->Mounted filesystem discovery ->Trigger prototypes ->create trigger prototypes
name:
Low free disk space on {HOST.NAME} {#FSNAME} (percentage)
Serverity:
High
Expression:
{Template VM VMware Guest:vmware.vm.vfs.fs.size[{$URL},{HOST.HOST},{#FSNAME},pfree].last(#3)}<10

5.需要对EXSI系统的健康状态,通过图形展示出来
修改对象:
Template VM VMware Hypervisor
配置步骤:
Configuration-> Templates-Template VM VMware Hypervisor->>Graphs ->create graphs
name:
VM VMware Hypervisortest
Items: add:->勾选全部

六:效果图展示
1.查看被模板自动发现的VMs
#configuration->hosts:
2.查看VMs的状态(阀值是否触发,Graphs图形是否有生成)
#Monitoring->hosts:
3.查看某个VM自动生成的图形
#Monitoring->hosts—>VM-1->Graphs网卡流量监控图

硬盘读写监控图

CPU监控图

内存监控图

4.因VM关机而触发的告警截图
#Monitoring->hosts—>EXSI->Graphs
5.查看EXSI 管理系统的健康图形

六、参考链接
https://mp.weixin.qq.com/s/99AMRARrD7dzvWK31Jo47Q
https://mp.weixin.qq.com/s/dV3Z-r1NYGF9E3Pr6N7lqw
https://share.zabbix.com/
https://www.zabbix.com/documentation/3.4/zh/manual/vm_monitoring
https://blog.51cto.com/11954248/2358150
https://zhuanlan.zhihu.com/p/55121140
http://www.voleg.info/zabbix-vmware-alerts.html
七、版权声明
本文章使用 署名-非商业性使用 4.0 国际(Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) )
您可以自由地:
共享 — 在任何媒介以任何形式复制、发行本作品
演绎 — 修改、转换或以本作品为基础进行创作
只要你遵守许可协议条款,许可人就无法收回你的这些权利。
惟须遵守下列条件:
署名 — 您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书。
非商业性使用 — 您不得将本作品用于商业目的。
没有附加限制 — 您不得适用法律术语或者 技术措施 从而限制其他人做许可协议允许的事情。
注意以下是广告
八、广告[莽哥鲜果]
邛崃、浦江位于美丽的四川省成都市的西南,这里有大片的果树和茶树,朴实的果农和茶农们,日出而作,日落而息,让这里的鲜果香,茶花美。
莽哥鲜果,都是产自这里的农家果园,为了保证鲜果的口感,鲜果都是从果园现摘,然后通过精心精心的分拣挑选并快递运输(不超过3天),最终呈现在客户的面前。
莽哥鲜果,为了确保时鲜水果的产品质量,目前只在每年8月-次年3月提供当季鲜果服务。
当季是红心猕猴桃成熟的季节,为了助农,特以限时(2020年8月)的助农促销价,欢迎各位品尝。

备注:
如何下单/如何反馈:请直接向公众号发消息(收件信息+对应规格)即可。
红心猕猴桃是直接从果园摘下来的,果子都是硬的,需要放置1周左右才能吃。
收到货后,可以在箱子里放置2-3个苹果,加速猕猴桃变软的过程。
企业中,服务器最常见的使用场景是提供共享文件服务。




