Zabbix监控VMware虚拟化指南

第1章、 方案设计

1.1、 简介

自Zabbix 2.2.0版本开始支持VMware vCenter或vSphere版本最低为4.1。Zabbix可以使用低级别自动发现VMware宿主机和虚拟机,并根据事先定义的主机原型,为这些虚拟机创建主机并添加监控。Zabbix中默认提供了几个模板,可以直接用来监控VMware vCenter或ESX hypervisor。

1.2、 架构设计

监控虚拟机分两个步骤完成。首先,Zabbix是通过 vmware collector 进程来获取虚拟机数据。这些进程通过SOAP协议从VMware Web SDK服务获取必要的信息,对其进行预处理并存储到Zabbix server共享内存中。然后,Zabbix pollers通过Zabbix简单检查 VMware监控项 来检索这些数据。

自Zabbix 2.4.4版本开始,收集的数据分为两种类型:VMware配置数据和VMware性能数据。这两种类型都由 vmware collectors 进程独立收集。因此,建议启用比受监控的VMware服务更多的收集器。否则,VMware性能统计信息的检索可能会由于检索VMware配置数据而延迟(对于较大型的环境,会需要一段时间)。

目前基于VMware性能统计信息只有数据存储,网络接口和磁盘设备统计信息和自定义性能计数器项。

 

第2章、 Zabbix侧配置

 

2.1、 zabbix配置参数详解

#StartVMwareCollectors     

预先启动Vmware collector收集器实例的数量,此值取决于要监控的 VMware 服务的数量;

在大多数情况下,这应该是:servicenum < StartVMwareCollectors < (servicenum * 2)

其中servicenum是VMware服务的数量。

 

ps:如果您有 1 个 VMware 服务要将 StartVMwareCollectors 设置为 2,那么如果您有 3 个 VMware 服务,请将其设置为 5;

请注意,在大多数情况下,此值不应小于 2,不应大于 VMware 数量的 2 倍服务。还要记住,此值还取决于 VMware 环境大小和 VMwareFrequency 和 VMwarePerfFrequency 配置参数

 

#VMwareCacheSize

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

 

#VMwareFrequency

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

 

#VMwarePerfFrequency

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

 

#VMwareTimeout

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

2.2、 开启zabbix监控虚拟化配置

#zabbix server配置

[root@server ~]# grep  'VMware' /etc/zabbix/zabbix_server.conf

StartVMwareCollectors=10

VMwareFrequency=30

VMwarePerfFrequency=60

VMwareCacheSize=160M

VMwareTimeout=300

 

#重启zabbix server

[root@server ~]# systemctl restart zabbix-server.service

 

#查看端口

[root@server ~]# netstat -lntp |grep zabbix

tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      14385/zabbix_server

tcp6       0      0 :::10050                :::*                    LISTEN      936/zabbix_agent2   

tcp6       0      0 :::10051                :::*                    LISTEN      14385/zabbix_server

第3章、 Vcenter端配置

3.1、 Vcenter创建只读用户

#使用curl查看sdk接口是否打开,是否可以获取信息

#执行命令,确认sdk接口状态,确认返回结果

curl -i -k --data "" https://${vCenter IP}/sdk

[root@server ~]# curl -i -k --data "" https://192.168.1.50/sdk

HTTP/1.1 500 Internal Server Error

Date: Mon, 25 Apr 2022 16:11:06 GMT

Cache-Control: no-cache

Connection: Keep-Alive

Content-Type: text/xml; charset=utf-8

X-Frame-Options: DENY

Content-Length: 556

.....

...

#创建zabbix获取数据时使用的账号,此账号只需要只读权限即可

 

 

 

zabbix只读用户添加:

 

 

 

 

3.2、 模块配置

#开启配置,登录vcenter,系统高级设置,配置Config.HostAgent.plugins.solo.enableMob

修改此项为true即可

 

 

 

第4章、 Zabbix界面配置Vcenter监控

4.1、 访问zabbix平台,创建新监控主机

 

 

 

创建主机宏,认证需要(添加此三项即可)
{$VMWARE.URL}

{$VMWARE.USERNAME}

{$VMWARE.PASSWORD}

