基于SNMP v3的数据中心设备监控系统设计与实现
2018-01-18臧其事周俊琦谢立帆
臧其事 周俊琦 谢立帆
摘要:随着数据中心的不断发展,设备的种类与数据都在增加,从小型机,PC服务器,到交换机,UPS,存储设备,虚拟机和vCenter,系统管理人员需要一种通用灵活的易用的设备监控与管理方式,以提高数据中心设备的管理效率。本文首先介绍了简单网络管理协议(SNMP)的工作原理,分析了 SNMP v3 协议的加密实现。并以农行上海分行的基于 SNMP 的设备监测系统为例,实现了对数据中心各类设备资源的实时管理,通过主动探知与被动告警两种模式,监测设备失效信息并主动告警,提高了数据中心设备的管理效率。
关键词:简单网络管理协议;监控系统;安全性
中图分类号:TP308 文献标识码:A 文章编号:1007-9416(2018)09-0112-02
1 引言
随着IT技术的发展,数据中心的作用和地位日益重要,承载的设备数量日益庞大,设备类型日益复杂。传统形式上,采用对机房进行定时的人工巡检,被证明是一种低效和滞后的监控方式,系统管理员需要实时或准实时的了解设备的基本状况,如网络是否联通、硬件是否故障、UPS电压是否在正常范围内等。针对上述需求,中国农业银行上海市分行考察了多种解决方案,认为简单网络管理协议(Simple Network Management Protocol,SNMP)具有通用与灵活等优点,可以在原设备的基础硬件上实时地进行监控。
尽管有着良好的易用性,但SNMP协议自身存在着一些缺点,主要亟待解决的问题是安全性。在考虑灵活与通用的同时,需要同步考虑安全问题,SNMP v3版本的出现,其两个核心模块是基于用户的安全模型 (USM) 和基于视图的访问控制模型 (VACM),大大增强了安全性,因此,本文采用了SNMP v3版本的技术进行具体实施。
2 SNMP协议安全性分析
SNMP使用Community名称进行认证,而其默认的名称Public通常不会被管理员刻意更改,而尝试使用此名称进行网络访问,通常能够轻易获得访问许可。同时,此协议在传输时并不加密,使用网络抓包工具如Sniff能够轻易抓取SNMP协议报文,并分析出使用的Community名称。还有一些特别的技巧可以逃避Community认证,例如通过对非标准字段进行注入,导致缓冲区溢出,从而构成一次成功的攻击。
SNMPv3为了解决安全性问题,主要引入了USM(基于用户的安全模型)和VACM(基于视图的访问控制模型)两种技术。USM提供了认证和加密功能,VACM确定用户是否允许访问特定的MIB对象以及访问方式。USM引入了用户名和组的概念,可以设置认证和加密功能。它指定使用HMAC-MD5和HMAC-SHA进行身份验证,指定使用CBC-DES进行信息加密。在提交RFC 2574(USM)时,这三种安全协议被认为是(可接受的)安全的。而VACM技术定义了组、安全等级、上下文、MIB视图、访问策略五个元素,这些元素同时决定用户是否具有访问的权限,只有具有了访问权限的用户才能管理操作对象。
3 设备监控系统的设计
本系统的设计目标是监测数据中心各类设备以获得性能参数,主要有主动和被动两种模式。其中主动模式是由服务器主动通过OID向客户端进行询问,包含CPU负载,风扇转速,磁盘使用,UPS电压,网络流量等性能数据;被动模式是通过客户端主动向服务器发起异常消息通知,例如网络中断,磁盘拔出,风扇停转,或者是某一部件失效。一个典型的异常消息如下所示:
2017-09-14 10:15:32
2 Green Red alarm.NetworkRedundancy LostAlarm - Event: Lost Network Redundancy (74862)
Summary: Lost uplink redundancy on virtual switch "vSwitch1". Physical NIC vmnic5 is down. Affected portgroups:"VLAN1001", "VLAN4000".
通过上述两种监测,可以有效的监控和探知设备的使用状态,根据历史数据进行分析和预警。
3.1 总体设计
通过对 SNMP 协议的研究,设计和构建了基于B/S 架构的系统结构模型,如图1所示。
由于采集产生了大量数据,这些数据以分topic的类别被投送到kafka集群,由下游消费者接收消息并进行分析,最后将分析结果入库或放入HDFS。从而形成一个经典,可插拔的生产-消费者架构。按我行的情况设计,针对不同的设备使用了不同的消费者进行数据接收和分析,例如ATM的消费者,UPS的消费者,以及vCenter的消费者。
采用生产-消费者这一经典架构,可以通过调节生产和消费者的数量使系统效率达到最大化,例如我行的ATM数量较多,从而可以通过部署多个消费者的形式处理大量的ATM性能数据。
3.2 功能设计
3.2.1 数据采集
数据采集处于系统的生产者的位置,通过主动询问的方式采集设备的性能数据,并将采集得到的数据结果按不同的topic放入kafka队列。 主要是通过各个厂商提供的MiB文件,提取系统需要采集的关键指标,如UPS的电压,服务器风扇转速等数据,通过给定的OID向设备进行询问,将返回结果解析后放入消息队列。该功能作为系统的基础部分,通过时间驱动来确保实时性。
3.2.2 数据分析
数据分析作为系统的消费者存在,主要接收来自数据采集功能采集的基础数据,包括主机信息、IP信息、磁盘信息、进程信息、CPU信息等数据,结合设备的具体特征,根据历史数据得出baseline以及正常浮动范围,对于超出浮动范围的部分编制告警信息,并发送给运维人员。
3.2.3 数据展示
数据展示主要是以图表方式呈现被监测设备性能历史数据,其图表如图2所示:
3.2.4 告警
对于超过浮动阈值的性能数据,以及被动接收到的错误信息,将主动通过短信,微信以及语音电话等方式通知运维人员。实现方式是将编制的告警信息放入kafka上另一个topic的消息队列实现,由另外一个告警消费者负责从中读告警内容并分发给告警人。
4 结语
我行的设备监控系统以SNMPv3为基准协议,实现了对数据中心设备资源的实时监控,并将监测到的性能数据以图形方式直观显示出来,提高了设备管理的工作效率,为设备管理提供了一种安全高效的方式。同时完成了对于失效事件的主动告警,将错误信息及时推送给运维人员,将反应时间由分钟缩短到了秒级。由于使用了高安全性的SNMPv3协议,系統的安全性也得到了较为完善的保障,达到了性能与安全性的平衡,在类似系统的设计中具有一定的借鉴意义。
参考文献
[1]施胜强.浅析计算机网络管理[J].计算机光盘软件与应用,2012,(16):36-38.
[2]赵小录.SNMPv3在商业交换机中的研究与应用[D].广州:广东工业大学,2014.
[3]杨晓东,刘玉珍,张焕国.基于SNMP的安全威胁及防范策略分析[J].计算机工程,2004,30(22):122-124.
[4]王金京.云计算环境下的计算机网络安全问题探析[J].网络安全技术与应用,2015,(8):37-38.