首页 > 代码库 > 深入浅出Zabbix 3.0 -- 第十一章 VMware 监控

深入浅出Zabbix 3.0 -- 第十一章 VMware 监控

第十一章  VMware 监控

随着虚拟化技术应用的越来越广泛,Zabbix作为基础架构的监控系统,也可以很好的支持基于VMware的虚拟化平台及虚拟机进行监控。通过在Zabbix中预先定义的host prototypes(主机原型)利用low-level discovery rules会自动发现VMware hypervisors和虚拟机,并创建主机对它们进行监控。

Zabbix中对虚拟机的监控分两步完成,首先,通过vmwarecollector实例收集虚拟机数据,这些实例使用SOAP协议从VMware web services收集需要的信息并进行处理后保存到Zabbixserver的共享内存中,然后pollers使用Zabbix simple check接收这些数据。

支持的VMware vCenter vSphere 的最低版本是v4.1

11.1 配置准备

在监控VMware之前,要确保Zabbix server支持libxml2(用来解析调用SOAP接口返回的XML)和libcurl(用来调用vCenterSOAP接口)。如果不支持,Zabbix server启动时会报错:cannotstart vmware collector because Zabbix server is built without VMware support。因此,你如果使用源码安装Zabbix时需要加上 –with-libxml2 –with-libcurl 这两个参数。

另外,我们需要修改Zabbix server的配置文件 /etc/zabbix/zabbix_server.conf中有关VMware监控的参数,主要有以下几个:

  • StartVMwareCollectorsVMware collector 实例的数量,默认为0,取值范围:0-250。此值取决于你需要监控的VMware 服务的数量。一般情况下servicenum < StartVMwareCollectors < (servicenum * 2),其中servicenumVMware服务的数量。

  • VMwareFrequency:连接到VMware服务收集一个新数据的频率,默认为60秒,取值范围:10-86400

  • VMwarePerfFrequency:连接到VMware服务收集性能数据的频率,默认为60秒,取值范围10-86400

  • VMwareCacheSize:用于存储VMware 数据的缓存容量,默认为8M,取值范围:256K-2G

  • VMwareTimeoutVMware collector 等待VMware 服务响应的时间,默认为10秒,取值范围:1-300

完成相关参数的配置后,记住一定要重启Zabbix server

你可能注意到VMwareFrequencyVMwarePerfFrequency这两个参数虽然都是定义收集数据的频率,但两者是有一些区别的。Zabbix2.4.4版本开始,从VMware收集的数据分为两类:VMwareconfiguration data(配置数据)和VMwareperformance counter data(性能计数器统计数据),它们都是通过VMware collector收集,因此建议VMwarecollector的数量大于VMware 服务的数量,否则会因为VMware configuration data不能及时更新而导致VMware performance counter data的延迟收集。

11.2 预设模板

Zabbix中已经提供了几个可以直接使用的监控VMwarevCenter ESX hypervisor的模板,这些模板包含预先定义好的low-level discovery rules

Template Virt VMware模板会在监控VMwarevCenterESX hypervisor时使用,Template Virt VMware Hypervisor Template Virt VMware Guest主要在discovery中使用,在host上不用手工链接这两个模板。如下图11-1所示。

                             技术分享

11-1

如果你从Zabbix 2.2或更早的版本升级到3.0版本时,需要从官网下载模板并手工导入。因这些模板都依赖VMware VirtualMachinePowerState VMware statusvalue maps(值映射),所以你需要先手工建立或从XML导入,也可以使用SQL脚本(http://www.zabbix.org/wiki/Zabbix_Templates/SQLs_for_Official_Templates)建立这些值映射,然后在导入这些模板。

 

11.3 创建VMware Host

创建host之前,登录vCenter,确认服务正常运行。然后在Zabbix前端页面点击Configuration--> Hosts,在Hosts页面右上角点击Create host按钮,在主机配置页面完成以下配置:

1、  点击Host标签,在配置页面中输入Host nameVisible name,选择相应的group。如下图11-2所示。

技术分享

11-2

2、  Agent InterfaceIP ADDRESS中输入vCenter服务器的地址,收集数据时不使用这个地址,在这里设置的目的只是方便管理。

3、  点击Templates标签,在配置页面中添加TemplateVirt VMware模板。如下图11-3所示。

技术分享

11-3

4、  点击Macros标签,在配置页面中添加主机宏变量。如下图所示,主要有3个,分别是:

  • {$USERNAME}VMware 用户名。

  • {$PASSWORD}VMware 用户密码。

  • {$URL}VMware 服务(vCenterESX hypervisorSDK URL,例如https://servername/sdk。如下图11-4所示。

技术分享

11-4

5、  点击Add按钮保存配置。

VMware host创建完成后,Zabbix通过SDK接口访问VMware vCenter并收集所有信息,通过Template Virt VMware模板中配置的发现规则DiscoverVMware hypervisorsDiscover VMwareVMs发现相应的hypervisorVM(虚拟机)。

Discover VMware hypervisors发现规则中,定义了一个Host prototypes(主机原型),并在该主机原型中链接了Template Virt VMware Hypervisor模板。在Discover VMware VMs发现规则中,定义了一个Hostprototypes(主机原型),并在该主机原型中链接了TemplateVirt VMware Guest模板。当发现hypervisor或虚拟机时,这些主机原型会变成真正的host。定义的主机原型如下图11-5所示。

技术分享

11-5

Discovery rules中默认配置的Updateinterval 3600秒,因此在创建VMware host 一个小时之后运行这些发现规则,发现并创建hypervisorVM 主机。在Monitoring --> Latest data页面中通过hypervisorcluster过滤浏览相应的信息。

如果遇到问题,我们可以通过VMware collectorExtended debug模式(debug level 5)获得详细的收集数据。需要修改Zabbixserver的配置文件设置debug level,或者使用参数-R log_level_increase="vmware collector,N"N 是进程的编号。一起来看看下面的例子。

假设已经设置debug level4,设置所有VMware collector进程的debug level5

# zabbix_server -R log_level_increase="vmware collector"

设置第二个VMware collector进程的debug level5

# zabbix_server -R log_level_increase="vmware collector,2"

不需要对VMware collector的数据做Extendeddebug时,可以使用参数 -Rlog_level_decrease选项。


技术分享

本文出自 http://ustogether.blog.51cto.com/8236854/1929738,如需转载请与作者联系。



本文出自 “大白小白一起学” 博客,转载请与作者联系!

深入浅出Zabbix 3.0 -- 第十一章 VMware 监控