概述
SNMP是简单网络管理协议,用于管理网络中的设备。ZStack Cloud提供SNMP管理功能,用户开启本功能并完成相关配置后,即可在第三方平台 (SNMP监控平台,如ZABBIX) 上获取ZStack Cloud上的资源监控数据,并接收从ZStack Cloud上推送的报警消息。
本文档将详细介绍SNMP功能开启和配置方法。
快速使用流程
SNMP获取监控数据
- 准备SNMP监控平台和MIB浏览器。
- 登录ZStack Cloud,开启SNMP管理,并配置相关参数。
- 下载并查看ZStack Cloud MIB文件。
- 登录SNMP监控平台,对接ZStack Cloud,并根据MIB文件添加监控条目。
- 在SNMP监控平台查看ZStack Cloud资源监控数据。
SNMP接收报警消息
- 准备SNMP监控平台,并配置Trap服务。
- 登录ZStack Cloud,开启SNMP管理,并添加SNMP Trap接收端。
- 创建SNMP Trap接收端类型的通知对象。
- 创建报警器并绑定SNMP Trap接收端通知对象。
- 登录SNMP监控平台,对接ZStack Cloud。
- 触发报警,SNMP监控平台可接收ZStack Cloud推送的报警消息。
典型场景实践
通过SNMP平台查看云平台资源监控
背景信息
使用SNMP协议,用户可通过第三方平台查看ZStack Cloud资源的监控数据,并接收ZStack Cloud推送的报警消息。本章主要介绍通过SNMP协议获取ZStack Cloud资源监控数据的方法。目前,支持通过SNMP协议获取以下资源的监控数据:物理机、主存储、镜像服务器、云主机、VPC路由器。
本场景以对接ZABBIX平台为例进行介绍,用户也可选用其他SNMP平台。
配置信息
| ZStack Cloud信息 | ZABBIX平台信息 | SNMP协议信息 |
|---|---|---|
| 管理节点IP:172.26.51.91 | 服务器IP:172.26.51.240 | 协议类型:v2c |
| SNMP Agent端口:1161 | 团体字:v2c-test |
- 准备ZABBIX平台和MIB Browser。
- 登录ZStack Cloud,启用SNMP管理。
- 下载ZStack Cloud MIB文件,查看资源监控项OID。
- 登录ZABBIX平台,对接ZStack Cloud。
- 在ZABBIX平台上添加监控项。
- 通过ZABBIX平台,查看ZStack Cloud资源监控数据。
操作步骤
-
准备ZABBIX平台和MIB Browser。
- 准备一个SNMP监控平台,该平台可通过SNMP协议获取云平台上的资源监控数据,本场景准备ZABBIX平台。
- 准备MIB Browser工具,用于查看ZStack Cloud MIB文件。可点击此处下载。
-
登录ZStack Cloud,启用SNMP管理。
在ZStack Cloud主菜单,点击,进入SNMP管理界面。在SNMP管理界面,点击去启用,进入启用SNMP管理界面。可参考以下示例输入相应内容:
- SNMP Agent端口:配置在管理节点的端口,用于接收和响应来自ZABBIX的请求,默认为1161
- SNMP协议类型:选择SNMP协议类型,支持v2c和v3两种类型,本场景下使用v2c协议
- 团体字:设置一个团体字,用于ZABBIX和云平台间的认证对接,本场景下设置为v2c-test
- SNMP Trap接收端:可选项,添加一个第三方服务器,用于接收云平台主动推送的报警消息,可在启用SNMP管理时添加,也可在启用完成后添加,本场景下,暂不添加SNMP Trap接收端
如图 1所示:图 1. 启用SNMP管理 
-
下载ZStack Cloud MIB文件,查看资源监控项OID。
-
登录ZABBIX平台,对接ZStack Cloud。
在ZABBIX主菜单,点击,在Hosts界面,点击Create Host,进入New Host界面,将ZStack Cloud作为一个主机添加到ZABBIX。可参考以下信息输入相应内容:
- Host Name:输入主机名称,本场景下设置为Cloud
- Group:为主机选择分组
- Interface:点击,并设置以下参数:
- IP address:输入ZStack Cloud管理节点IP
- Connect to:选择Connect to IP
- Port:输入在ZStack Cloud设置的SNMP Agent端口,本场景为1161
- SNMP version:选择SNMP协议类型,需和ZStack Cloud上配置的一致,本场景选择SNMPv2
- SNMP community:输入在ZStack Cloud上设置的团体字,本场景为v2c-test
- 其他参数可按需设置
如图 7所示:图 7. 在ZABBIX对接ZStack Cloud 
对接完成的ZStack Cloud将显示在ZABBIX Hosts列表中,等待几分钟,如Availability栏显示为绿色,则表示对接成功。如图 8所示:图 8. 成功对接ZStack Cloud 
-
在ZABBIX平台上添加监控项。
支持使用三种方式为ZABBIX对接ZStack Cloud监控项:对接单个资源监控项、对接批量资源监控项、导入全量资源监控项,推荐使用批量对接或全量导入方式。
- 对接单个资源监控项:
在ZABBIX主菜单,点击,进入Hosts界面,选择刚刚添加的Host,点击Items列,进入Items界面,点击Create Item,添加监控项。
使用该方法添加监控项,只能获取一个指定资源的指定监控数据,例如获取物理机A的内存空闲率,可参考以下示例输入相应内容:- Name:设置监控项名称,例如:物理机A的内存空闲率
- Type:选择SNMP agent
- Key:输入对应的监控项,例如:memoryFreeInPercent-HostA
- Type of Information:选择Character
- Host Interface:选择刚刚添加的Host IP地址和端口
- SNMP OID:输入完整的OID,包括指向监控条目的OID前缀,和指向被监控资源的Index Value,例如,物理机A内存空闲率的OID:1.3.6.1.4.1.60687.1.1.101.101.1.25.49004.15038.20479.16885.46625.11674.25854.9344
- Update Interval:设置监控数据更新间隔,ZABBIX会周期性从ZStack Cloud获取新的监控数据
- 其他参数可按需设置
图 9. 对接单个资源监控项 
- 对接批量资源监控项
通过批量对接,ZABBIX可获取ZStack Cloud上一类或几类资源的监控数据,例如获取所有物理机的监控数据:
- 添加模板:
在ZABBIX主菜单,点击,在Template界面,点击Create template,创建一个模板,本场景下,设置模板名称为For-Cloud
- 添加发现规则:在Template主列表,选择创建好的模板For-Cloud,在模板详情页菜单中,点击,添加发现规则,ZABBIX将根据发现规则,主动发现ZStack Cloud上的资源,可参考以下示例输入相应内容:
- Name:输入发现规则名称,例如:discover-host,表示该规则用于发现物理机资源
- Type:选择SNMP agent
- Key:输入发现规则键值,例如:cloud.if.discovery
- SNMP OID:输入一个易于识别的资源字段,ZABBIX将用该字段发现和标记资源。本场景下,使用资源UUID发现和标记物理机,输入以下内容:discovery[{#UUID},.1.3.6.1.4.1.60687.1.1.101.101.1.0],其中,.1.3.6.1.4.1.60687.1.1.101.101.1.0是物理机UUID对应的OID前缀
- Update Interval:设置ZABBIX自动发现ZStack Cloud的时间间隔
- 其他参数可按需设置
如图 10所示:图 10. 添加发现规则 
一个模板可以添加多条发现规则,用于发现ZStack Cloud上不同类别的资源,获取多个类别资源的监控数据。
- 添加监控项原型:
在Template主列表,选择For-Cloud模板下从创建好的发现规则discover host,进入发现规则详情页,点击,为发现规则添加监控项原型,ZABBIX会根据发现规则和监控项原型为ZStack Cloud上的资源自动、批量生成监控项。
例如:批量生成物理机内存空闲率监控项,可参考以下示例输入相应内容:- Name:设置监控项名称模板,例如:物理机内存空闲率-{#UUID},其中,{#UUID}由ZABBIX根据发现的资源自动填写
- Type:选择SNMP agent
- Key:设置监控项键值模板,例如:HostMemoryFreeInPercent-[{#UUID}],其中,{#UUID}由ZABBIX根据发现的资源自动填写
- Type of Information:选择Character
- SNMP OID:设置资源监控OID模板,使用以下格式:OID前缀.{#SNMPINDEX},OID前缀指向一个具体的监控条目,{#SNMPINDEX}由ZABBIX根据发现的资源自动填写,对应资源的Index Value。例如,获取物理机的内存空闲率,此处填写:.1.3.6.1.4.1.60687.1.1.101.101.1.25.{#SNMPINDEX}
- Update Interval:设置监控数据更新间隔,ZABBIX会周期性从ZStack Cloud获取新的监控数据
- 其他参数可按需设置
如图 11所示:图 11. 添加监控项原型 
一个模板可添加多条监控项,获取多种监控数据,本场景添加了物理机内存空闲率、物理机内存空闲量、物理机内存已用率、物理机内存已用量,如图 12所示:图 12. 为发现规则添加多条监控项原型 
- 将模板关联到主机
绑定完成后,在ZABBIX主菜单,点击,在Hosts界面,选择ZStack Cloud对应的主机,并查看其Items列,可以发现系统已根据模板发现规则和监控项原型,为ZStack Cloud中的每台物理机各生成了4条监控项。
如图 14所示:图 14. 自动、批量生成监控项 
- (可选) 导出已配置的模板。
在ZABBIX主菜单,点击,在Template界面,选择创建好的模板For-Cloud,在界面下方点击Export,将配置好的模板导出为离线文件。
该文件可以导入到其他ZABBIX平台,快速创建出相同的模板,简化手动配置流程。
- 添加模板:
- 导入ZStack Cloud全量监控项
- 联系ZStack Cloud官方技术支持,获取全量SNMP监控项文件,该文件包含ZStack Cloud的全部SNMP监控项,可直接导入ZABBIX使用,无需手动配置模板和监控项原型。Note: 当前提供的全量监控项文件仅适用于ZABBIX 6.0版本。
- 在ZABBIX主菜单,点击,在Templates界面,点击Import,将获取的全量SNMP监控项文件导入。
- 在ZABBIX主菜单,点击,在Host界面,点击ZStack Cloud对应的主机,进入编辑界面。在编辑界面,为主机选择刚刚导入的模板,模板名称为Cloud interfaces discovery all。
- 返回Host界面,选择ZStack Cloud对应的主机,点击Items,可以看到系统已根据导入模板,为主机生成全量监控项,如图 15所示:
图 15. 生成全量监控项 
- 联系ZStack Cloud官方技术支持,获取全量SNMP监控项文件,该文件包含ZStack Cloud的全部SNMP监控项,可直接导入ZABBIX使用,无需手动配置模板和监控项原型。
- 对接单个资源监控项:
-
通过ZABBIX平台,查看ZStack Cloud资源监控数据。
在ZABBIX主菜单,点击,在Host界面,选择ZStack Cloud对应的主机,点击Latest Data,可以查看各个监控项的最新数据。如图 16所示:
图 16. 查看各监控项最新数据 

点击监控项后的History列,还可以查看该监控项的历史数据。如图 17所示:图 17. 查看监控项历史数据 

通过SNMP平台接收云平台报警消息
背景信息
ZStack Cloud支持通过SNMP协议向第三方平台主动推送报警消息,本章主要介绍通过SNMP协议接收ZStack Cloud报警消息的方法。本场景以对接ZABBIX平台为例进行介绍,用户也可选用其他SNMP平台。
配置信息
| ZStack Cloud信息 | ZABBIX平台信息 | SNMP协议信息 |
|---|---|---|
| 管理节点IP:172.26.51.205 | 服务器IP:172.26.51.240 | 协议类型:v2c |
| SNMP Agent端口:1161 | SNMP Trap端口:162 | 团体字:v2c-test |
- 准备ZABBIX平台。
- 登录ZStack Cloud,启用SNMP管理,并添加SNMP Trap接收端。
- 下载ZStack Cloud MIB文件。
- 配置ZABBIX服务器。
- 登录ZStack Cloud创建报警器,创建SNMP Trap接收端通知对象。
- 创建报警器并绑定SNMP Trap接收端通知对象。
- 登录ZABBIX平台,对接ZStack Cloud。
- 在ZABBIX平台上添加SNMP Trap监控项。
- 查看报警消息。
操作步骤
-
准备ZABBIX平台。
准备一个SNMP监控平台,用于接收ZStack Cloud以Trap形式推送的报警消息,本场景以ZABBIX平台为例进行介绍,用户也可选用其他SNMP平台。
-
登录ZStack Cloud,启用SNMP管理。
在ZStack Cloud主菜单,点击,进入SNMP管理界面。在SNMP管理界面,点击去启用,进入启用SNMP管理界面。可参考以下示例输入相应内容:
- SNMP Agent端口:配置在管理节点的端口,用于接收和响应来自ZABBIX的请求,默认为1161
- SNMP协议类型:选择SNMP协议类型,支持v2c和v3两种类型,本场景下使用v2c协议
- 团体字:设置一个团体字,用于ZABBIX和云平台间的认证对接,本场景下设置为v2c-test
- SNMP Trap接收端:添加ZABBIX平台作为SNMP Trap接收端,接收ZStack Cloud推送的报警消息,请配置以下参数:
- 名称:设置SNMP Trap接收端名称,本场景设置为SNMP Trap Receiver
- IP地址:填写ZABBIX服务器IP地址
- 端口号:填写ZABBIX服务器Trap消息接收端口,默认为162
如图 18所示:图 18. 启用SNMP管理,添加SNMP Trap接收端 
-
下载ZStack Cloud MIB文件。
图 19. 下载MIB文件 
-
配置ZABBIX服务器。
-
登录ZStack Cloud创建报警器,创建SNMP Trap接收端通知对象。
在ZStack Cloud主菜单,点击,进入通知对象界面。在通知对象界面,点击创建通知对象,进入创建通知对象界面。可参考以下示例输入相应内容:
- 名称:设置通知对象名称,本场景设置为SNMP Trap
- 类型:选择SNMP Trap接收端
- SNMP Trap接收端:选择已添加的SNMP Trap接收端
点击发送测试消息,发送成功后即可添加通知对象。如图 20所示:图 20. 添加SNMP Trap接收端通知对象 
-
创建报警器并绑定SNMP Trap接收端通知对象。
本场景以创建资源报警器,在云主机CPU空闲率超过80%并持续30秒时发送报警为例进行介绍,实际使用中,请根据业务需求合理配置。在ZStack Cloud主菜单,点击,进入资源报警器界面。在资源报警器界面,点击创建资源报警器,进入创建资源报警器界面,创建如上资源报警器,通知对象选择创建好的SNMP Trap接收端通知对象。如图 21所示:
图 21. 创建报警器并绑定SNMP Trap接收端通知对象 
-
登录ZABBIX平台,对接ZStack Cloud。
在ZABBIX主菜单,点击,在Hosts界面,点击Create Host,进入New Host界面,将ZStack Cloud作为一个主机添加到ZABBIX。可参考以下信息输入相应内容:
- Host Name:输入主机名称,本场景下设置为Cloud
- Group:为主机选择分组
- Interface:点击,并设置以下参数:
- IP address:输入ZStack Cloud管理节点IP
- Connect to:选择Connect to IP
- Port:输入在ZStack Cloud设置的SNMP Agent端口,本场景为1161
- SNMP version:选择SNMP协议类型,需和ZStack Cloud上配置的一致,本场景选择SNMPv2
- SNMP community:输入在ZStack Cloud上设置的团体字,本场景为v2c-test
- 其他参数可按需设置
如图 22所示:图 22. 在ZABBIX对接ZStack Cloud 
对接完成的ZStack Cloud将显示在ZABBIX Hosts列表中,等待几分钟,如Availability栏显示为绿色,则表示对接成功,ZABBIX可与ZStack Cloud通信。如图 23所示:图 23. 成功对接ZStack Cloud 
-
添加SNMP Trap监控项
在ZABBIX主菜单,点击,选择刚刚创建好的Cloud主机,点击Items,进入Items界面。在Items界面,点击Create,弹出创建监控项界面。可参考以下示例输入响应内容:
- Name:设置监控项名称,本场景设置为Cloud_SNMP_Trap
- Type:选择SNMP trap
- Key:选择snmp.fallback
- Type of information:选择Log
- Host interface:选择刚刚创建的Cloud主机的IP接口
- History storage period:设置历史数据保留时间
其他参数可按需设置。如图 24所示:图 24. 添加SNMP Trap监控项 
-
查看报警消息。
在ZABBIX主菜单,点击,在Latest Data界面,找到刚刚创建的SNMP Trap监控项,点击History,即可查看ZStack Cloud推送的报警消息。如图 25所示:
图 25. 查看报警消息 






