基于S N M P的网络故障管理的实现
2014-03-22王强
王强
(许昌职业技术学院,河南许昌461000)
1.引言
在网络中,有一些主机提供服务,比如www服务,ftp服务,这些服务给人们的生活带来便利。因而,这些服务器的故障将严重影响网络的可用性。接下来,我们就利用SNMP协议,实现对网络中重要的应用程序的运行状况的监控,并保存搜集的信息。在服务器端,提供web接口,这样,无论网络管理员身在何方,只要有可以上网的计算机,就可以查看被监控程序的运行状态。通过严密监视网络中提供重要服务的软件,来保证网络稳定运行。
下面介绍如何通过陷阱(trap)实现对客户端某些程序的开启和关闭的监控。借助浏览器,网络管理员可以随时查看网络运行状态和历史历史记录。
2.实现环境
(1)web服务器:Tomcat6.0
(2)服务器端数据库:MySQL5.1
(3)服务器端编程语言:JAVA,JSP
(4)客户端编程语言:JAVA
3.服务器的具体实现
3.1 概述
对于基于Web的管理系统,其服务器端承担了大量的工作,包括收集信息、处理信息、提供web接口等。
在服务器端,运用SNMP4J包编写程序,随web服务器一起启动,监视系统的162端口,等待代理发送trap消息。接收到消息后,再消息进行处理,主要是提取trap消息中的信息,并改写和更新数据库中的表单。
SNMP4J是一个商业类库,而且开源免费,它也是一个有着高技术的SNMP执行能力的类库,支持J2SE1.4或更高的版本。SNMP4J支持指令发生器(管理器),就像指令回应(代理)一样。它从SNMP++(支持SNMPv1/v2/v3的C++应用程序接口)获得灵感,具有清晰的对象导向。
SNMP4J的重要部分包括:SNMP、Target、PDU。
通常传递SNMP PDU报文是以同步或者异步的方式。SNMP4J的主要功能是收发SNMP PDUs。
SNMP采用独立的传输协议,通过Transport Mapping接口调用add Transport Mapping方法或者采用默认的构造函数来实现传输映射,以此来实现信息的传输。
PDU类产生SNMP协议数据单元,可以将提供的数据组装成SNMP PDU。并提供了各种方法设置PDU的属性。
另外,用JSP语言编写动态网页,提供信息查询界面。网页通过数据库和监控程序共享收集到的数据。
3.2 接受trap的步骤
当陷阱报文到达时,SNMP4J通常采用Command Responder协议,由process Pdu()实现,整个过程自动完成。下面是对trap处理的步骤:
(1)创建Snmp;
(2)调用listen()使套接字处于网络监听状态;
(3)实现Command Responder接口的监听器,并且调用Snmp.add Command Responder(Command Responder)注册监听器。
3.3 web接口的实现
Web服务器通过数据库和监控程序共享信息。JSP动态语言支持网页动态的链接数据库读取信息。JSP以Java为脚本,Java通过JDBC操作数据库。
JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API编写数据库应用程序,有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。
JDBC的主要功能是:与数据库建立连接;发送;利用数据库处理。
4.结语
目前,互联网规模空前庞大,网络管理也面临着巨大的压力。尽管现在的网络设备都支持SNMP。但仍然有不少的网络问题不能解决。网络管理者需要借助不同的网络管理工具,来确保网络正常运行。
[1]郭军.网络管理(第二版)[M].北京:邮电大学出版社,2001.
[2]雷震甲.计算机网络管理[M].西安:电子科技大学出版社,2006.
[3]张鹏.基于多A g e n t的分布式网络管理技术及其在性能管理中的研究与实践[D].西安交通大学博士论文,2001.