摘要随着电信行业数据业务的不断发展,数据网络监测和管理的复杂性将不断增加,对实时的电信网络监测系统的需求也越来越强烈。文章介绍了一个基于简单网络管理协议(SNMP)的网络监测和管理系统的设计过程。系统主要使用SNMP协议,对电信网络主要是IP网络进行全面监测及Web呈现。
0、引言
当今社会对网络的安全和网络性能要求越来越高,与此同时,电信业务的蓬勃发展、数据网络的日益壮大,对网络特别是电信网络进行监测和管理软件的需求也就越来越强烈。正是由于这种强烈的需求,越来越多的企业开始致力于网络监测管理软件的设计和生产。
网络监测管理在近几年发展非常迅速,众多网络监管软件纷纷浮出水面。总体来说,现阶段较流行的网络监管软件主要有以下三种实现方式:基于嵌入式、基于移动代理技术[1,2]和直接基于系统协议。考虑到本系统面向电信网络以及实现的复杂程度,我们采用第三种方式来对系统进行实现。
当前,有两种网络管理协议在计算机网络管理中占主导地位:一种是开放系统互连组织(OSI)提出的公共管理信息及协议(CMIS/CMIP);另一种是Internet工程任务组(IETF)提出的简单网络管理协议(SNMP) [3,4]。IETF指定的SNMP协议显得简单实用,容易实现,因而被迅速地推广开来,得到了广泛支持。
SNMP是在TCP/IP协议栈之上的应用层协议,由三个部分组成:管理信息结构(SMI)、管理信息库(MIB)和SNMP协议[5]。SNI描述了管理信息的标准符号,最关键的原则是被管理对象的定义要用抽象语句定义 ASN.1来描述。MIB用来贮存管理信息,可把一个管理信息库比作一个虚拟的信息仓库。SNMP协议是网络管理站(manager)和代理(agent)之间的异步请求和响应协议。网络管理信息的数据由SNMP从MIB库中获取,再经过网络管理系统应用程序的过滤、分析、加工处理后,存储于 Web服务器的数据库中。
本文介绍的是基于SNMP协议和Web呈现的对电信网络主要是IP网络进行全面监测的监测平台。此监测平台可用于企业内部局域网络的监测和管理,也可用于一个包含多个局域网络组的统一网络,是一个全面的网络监测软件。
1、系统结构设计
1.1系统的物理部属
系统中的实体有:根监测器、数据库服务器、Web服务器,在各个子网中再采用叶监测器的方式从而形成一个监测器树的分布式监测系统。监测器分布式地部署在各个被监测的数据网内。每个监测器负责一个网段(可以使用手工来设置)。监测器探针(以下简称探针)将自己负责的网段中设备所有的SNMP信息以轮询的方式采集下来,并且存储到数据库中去。然后使用Web服务器将客户端浏览器需要的信息读取出来,传递给浏览器端。浏览器端根据用户的各种要求向Web服务器提出数据要求,Web服务器审核后从数据库中提取需要的信息通过浏览器端显示给用户。
叶监测器部署在各个规模适当的局域网内,这是出于轮询性能的考虑。要保证整个系统数据采集的高性能,就必须科学地规划叶监测器在整个网络中的部署,而在局域网中的部署就是整个系统的最小单元。本文是基于一个局域网为背景的测试环境。
1.2系统三层架构
系统采用三层结构:数据采集层面、数据存储层面、数据呈现层面。采用数据库将底层的分布式数据采集和呈现层的浏览器/服务器(B/S)架构完全隔离,增强了系统的可扩展性、稳定性、开发的并行性。SNMP检测系统的三层架构如图1所示。 图1 SNMP检测系统的三层架构点击此处查看全部新闻图片
其中数据采集层包括SNMP信息采集、Trap信息接受、数据库入库、拓扑发现和守护进程等子模块;数据存储层包括系统配置表、监测信息表、Trap告警表、拓扑信息表、用户权限表、统计信息表、用户定制表等子模块;数据呈现层包括数据库访问、设备状态实时显示、故障告警、性能报告、用户定制等子模块。
1.3系统接口描述
SNMP检测系统的三层架构中接口描述如图2所示。 图2系统三层架构中接口描述
A接口:a)SNMP监测器将所有采集到的准实时的数据先存在文件中,然后再导到数据库,由定时器(1分钟)来触发数据传送模块,周期地将根监测器中的数据汇集到Oracle数据库中去。b)如果SNMP监测器接收到网络设备所发来的Trap信息(实时数据),系统使用数据传送模块立即将Trap信息送到对应的紧急故障报警数据库中去。
B接口:Web服务器从数据库服务器中的读取数据。在数据库中存储了三类数据:非实时数据(最大支持1年)、准实时数据(1分钟)、实时数据(小于5秒)。
C接口:将数据库统计分析模块所要的数据取出来。
D接口:位于数据库统计分析模块与WebServer之间,接口为数据库中的各个统计分析结果表使用XML封装;并且要支持准实时的数据更新;还要实时地刷新本在的紧急故障报警数据库。
E接口:HTTP接口。
2、系统的设计和实现
2.1系统的开发环境和工具
本课题使用Linux作为操作系统平台,使用MagicC++可视化IDE作为开发工具,使用CVS(Linux平台)和VisualSourceSafe(windows平台)进行代码和文档版本控制,使用Oracle进行分布式数据库部属,前台的界面呈现部分使用了Apache服务器以及PHP语言、HTML语言、JavaScript语言等工具。
2.2SNMP数据采集层的设计和实现
SNMP数据采集层主要由五个模块所组成,分别是:日志模块、SNMP采集模块、Trap消息接收模块、DEAMON模块和数据库接口模块。其中SNMP采集模块和Trap消息接收模块是数据采集层的核心模块。
2.2.1SNMP数据采集模块的设计和实现
SNMP数据采集模块的主要功能是:从数据库的系统配置表中的设备监测列表中取出一个被监测网络单元的IP地址,根据配置表中用户定制监测项的MIBID来轮询网络单元的各个MIB值,并将值存入链表中。等全部MIBID查询结束后,将所得到的链表存入到对应的数据文件中去,继续轮询下一个网络单元。全部网络单元拓扑查询结束后,回到等待状态,使用信号解析子模块解析信号,以判断是结束还是继续查询,或者是应答监测模块的监测信号。
SNMP数据采集模块由6个子模块组成,它们分别是系统调度子模块、MIBID查询引擎、文件读写接口、链表操作接口、信号解析接口、数据库接口。其中最重要的是MIBID查询引擎。
MIBID查询引擎是通过使用修改net-snmp软件包中的snmpget和 snmpwalk来构成的,它可以通过文件读写接口将MIB子树ID配置文件读出来,并且按照ID值使用引擎发出SNMPGETNEXT请求,等待消息回来。如果不成功,记录模块将出错信息存入到日志文件中去,如果成功完成SNMP查询操作,则链表操作接口将数据插入到链表中。同时查询此次设备轮询是否已经完成,如果完成,使用文件读写接口将链表存入文件;如果未完成,继续查询。然后,调用信号解析接口按照别的进程传递过来的信号分类处理。
2.2.2Trap消息接受模块的设计和实现
Trap消息接收模块的目的是负责接收SNMP发送来的Trap消息,并且将此消息即刻写入到数据库中去。
Trap接收模块的流程如下:
1)Trap消息以守护进程的方式运行于系统中,监测系统的触发条件有两个:a)来自于所监测网络单元的Trap消息。b)来自于DEAMON进程的运行监测信号。
2)下面就是从这两个触发条件开始:
如果是a),那么将这条Trap消息传给消息包裹函数,打上本监测系统的标记,然后调用入库模块将包裹后的信息存入到Trap信息表中去。
如果是b),那么调用监测信号回应子模块回应监测信号。
2.3SNMP数据呈现层的设计和实现
SNMP数据呈现层根据功能可以划分为五个主要的模块,分别为:数据库访问模块、设备状态实时显示模块、故障实时告警模块、性能报告模块和用户定制模块。主要利用HTML语言构建页面,PHP语言的访问数据库及绘图语句实现了上述五个模块的功能。
2.3.1数据库访问
数据库访问模块分为数据库读取子模块和数据库录入修改子模块,主要用到了PHP语言对Oracle数据库的连接及操作的函数。
2.3.2PHP绘图语句
性能报告模块主要使用PHP语言中的绘图函数如Imagecreate()、 Imagecolorallocate()、Imageline()、Imagestring()、Imagerectangle()、 Imagefillrectangle()、Imagefontheight()、Imagefontwidth()。通过这些函数实现了对设备的主要信息的柱状图、曲线图的显示,使用户对设备的各种信息的变化对比能有一个直观的了解。
3、运行结果及分析
3.1SNMP信息采集模块运行输出
通过遍历目的主机的SNMPMIB树所获得的结果可看到:a)系统的一些信息,包括系统的版本号、启动时间、描述、系统名、位置、服务等信息。b)对此主机系统interface的描述。c)每个接口的详细信息,接口的类型,接口的最小传输单元。
3.2日志模块输出
日志模块的输出格式,主要包括日志的描述信息、日志输出的时间、日志类型、日志导出程序、主机标识等信息。
3.3系统界面图
图3显示的是在局域网中进行测试的主界面,系统会根据数据库中存储的局域网组信息自动生成局域网组的树型菜单,由于在局域网中进行测试,所以图显示的只有一个局域网组。右边显示的是此局域网组的实时设备状态,将鼠标放到设备上,可以看到相应设备信息,点击设备,可以进入详细信息页面,查看此设备的详细信息。 图3系统主界面
3.4性能报告曲线图
本系统可以根据用户的需要,对目标网络中的各类设备,包括交换机、防火墙、路由器、主机、服务器等进行监测,获取设备的端口信息、流量信息、故障信息以及各种性能信息。图4显示的是测试局域网内一个交换机从12:00~17:00的平均流量曲线图。同样的数据还可以用柱状图显示。 图4交换机平均流量曲线图
4、结束语
本文主要论述了SNMP电信网络监测系统主要架构,该系统成功实现了大部分相关的基本功能,如SNMP信息采集模块、日志模块、数据库接口模块,以及在各模块中作为切面抽象出的链表操作接口、文件操作接口、SNMPTrap模块中的 Trap消息监听接口,以及通过Web服务器的状态信息实时显示、故障实时告警,图形化报表显示、用户定制等功能。该系统在SNMP轮询效率及呈现美观性方面还有待于进一步提高。
分享到:
相关推荐
总之,基于SNMP的数据采集模块设计和实现对于构建高效可靠的网络管理系统至关重要。通过对SNMP协议的深入理解和优化,可以有效地处理大规模网络环境中的管理信息,从而更好地支持网络的运行和维护。
【标题】: "基于Java+JMX的...总的来说,"基于Java+JMX的SNMP数据采集的研究与实现"是一项旨在利用现代Java技术和网络管理标准来提高网络设备管理效率的科研工作,其成果对于网络管理和自动化领域具有重要的实践意义。
综上所述,基于SNMP的通信网络性能管理模块设计与实现是网络运维中不可或缺的一部分,它通过高效的数据采集和分析手段,确保网络运行的稳定性和效率,及时发现并解决问题,为用户提供优质的网络服务。
本文将深入探讨如何使用Java语言和AdventNet SNMP API来设计和实现一个基于SNMP/MIB的网络数据获取系统。 首先,SNMP是一种应用层协议,运行在TCP/IP协议栈上,主要用于网络设备的管理和监控。它提供了标准的通信...
标题中的“JAVA基于SNMP网络设备MIB信息采集”是一个典型的IT计算机领域的研究主题,它涉及到网络管理、Java编程和SNMP(简单网络管理协议)技术。这篇毕业论文设计可能是关于如何使用Java语言来实现一个SNMP客户端...
1. **数据采集**:通过SNMP协议与网络设备通信,定期或按需收集流量数据,如入站和出站字节数、数据包数等。 2. **数据分析**:对收集到的数据进行统计分析,识别流量模式,如高峰时段、异常流量等。 3. **报警机制*...
《基于SNMP的交换机性能管理系统的实现》这篇文章介绍了一种基于简单网络管理协议(SNMP)的交换机性能管理系统的设计与实现方法。 #### 网络管理协议(SNMP)简介 简单网络管理协议(Simple Network Management ...
**JAVA基于SNMP网络设备MIB信息采集毕业设计** 本毕业设计旨在提供一个基于简单网络管理协议(SNMP)的网络设备MIB(管理信息库)信息采集系统。该系统采用Java语言开发,能够对支持SNMP协议的各类网络设备进行数据...
- **数据采集**:从监控信号采集模块获取实时数据,可能通过A/D转换器实现。 - **异常检测与报告**:如果检测到异常情况,通过发送Trap报文通知管理器,报文中包含异常信息,以便采取相应措施。 - **数据存储**:在...
本文探讨了一种基于SNMP的Web方式服务系统管理模型,该模型利用代理通过外部脚本程序收集系统服务管理信息,并通过对应用服务系统进行实时监控和统一管理,实现了以Web方式进行远程管理的目标,从而增强了管理工作的...
本设计实现了基于51单片机的嵌入式SNMP代理器,通过精心设计的硬件模块和软件实现,使得低成本的单片机也能胜任网络管理任务。通过A/D转换采集现场数据,通过以太网与管理器通信,当检测到异常情况时,及时发送Trap...
《基于SNMP的网络流量监控系统设计与实现》一文中详细介绍了该系统的体系结构和实现方法。整个系统主要由数据采集子系统和Web管理子系统组成。 - **数据采集子系统**:负责采集网络设备的原始流量数据。通过SNMP...
通过以上设计,51单片机能够实现基本的SNMP代理功能,包括数据采集、异常检测、Trap报文发送以及与管理者的通信。这样的设计使得嵌入式代理器能够在各种环境下,尤其是对成本和体积有严格要求的场合,提供有效的网络...
首先,"基于SNMP网络设备MIB信息采集项目说明报告.doc"应该是项目的设计文档,详细介绍了系统的目标、功能、架构和实现方法。这份文档可能会涵盖以下几个关键点: 1. **项目目标**:系统旨在自动收集网络设备的MIB...
- 信用卡业务数据挖掘的应用,通过整合SNMP的数据采集能力,能够更加快捷和安全地实现对网络中信用卡业务数据的统计和分析。 #### 相关技术及应用领域 - 数据挖掘技术在多个领域有着广泛的应用,如信用卡业务数据...
《JAVA基于SNMP网络设备MIB信息采集》的毕业设计项目深入探讨了如何利用Java编程语言来实现SNMP(简单网络管理协议)对网络设备的MIB(管理信息库)信息进行采集。该项目结合理论与实践,为网络管理员提供了一种有效...
### 基于SNMP和JAVA的IP网络拓扑生成的研究 #### 摘要 本文探讨了一种基于SNMP(简单网络管理协议...通过实时数据采集、智能处理和Web界面展示,实现了网络管理的自动化和智能化,对于提升网络管理效率具有重要意义。
在本项目中,开发者利用Visual C++的MFC(Microsoft Foundation Classes)库来构建用户界面和实现应用程序的逻辑。 SNMP是一种广泛用于网络设备管理的协议,它允许网络管理员远程监控和配置网络设备,如路由器、...