如果需要用对应设备的uuid,可访问以下URL
ESXI-LOCALHOST-UUID】

 

4.2、 监控模板配置(使用默认模板,基本参数都已监控)

 

 

 

 

4.3、 数据检查

 

 

 

 

 

第5章、 zabbix自动监控虚拟化内部主机

5.1、 自动发现原型

# Zabbix可以使用低级别发现规则自动发现VMware宿主机和虚拟机。

 

 

 

所有必填字段都用红色星号标记。

以上截图中的发现规则key值是 vmware.hv.discovery[{$URL}]。

5.2、 主机原型

可以使用低级别发现规则自动发现并创建主机原型。当发现虚拟机时,这些原型会成为真正的主机。监控主机原型在被发现之前,除了来自链接模板的监控项和触发器,不能有自己的监控项和触发器。发现的主机将属于一个已有主机,并将根据获取的已有主机IP进行主机配置。

 

 

 

在主机原型配置中,低级别自动发现宏用于主机名,显示名称和主机组原型字段。关联已有主机组,模板链接和加密链接等可配置选项。

 

 

 

如果选中 创建启用,则主机将添加为启用状态。如果未选中,将添加主机,但是处于禁用状态。

在主机列表中,自动发现的主机将根据它们创建的发现规则名称命名前缀。可以手动删除发现的主机。发现的主机也将根据发现规则的 // 保留丢失资源期限(以天为单位)// 自动删除。除了启用/禁用主机和主机清单外,大多数配置选项都是只读的。发现的主机不能有自己的主机原型。

5.3、 模板

Zabbix中默认提供了几个现成的模板,用于监控VMware vCenter或ESX hypervisor。

这些模板包含事先定义的低级别自动发现规则以及用于监视虚拟机安装的内置检查。

请注意,"Template Virt VMware"监控模板应用于VMware vCenter和ESX hypervisor监控。 "Template Virt VMware Hypervisor"和"Template Virt VMware Guest"模板由前者自动发现关联宿主机和虚拟机,通常不应该手动链接到单个主机。

 

 

 

5.4、 主机配置

要使用 VMware 简单检查,主机必须定义以下用户宏:

{$URL} - VMware 服务 (vCenter or ESX hypervisor) SDK URL (https://servername/sdk).

{$USERNAME} - VMware 服务用户名

{$PASSWORD} - VMware 服务用户名密码

5.5、 配置 VMware监控注意的问题

编译安装Zabbix服务时添加依赖项(--with-libxml2和--with-libcurl)。

Zabbix服务器配置文件中的StartVMwareCollectors选项设置为1或更多

创建新主机

设置监控VMware服务所需的身份验证相关的主机宏:

    {{..:..:assets:en:manual:vm_monitoring:vm_host_macros.png|}}* 将 VMware服务模板链接到主机:    {{..:..:assets:en:manual:vm_monitoring:vm_host_templates.png|}}* 单击 //添加// 按钮保存主机

5.6、 扩展日志

使用调试级别5进行详细调试时,VMware收集器收集的数据会记录到日志中。此级别可以在服务器 和 代理服务器 配置文件中设置,或使用执行控制选项(-R log_level_increase="vmware collector,N",其中N是进程数量)。以下示例说明如果配置将调试级别设置为4:

 

提高所有 vmware 收集器的日志级别:

 

shell> zabbix_server -R log_level_increase="vmware collector"

提高第二个 vmware 收集器的日志级别:

shell> zabbix_server -R log_level_increase="vmware collector,2"

如果不需要对VMware收集器数据进行扩展日志,可以使用-R log_level_decrease选项进行停止。

5.7、 已下是监控Vcenter中的主机

 

 

 

 

 

 

 

#当前已监控的主机有四台,其中两台是通过自动发现而自动创建的,虚拟化中的主机会随着配置的Discover,会自动收集虚拟化中所创建的主机,所以,配置虚拟化监控,只需要配置一次就可以,虚拟化中新创建的主机会随着zabbix的自动发现规则,自动监控。 

 

 

 

 

posted @ 2023-03-18 15:57  呼长喜  阅读(1984)  评论(0编辑  收藏  举报