基于SNMP协议的广播发射台网络监控管理系统

  • 优秀论文奖
  • 文章作者:中国新闻技术工作者联合会 2021/12/30-04:43 阅读: loading...

    李熙浤

    (国家广电总局七五一台 福建 邵武 354011)

    摘要 本文介绍了简单网络管理协议(SNMP)的框架结构和通信过程,结合我台网络系统现状设计了一个JAVA平台下基于SNMP协议的网络监控管理系统,并简单描述了该系统的基本功能和实现过程。 
    关键词 网络管理 SNMP 管理信息库(MIB) JAVA; 
    1 引言 
    近年来,随着西新工程和无线局的统一部署,我台添置了大量的网络设备,使广播发射工作向“自动化、信息化、网络化”方向发展。这些技术的改造大大减轻了相关技术人员和值班员的工作量,并进一步推动广播发射工作向“有人留守、无人值班”的工作模式转变。但是随着网络技术的迅猛发展和广泛应用,网络安全问题日益彰显,有数据表明,一个普通的局域网络在一年内平均出现的重大故障多达20次,产生长达16个小时的服务失效时间。如果因为网络通讯故障影响了我台的安全播出发射工作,那很可能会造成异常严重的后果,如何保证网络系统可靠、高效、安全和稳定地运行,各设备资源能否得到充分利等网络管理问题已经成为我们不可忽视的问题。在日常维护方面,如果仅仅靠人工模式对网络中的设备一台台的进行巡检,不但需要耗费大量的时间和人力,而且还可能造成故障死角的遗漏。鉴于上述情况,我台组织相关人员根据我台安全播出工作的情况,并结合网络系统的现状设计、开发出了一套基于SNMP协议的网络监控管理系统,可以帮助相关技术人员和值班人员及时有效的发现并解决网络设备在运行中出现的故障,本文中将对这套系统进行简单的介绍。 
    2 简单网络管理协议(SMNP)介绍

    SNMP是"Simple Network Management Protocol"的缩写,它的中文含义是"简单网络管理协议",为简单网关监控协议(SGMP) 的前身,主要用来管理通信线路

    2.1 SNMP基本原理

    SNMP采用C/S模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理工作站间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB所定义信息的各种查询。它们之间通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据包。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。

    2.2 管理信息库MIB

    MIB,Management Information Base:管理信息库,由网络管理协议访问的管理对象数据库,它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量,代表网络中可以管理的资源和设备。MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。

    2.3 SNMP的五种消息类型

    SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Trap

    1.Get-Request、Get-Next-Request与Get-Response:SNMP管理站通过Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。Get-Next- Request用于和Get-Request组合起来查询特定的表对象中的列元素。后再进行查询(其中第一次用Get-Request,其后用Get-Next-Request)

    2.Set-Request:SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。

    3.Trap:SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。[1]

    3 系统分析

    3.1 需要被监控的网络资源

    目前我台局域网络系统中含有网络设备:①广播发射机工控主机;②安全播出监控平台服务器;③路由器、防火墙、交换机等数据通信设备。由于这些设备与我台安全播出工作息息相关,并且设备种类、厂商和所运行的操作系统又各不相同,则需要相关技术人员和值班人员通过一个通用的网络监控系统对设备的运行状态进行统一监测和控制。

    3.2 系统结构

    根据我台被监控网络资源实际情况,我们设计开发的网络监控管理系统需要对三种不同类型的网络设备实现监控功能:工控主机、服务器、数据通信设备。考虑到今后需要被监控设备数量和种类可能会继续增加或更换,为了保证系统的可升级性并且能够快速高效的进行监控数据获取、分析和存储,也为了对被监控设备更好的进行控制管理,我们根据SNMP的网络管理模型特点,将监控管理系统设计成分布式系统,系统结构包括:监控(显示、交互)模块、应用服务器模块、数据库模块、被监控对象模块。系统的各个模块之间通过消息中间件完成信息传递和交互工作,而应用服务器模块和数据库模块就构成了一个代理工作站的角色。各模块的关系架构图如图1所示:

     3.3 系统硬件组成

    本系统中,监控工作站模块可以和应用服务器模块集成在一台应用服务器中,用户通过应用服务器即可设置和管理被监控对象、游览被监控对象状态、查询监控日志。也可以部署在单独的普通PC主机上通过局域网与应用服务器相连,实现用户远程对被监控设备的即时监控。数据库模块则单独部署在数据服务器中,用来存储备份MIB信息数据库、获取到的被监控设备的状态信息和系统的操作日志,如果有条件的话也可以多加一台数据库服务器作为热备份之用,各个服务器类型的选用可根据实际的网络系统规模而定。

    将监控工作站模块、应用服务器模块、数据库模块分开的分布式系统模式优点是:便于管理,当系统正在运行时,其中任何一个节点设备出现故障即可单独更换,使系统在第一时间恢复运行。网络监控管理系统的资源拓扑图如图3所示:

     4 系统实现

    4.1 系统工作流程

    根据监控管理工作的需要,在监控工作开始前对需要被监控的设备上开启相应的SMMP服务,使其能够响应网络监控管理系统发来的监控信息。而本系统的监控工作流程如下:

    1.首先,用户通过监控模块对本系统进行设置,如设置系统监控规则或手动输入被监控设备相关信息。设置完毕后,监控模块将系统配置信息或监控请求定时或者不定时的通过消息中间件传送给应用服务器模块。同时监控模块也为用户提供本系统的使用说明和系统帮助。

    2.应用服务器模块接收监控模块发来的信息并进行处理:①如果是用户输入的配置信息则对自身配置状态进行更新,同时将相关的操作记录发送给数据库模块进行存储。②如果是监控请求,则先读取数据服务器上的MIB库查找相应的设备信息,如果库中未添加该设备信息则启动SNMP服务,则在网络中根据用户通过监控模块提供的设备相关信息进行查找并添加;如果读取到了MIB库中的相应信息则通过SNMP服务程序对请求信息进行报文改装,形成并发送被监控设备上SNMP服务可识别的报文内容,以此实现对被监控设备的监控。

    3.应用服务器模块将采集到的被监控设备状态信息形成结果报文反馈给监控模块,同时存入数据库以备查询。如果被监控设备状态发生改变需进行报警或解除报警,则通知监控模块做出相应的反应。

    4.监控模块在收到应用服务器模块反馈的被监控设备状态报告后,进行报表统计、显示、报警或解除报警等处理,使用户获取相关信息。[2]

    4.2 开发工具介绍

    管理器和代理工具:本系统我们采用了SNMP4J, 一个用JAVA来实现SNMP协议的管理器和代理,支持SNMP应用程序接口的类库。它是一个商业类库,而且开源免费,它也是一个有着很高技术艺术性的SNMP执行能力的类库,支持J2SE1.4或更高的版本。

    MIB库设计和测试工具:在建立MIB库的过程中,可以使用一个名叫MG-SOFT的软件,这个软件是一个专业的SNMP应用编程软件。它含有:MG-SOFT Visual MIB Builder、MG-SOFT MIB Compiler和MG-SOFT MIB Browser等工具,使用该软件可以收集和编写设备的MIB库,也可以进行SNMP协议管理的模拟测试。

    程序开发工具:在编写程序时,我们使用的是JAVA语言,IDE工具采用Netbeans软件进行开发,并使用MSSQL实现模块数据的数据存储和读取相关功能。通过JAVA对SNMP4J接口的调用,可以使SNMP的实现更加高效,程序的错误更少。同时使用JAVA语言编写的程序既可以在单机模式上运行,也能够部署在网络服务器端和客户端上运行,还可以提供网页式的交互操作模式,这些特点为我们开发网络监控管理系统提供了便利。[3]

    4.3 SNMP通信代码

    由于篇幅有限,我们只列举SNMP4J获取数据的部分代码

    Snmp snmp = new Snmp(new DefaultUdpTransportMapping());//设定采取的协议

    snmp.listen(); //监听

    CommunityTarget 751-server = new CommunityTarget(); //设置agent对象

    751server.setAddress(new UdpAddress("X.X.X.X/161")); //设置IP地址和端口号

    751server.setCommunity(new OctetString("public")); //设置共同体名

    751server.setVersion(SnmpConstants.version2c); //设置版本

    751server.setRetries(1); //设置通信不成功时重试次数

    751server.setTimeout(5000); //设置超时时间

    PDU request = new PDU(); //创建新的PDU

    request.setType(PDU.GET); //设置PDU类型和

    request.add(new VariableBinding(new OID(oidstr))); //OID添加

    PDU response = null; //定义response包

    ResponseEvent responseEvent = snmp.send(request, 751-server); //发出request PDU

    PDU response = responseEvent.getResponse(); //接收response PDU

    if(response != null){ System.out.println("request.size()="+request.size());

    System.out.println("response.size()="+response.size());

    VariableBinding vb = response.get(0);

    System.out.println(vb);

    }//response PDU包解析并输出

    4.4 网络监控管理系统的主要功能

    通过对不同被监控设备进行MIB库的定义,网络监控管理系统可以方便的通过网络对这些设备进行状态检测和控制。比如包括设备CPU、内存使用率的数据获取等。

     

     

     

    图3为系统监控管理功能界面,主要包括:用户权限管理、设备管理、系统设置、工具管理、设备运行状态和系统操作记录日志文件的读取与备份、机房温度环境监测等功能。当系统运行时,只有获得相关权限的用户进行登录后,才能进行相应的操作,比如设备的添加、编辑和重启等操作、系统监控规则的修改、日志文件的读取和保存、关闭系统界面等等,用户的权限分为:管理员、值班员等级别。这样做的目的和意义是:①系统可以记录所有的用户操作记录以便进行调用查询,②防止未获得操作权限的人执行误操作,如将关闭系统等。 
    5 结束语 
    SNMP已经成为应用最广泛的网络管理协议,它的成熟性、高性能和易实现等优点被许多厂家所支持和应用,因此使用起来具有很高的兼容性。我台的网络监控管理设备经过一段时间的应用,运行安全稳定。并且该系统操作简单方便,监控值班人员只需稍加学习即可使用该系统对整个网络系统进行及时有效的监控和管理,避免发生严重的网络故障。同时我们也在继续对系统进行研究和改造,未来将实现通过SNMP协议对我台发射机、节目传输系统、UPS电力供应系统等设备进行监控和管理,并覆盖到办公网段设备,达到全台所有的网络设备自动化系统全面整合,实现只需通过一个中央控制系统就可以达到统一管理的目的。 
    参考文献 
    1 彭理根. SNMP协议介绍解决方案[EB/OL]. 2006-11-17[2012-1-12]. http://www.gongkong.com/webpage/paper/200611/2-AD4B-C75329BB2B9C.htm 2 张燕妮,穆树林.基于SNMP协议的网络系统资源的监控与应用[J]. 中国新通信,2007 ;11:17-20 
    3 曹毅.基于SNMP协议的大型短波发射台全台自动控制协议系统的设计与实现[J].广播电视信息,2009;9:58-62
    编辑:中国新闻技术工作者联合会

    评论 点击评论