王 韦,张 扬,盛一楠,闫 猛,陈 静
(1.湖北省地图院,湖北 武汉 430074;2.湖北双可科技有限公司,湖北 武汉 430074;3.襄阳市城乡规划编制 研究中心,湖北 襄阳 441000;4.江苏省测绘工程院,江苏 南京 210013;5.河北省制图院,河北 石家庄 050000)
网络设备是湖北天地图系统中的核心硬件部分,包括服务器、交换机和路由器三大网络设备。如何对网络设备进行完善的监管,保证其24h不间断运行,这是湖北天地图网站必须重点考虑的问题。目前,网络监控系统分为两类:一类是网络设备厂商研发的与设备配套的软件;另一类网络监控软件是第三方通用软件[1]。前者需要和配套软件一起使用,对于多种网络设备,可操作性差,且售价过高。后者的商业软件都拥有较为完善的管理控制能力,能够对网络设备及其周边的各类设备进行监控[2],但湖北天地图网站的网络设备监控仅仅需要其中模块的一小部分,如果购买不仅昂贵且十分浪费。
针对这种情况,项目组研发了针对湖北天地图网站的网络设备监控系统。该系统前期已完成用户管理、IP和日志管理、流量总计等功能。本次主要基于SNMP进一步完善网络设备监控功能,包括服务器、路由器和交换机的监控,短信故障报警和历史查询等功能。
项目组基于SNMP协议,采用C/S架构和B/S架构混合的模式,对网络设备安全全面监控和集中管理,保证系统安全稳定运行。采用C/S和B/S混合架构原因在于:①基于C/S架构的主动轮询、短信报警,能够充分发挥计算机的处理能力,全天候向管理人员发送异常情况,并通过短信方式,获得网络运行参数数据;② B/S架构能够使用户便捷地在任何地方用浏览器去查看网络设备的实时或者历史运行情况,有效减少管理人员为排除故障来回奔波耗费大量时间和精力,且一期的功能采用的是B/S架构。整个系统架构模型分4个层次,如图1所示。
图1 系统架构模型图
TCP/IP网络管理系统的基础是含有被管理元素信息的数据库,其在TCP/IP和OSI环境下称为MIB,MIB是一个树型结构的数据库,每个被管理资源表示成一个对象[3]。 湖北天地图的网络设备是服务器、路由器、网络交换机,因此系统是专门针对MIB中这些对象的值进行采集。
利用SNMP的操作之一(GetRequest指令),网络设备实时监控模块获得MIB对象的值,然后进行分析和处理,该模块为C/S架构。
采集处理后的数据,一方面用于Web页面运行情况查询和报告,方便管理员查询设备实时运行性能情况;另一方面通过分析及阈值判定,超过阈值实现短信报警。
按照设备和接口的不同,系统将采集的数据存储到相应的txt文本文件中。这些数据将为系统故障情况查询提供依据。
主要用于采集、处理、解析和存储监控目标数据,实时监控设备运行情况,发现超过阈值的设备,及时短信报警。功能包括监控参数设定、监控控制和短信报警。
1)监控参数设定。对被管理对象进行阈值设置,通过设置阈值进行检查,在服务器等网络设备出现性能问题时及时发送警告。具体包括监控间隔设置、接口丢包率和利用率阈值设定。功能页面如图2所示。
图2 监控参数设定
2)监控控制。控制管理服务器、交换机和路由器的实时监控。通过轮询的方式主动、定时采集设备的性能数据,对数据进行整理计算。网络设备(服务器、交换机和路由器)的监控采集对象包括CPU、接口使用情况、接口利用率、接口丢包率等。通过这几类数据,基本可以掌握设备是否在正常运转、是否满足用户对性能的要求。本模块主要采用SNMP的Get机制,根据设备的IP和Community名称,固定某一时间间隔读取网络设备相关信息。服务器和路由器拥有参数IP和community值,但由于地图网的交换机是两层交换机,没有IP地址,所以采用给交换机的VLAN配置IP地址的方式获得这两个重要参数值。功能页面如图3所示。
图3 监控控制
3)短信报警。在系统监控到异常信息时,第一时间通过短信方式报告给管理人员,缩短网络故障处理时间,降低网络设备故障造成的不利影响。短信故障报警模块包括联系人管理、各种监控变量有效值设定、探测时间间隔设定和故障报警。①联系人管理:对联系人进行管理,方便事故发生后,及时通知有关人员。②监控变量有效值设置:任何受监控的参数都可以指定一个有效值范围,当这些参数不在有效值范围时,系统将通过手机短信的方式进行通知报警。③探测时间间隔设定:可以设定监测变量的探测时间,如3s探测一次。④报警:当探测到服务器故障时,发送短信通知管理员,以方便故障及时得到处理。
用户通过Web页面远程随时随地查看网络设备的运行状态。功能包括网络设备实时监控和历史数据查询。
1)网络设备实时监控。具体功能为服务器监控、路由器、交换机的基本信息获取、设备接口基本信息获取、监控接口利用率和丢包率、设备历史监控数据实时查询。图4为路由器监控;图5为服务器监控;图6为交换机监控。
图4 路由器监控界面
图5 服务器监控界面
图6 交换机监控界面
2)可视化性能报告。实时处理数据,生成性能趋势曲线,以图形的方式显示当前网络设备性能状态。利用MsChart控件,根据接口的数量动态显示实时监测到的历史数据,形成统计图,方便用户查看和分析。MsChart是Windows系统中Visual studio自带的一个ACTIVEX控件,它功能强大,应用广泛,具有支持随机数据和随机数组,动态显示;支持所有主要的图表类型;支持三维显示等特点,图7为可视化性能报告部分截图。
图7 可视化性能报告部分截图
系统所使用的关键技术为简单网络管理协议(SNMP),它是由互联网工程任务组(IETF)定义的一套网络管理协议[4]。目前以其自身的优越性已经成为网络管理的协议标准[5]。网络设备管理系统运行在 SNMP协议之上,可以监控连接到网络上的各种设备,同时收集设备的参数和运行信息[6]。在基于SNMP协议的网络管理系统中,关键的技术就是对于MIB(管理信息库)的访问[7]。通过功能模块的计算或解析,超过阈值就短信报警,否则存储到文本或数据库中或呈现给用户。
1)采集对象确定。在标准的网络管理信息库(MIB-II)中,其中两个与本系统有关的类别为:
系统组(system组):被管理对象(如主机、路由器等设备)系统的总体信息。本系统用到其对应的以下对象:sysDescr——设备描述信息;sysName——系统名称。
接口组(interface组):各个网络接口的相关信息。本系统用到其对应的以下对象:ifNumber——接口数量;ifInOctets——接口发送的字节数;ifOutOctets——接口接收到的字节数;ifinUcastPkts——输入的单播包数;ifoutUcastPkts——输出的单播包数;ifinNUcastPkts——输入的非单播包数;ifDutNUeastPkts——输出的非单播包数;ifinDiscard——接口丢弃的输入包数;ifoutDiscard——接口丢弃的输出包数;iISpeed——接口传输速率;portNam——端口的名称;ifAdminiStatus——接口是否被启用;ifOperStateus——接口是否在工作。
2)性能参数计算。采集对象确定后,需要通过计算得到系统需要的性能指标,本系统用到的性能指标包括丢包率和利用率。以下给出这两个指数的计算方法。
●丢包率
丢包率是指在一定的负载下,由于缺乏资源而未能被转发的包占应该转发的包数的百分比,其作用是反映被测设备承受特定负载的能力[8]。该数据的异常是网络设备性能出现问题的必要指标。通常来说,如果丢包率的正常范围高于15%,则该网络出现异常。
丢包率的计算公式如下:
丢包率的计算公式中的某些参数是IF组MIB变量取得的,如式(2)所示:
式中,dropRate表示包丢弃率;ifinDiseard2和ifinDiscard1是指两个不同时刻的ifInDiscard变量的值,其余变量的含义与之相同。ifOutDiscard:输出方向丢弃的报文数;ifInDiscard:输入方向丢弃的报文数; ifInUcastPkts:发送给上层协议的子网单播通信的报文数;ifInNUcastPkts:发送给上层协议的子网非单播通信的报文数;ifOutUcastPkts:上层协议请求发向子网的单播通信地址的报文数;ifOutNUcastPkts:上层协议请求发向子网的非单播通信地址的报文数。
●接口利用率
接口利用率表示流过指定接口的字节数与接口带宽的百分比。计算如式(5)所示:
式中,△t为t时间长;△ifInOctets为t时间内的输入字节数;△ifOutOctets为t时间内的输出字节数;ifSpeed为接口的传输速度。
3)数据解析。在MIB库中读取到的原始数据,除了需要利用公式计算得到的监控数据,还有一些是需要进行数据解析,从而适合管理员去理解。因此总结ifAdrninstatus和ifOperStatus的组合意义才能得出端口的实际状态意义,下面通过表1来说明这种概念。
表1 ifAdrninstatus和ifOperStatus的组合意义
无论是运行地图服务的应用程序,还是数据库服务等核心IT服务,网络设备的安全对业务系统十分的重要。此次实现了基于SNMP的网络设备监控系统,满足了管理人员的日常需求。但也存在不足之处,即系统目前依靠管理端的主动轮询方式发现异常,快慢受制于轮询的周期,后期如果能采用主动发送异常报告,以事件为驱动,将能更好地提升系统的性能[9]。