刘荷花:局域网络监视系统的开发与实现 rS—obj.getHistory(ziip,dlzbdm,startTime, 第1o期 //收到返回的数据包 System.out.println(“Response received with endTime)完成得到历史数据功能。obj是类CycleValue的 个实例化对象,调用它的方法getHistory是完成一个和 一requestID=”+response.getRequestID()+ “数据库的交互的操作:select*from webcyb where dxip= ,errorIndex=”+response.getErrorIndex() “‘+dxip+”’and dlzbdm一“‘+dlzbdm+”’and cysj +“,”+“errorStatus一”+response. between“‘+startTime+”and“‘+endTime+ 。最 getErrorStatusText()+“(”+response. 后,利用JFreeChart技术将数据集中的数据用曲线显示 getErrorStatus()+“)”); 出来。 ……value—obj.parseResponse(response): 2.4报警模块 //调用方法对返回的数据包进行分析 在采集数据的时候,调用datawarning类的checkData ……return value;} 方法,用以判断采集到的数据是否超出阀值,此方法的代 private String parseResponse(PDU response){ 码如下: ……value:vb.toString(); public boolean checkDate・・・・・・ //把通过oid取得的数据转化为字符串 {DBconnectioncommon dbcon=new DBconnectioncommon position—value.indexOf(“一”); (); //position为等号所在的位置 value—value.substring(position+2); if(CounterValue>bjsxValue) //把从position+2开始的子字符串值赋给value ,・・・・・・ )return value ̄) alarms.getalarm(sqls,(String)warning.ipAddress. SNMPGet方法通过参数“get”的设置定义了get- elementAt(i)); request操作,即从代理进程处提取一个或多个参数值,通 ・・・・・・、 过参数“ip,,、“oid”的设置分别确定了被监控主机的ip和数 else if(CounterValue<bjxxValue) 据项。PDU response—snmpRequest.send()语句实现了 ・・・・・・、 将udp message包发送到目标主机,然后收到返回的数据 ・・・・・・, 包之后,将包进行分析,最后将数据项的值显示出来。 alarms.getalarm(sqls,(String)warning.ipAddress. 采集到数据之后,将其存到临时数据表tempdata中, elementAt(i)); 然后供显示时调用。 ‘//报警消息 本文需要创建一个类命名为DBconnect,用来实现与 } 数据库的连接,具体步骤如下: 新建一个类DBConnect,添加代码如下: 3系统实现的范例实验 import java.sq1. ; public class DBConnect,・・・・・・ 以实时显示模块的实现作范例,本文进行了以下 public void setURL(String dbName){ 实验。 this.dbURL一“jdbc:mysql://”+this.ip+“:”+ 采集数据是通过一个类SNMPGet来实现,SNMPGet this.port+“/”+dbName;//设置数据库标识 是基于SNMP4J开发的。写类的具体步骤如下: ) 新建一个类,添加下列代码: public Connection getoCnnection(){ public class SNMPGet,・・・・・・ Class.forName(“org.gi t.眦mysq1.Driver”);// public String getValue(){ 加载数据库驱动 String[-]params一{‘‘一v”,“2c”,“一P”,“GET”, ・・・・・・、 “”,“”);//设参数值 public void setParam(String ip,String port,String try …・・・ user,String psw){ . snmpRequest.setOperation(PDU.GET);//设 this.ip=ip; 置操作方式 this.port—port; try{ this.user=user; PDU response=snmpRequest.send(); this。password=psw;)} //发送udp message包到目标主机 首先要下载JDBC的MYSQL数据库的驱动程序,得 到。jat驱动程序文件,并在环境变量中设置该驱动程序的 ・ 117 ・ 维普资讯 http://www.cqvip.com
第3o卷 路径。 电子测量技术 本文是显示地加载驱动程序类,并且与外部设置 无关。 其他服务器的网络性能的功能,要求被监控主机安装简单 网络管理协议(SNMP),后台程序在监控端运行,采集到数 据后,把数据保存在监控端的数据库里。网络管理员可在 监控端通过浏览器,以图表的形式可以很直观地查看被监 控主机当前性能趋势,以及历史性能数据。被监控端的数 利用JFreeChart将tempdata中的数据用曲线显示在 页面上,可供管理员直观的查看当前性能状况。 新建一个Servlet,命名为liuliangquxian,部分源码 据若超过阀值,可发送报警信息到指定的接受报警信息的 如下: ……//建立一个数据集 private DefaultCategoryDataset createDataset() ,・・・・・・ DefaultCategoryDataset dataset==new Default- CategoryDataset();)…… 、public void service(HttpServletRequest req, HttpServletResponse res){ eDfaultCategoryDataset dataset ̄//JFreeChart 自身的类 JFreeChart chart; Calculator calcObj—new Calculator(); PrintWriter out—res.getWriter();…… chart==ChartFactory.createLineChart ……//保存图片 ChartUtilities. saveChartAsJPEG(new File (fileName),100,chart,700,500); ……//刷新 out.println(“<formaction一\”liuliangquxian\ “method一\”POST\“name=\”self\“>”); ……//时间间隔为五秒钟 Thread.sleep(5000);) 其中Calculator是计算流量曲线所需的参数的一个 类,调用此类的实例化对象来在显示流量曲线中用到.使 用ChartFactory.createLineChart()函数画出曲线图,并且 曲线图的标题、X轴含义、y轴含义、绘图数据等都由该函 数的参数给出。为了可以显示实时数据,还需要把自身的 值传给自身实现刷新。间隔5s之后,继续采集下一个时间 点的数据。 4结 论 本系统实现了通过一台监控主机监控局域网络中的 ・ 118・ 网络主机匕。 参考文献 E1] 严宣辉,龚家骧.利用SNMP实现网络性能的实时监 控[J].计算机应用与软件,2004,21(3);67—69. [2] 中国协议分析网.http:// ̄vw.cnpa£net/Class/SNMP/ O53291853261725 O.html[-Z/aL]. -13] 刘晓华.精通JAVA核心技术I-M].j 京:电子工业 出版社,2003. [4] 林胜利,王坤茹,孟海利.Java优化编程I-M].j匕京:电 子工业出版社,2005. [5] 陈海涛.一种基于SNIVIP的简单网络管理系统 NetWatcher的设计与实现[J].计算机工程,2006(10 增刊). [6] 王平,赵宏.一个基于SNMP的简单网络管理系统的 设计与实现[J].小型微型计算机系统,2001,22(9): 1047-1050. 1-73 张白一,崔尚森.面向对象程序设计 ava[M].西 安:西安电子科技大学出版社,2003. [8] 涂继辉,钟宝荣.网络监测系统的设计与实施[J].农 业网络信息,2004(9):18-20. -19] 李学渊.基于SNMP网络性能管理的研究[J].计算 机与数字工程,2005,33(4):11-15. [1O] 王少杰.一种基于SNMP网络设备监测系统的设计 与实现口].辽宁大学学报:自然科学版,2004,31(4): 346—348. 作者简介 刘荷花,女,1976年8月出生,硕士,讲师,太原大学主 要研究方向为计算机网络与应用。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo3.com 版权所有 蜀ICP备2023022190号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务