基于SNMP 的网络监测系统的设计与实现
2021-06-25杨海涛
曾 艳 钱 浩 杨海涛
(防灾科技学院 信息工程学院,河北 三河065201)
1 概述
21 世纪信息技术发展迅速,局域网络的建设越来越多,网络也越来越复杂,所使用到的网络设备也越来越多样。传统的网络管理和检测手段效率低下,故障定位模糊,对于多厂商设备的监测支持不够,极大的耽误处理故障和错误的时间。随着越来越多的厂商支持SNMP 协议,那么基于SNMP 来实现的统一管理监测手段得以蓬勃发展,利用SNMP 协议可以实现网络设备资源、链路状态、数据流量以及拓扑结构的管理。SNMP 协议的支持极大地帮助了运维人员发现和处理故障,对于预防故障也有一定的帮助作用。
为了兼顾多数网络设备,并且给网管人员提供一定的辅助能力,本文利用现在流行的开发框架结合SNMP 等相关技术设计并实现了网络监测与管理系统。
2 相关技术
2.1 SNMP 简单网络管理协议
SNMP 即简单网络管理协议,基于IP 网络标准的协议,是为了方便用户管理网络设备而设立的网络协议[1]。路由器、交换机、服务器、打印设备、工作站,以及调制解调器等网络设备均支持该协议。SNMP 管理MIB 信息库来存储设备的相关数据,供管理端获取以达到监控设备的目的。SNMP 广泛应用于网络关系系统中以显示网络的连接情况和配置情况。
2.2 MIB 信息库
MIB 信息库是SNMP 协议标准的一部分,该部分主要规范地定义了被管理设备的一系列能够被管理端访问的信息数据,这些信息数据在将来被访问时会按照一定的格式返回给管理端程序,管理端程序利用这些信息进而实现设备监测与管理。被管理的对象可以是任何一个网络资源,只要该资源实现了SNMP 协议规范,并且符合MIB 库存储的数据格式。被管理对象的集合被称为MIB。它定义了包括对象的名称、对象的访问权限以及对象的数据类型等被管理对象的一系列属性,每个SNMP 设备(Agent)都有自己的MIB。从这个意义上,它也可以看作是NMS(网管系统)和Agent 之间的沟通桥梁[2]。
IETF 采用OID 这种数据结构来表示MIB 信息库中的数据。MIB 的结构类似一棵倒立的树,树对应的节点保存着设备对应的信息,管理端就是通过这些OID 来获取设备的各种信息。
2.3 Springboot
Springboot 是一个全新的开源的轻量级web 框架[3],是由Pivotal 团队在2013 年开始研发,不仅继承了Spring 框架原有的优秀特性,而且还通过简化配置来进一步优化Spring 应用的整个搭建和开发过程。另外Springboot 通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
2.4 Vue
Vue.js 是一套构建用户界面的渐进式框架。与其它重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,也非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue 生态系统支持的库开发的复杂单页应用。
3 局域网监测系统的设计与实现
3.1 网络监测系统的主界面
如图1 所示,网络监测系统主界面从左到右依次为全网信息统计、故障发生次数、设备统计、监测点统计、本地时间、服务器CPU 使用率和服务器内存使用率七大部分。主页面可以随时监测到网络中的设备状态、当前故障情况和本系统运行服务器的状态。
图1 系统主界面
3.2 设备管理模块的设计与实现
设备管理功能主要的任务在于对局域网的所有可见设备进行信息添加、修改和备注,对设备的端口进行查看、开启和关闭、添加描述信息,如图2 所示。在对网络设备进行添加时,提供了Excel 导入设备列表,系统自动在网络中搜索列表中的设备,发现并且能够成功进行监测,则将该设备添加到设备库中,为后续其他功能的开发建立基础。
图2 设备管理图
设备管理采用的是树形表格展示,将对应的设备类型划分为网络设备、服务器设备、其它设备以及未知设备。设备管理是其它模块实现的基础部分,为了获取到足够的信息,以及能够及时的对设备进行信息捕获,需要采用多线程的方式针对多个批量设备进行轮询数据捕获,这种多线程主动捕获数据的方式性能更好,能够及时的获取设备数据,避免了长时间间隔导致滞后问题。同时为了更进一步的提高信息捕获效率,SNMP Trap是必不可少的一环,Trap 报文能够让网络设备主动的向管理端发送自己的变更信息,这些数据对故障的诊断和定位有着不可低估的意义。
设备管理中基础信息的收集包括CPU 使用率、内存使用率、接口描述、接口流量大小以及接口状态,如图3 所示。
图3 CPU 和内存统计图
3.3 故障管理模块的设计和实现
3.3.1 故障管理功能
故障管理模块的设计方式如下:在设备信息数据采集过程中,会对每个设备进行故障阈值的设置,针对CPU 使用率、内存使用率以及链路流量设置多个预设值,该预设值通过用户自定义设置,系统默认使用率超过85%为设备危险,超过95%为设备故障,此时认为设备压力超载。那么,需要管理员及时查看故障原因,这种方式的故障管理实现方式为主动监控。另外,针对时效性,需要加上网络设备的Trap接收并且分析。Trap 报文是网络设备主动向管理端发送的报文,该报文内容可由管理员在网络设备上进行命令配置,不同设备的Trap报文封装的内容有所不同,因此为了方便管理员查看,系统需要记录Trap 报文中类型字段,以此来判断设备发生了何种变动或者故障。该故障收集方式称为被动监控。通过两种监控方式,系统会在不同的时间段接收数据,并且将数据进行处理后存入数据库,然后从数据库中将数据进行可视化展示。整个故障模块架构图如图4所示。
图4 故障模块架构图
两种监控方式通过设置监测点进行轮询监测,监测信息点包括SNMP 连通性、PING 连通性、接口状态、CPU 使用率以及内存使用率,故障视图页面如图5 所示。
图5 故障视图界面
对于故障按照未处理、正在处理以及已忽略三种情况进行分类,另外,可以对每种故障进行详情查看,针对故障条目可以添加额外的备注信息,以供网络管理人员进行查看。
3.3.2 故障统计功能
故障的统计也是非常重要的一种标准,统计各种故障类型的频率,以及出现在哪些设备上的统计,能够为管理员提供故障分析和统计信息,让故障出现的源头得以体现,故障统计界面如图6 所示。
图6 故障统计图
统计方式分为监测点出现次数统计、TOPN 故障次数统计以及特定设备故障类型统计。监测点出现的频率能够反映设备的哪些方面容易出现故障,从而有利于网管人员更加留意这些地方,而按照特定IP 设备统计故障,有利于分析某台设备的故障情况。
3.4 流量监测模块
流量监测功能的设计与实现:
流量监测的实现需要借助于各个设备的端口进出流量的统计,在端口相关的MIB 中有相关的参数记录。只要掌握计算方法,就能够通过端口的参数值,得出流量情况。
常用的性能公式:
通过上述的公式和算法,对监控设备的端口数据加以处理即可得出想要的流量统计信息。设备端口的流量监测和统计对于网络监测、流量预测是非常重要的指标和参数。经过算法计算后,可以将数据可视化展示出来,供网络管理人员查看和分析,有利于当前网络的检测,能够从宏观层面来监测设备情况,从而做到“动静结合”的效果,所谓的“动”是指流动的流量数据,每时每刻无不在变化,通过统计不同时间段的各个设备端口的流量情况,可以针对于该设备进行较为详细的健康状态的检查,流量统计界面如图7 所示。
图7 流量统计图
所谓“静”是对于设备管理模块来说,方便网络管理员对设备进行总览、查看以及统计数量,这种非实时性的信息,提供了一种便捷的管理手段,将“动”和“静”相结合,整个局域网的设备监测就有了更为强大的功能。
结束语
随着互联网和计算机相关技术的飞速发展,用户对计算机网络的使用逐渐增多的同时,也对网络设备的考验越来越严格,对网络越来越依赖,给网络维护带来了各种挑战,对于网络监测系统的要求也逐步提高。SNMP 作为一个广为使用的网络管理协议,为网络监测系统的设计实现带来巨大的便利。