《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 基于开源组件的网络管理系统的实现
基于开源组件的网络管理系统的实现
来源:微型机与应用2011年第23期
赵根柱,巴特尔
(内蒙古工业大学 信息工程学院,内蒙古 呼和浩特 010051)
摘要: 通过研究Cacti的RRDTool模块,分析其在历史信息存储和显示方面的弊端,选择使用普通数据库作为改进策略,设计了基于开源组件的网络管理系统,实现了网络的有效管理。使用SnmpSharpNet组件采集网络设备信息,运用ZedGraph组件绘制图表,并结合数据库技术建立存储相关信息的数据库。
Abstract:
Key words :

摘  要: 通过研究Cacti的RRDTool模块,分析其在历史信息存储和显示方面的弊端,选择使用普通数据库作为改进策略,设计了基于开源组件的网络管理系统,实现了网络的有效管理。使用SnmpSharpNet组件采集网络设备信息,运用ZedGraph组件绘制图表,并结合数据库技术建立存储相关信息的数据库。
关键词: 网络管理;SnmpSharpNet;ZedGraph

 对于一个有效的网络管理系统,完善的后台数据库是不可或缺的,它是实现网络管理的信息库。数据库保存了用于网络管理的信息,包括数据信息、状态信息和异常信息等。数据库的信息可供管理员了解网络运行的历史状况,也可为网络性能的预测提供依据。
Cacti是目前普遍使用的流量监测工具,它使用RRDTool(Round Ro-bin Database Tool)实现网络信息的存储与图表的绘制。本文对RRDTool进行了研究,发现其在信息存储时对数据库中的历史信息进行了压缩处理,从而导致历史信息不断发生变化,以至于显示的流量信息不能真实地反映网络运行的历史状况。鉴于此,本文选择使用普通数据库作为改进对象,并结合开源组件,设计了基于开源组件的网络管理系统。该系统实现了对网络部分信息的管理,很好地解决了数据库存储历史信息不断变化的问题,方便了网络管理者了解过去某段时间以来或过去某时间段内网络的运行状况。
1 开源组件
1.1 SnmpSharpNet

 SnmpSharpNet是用C#编写的一个开源的SNMP组件库,支持SNMPv1、SNMPv2和SNMPv3[1]。SnmpSharpNet是面向对象的,由很多的类构建而成,内部封装了丰富的与SNMP操作相关的方法和属性,可方便编程者使用SNMP编程。本管理系统使用SnmpSharpNet实现网络设备信息采集模块。
1.2 ZedGraph
 ZedGraph是一个开源的图表类库,全部代码用C#开发。它可以利用任意的数据集合创建2D的线性和柱形图表。ZedGraph继承了Framework中的UserControl接口,可作为WinFo-rm窗体控件,也可用作WebForm控件,允许用户在VS的IDE环境中进行拖放操作[2]。本文使用ZedGraph完成相关图表的绘制。
2 RRDTool与普通数据库比较
 RRDTool是一种特殊的环状数据库工具,它不但可以存储数据,也可以绘制图表。因此,RRDTool在一些兼有数据存储与图表显示功能的软件中深受人们的青睐。然而,任何一种工具都不是完美无缺的,RRDTool也是如此。表1为RRDTool与普通数据库的对照表。通过表1可以发现,普通数据库在很多方面优于RRDTool,如数据库文件大小可以增加,数据库中的信息不会被压缩、计算和覆盖,数据库的信息可以随时获取等。为了保证历史信息的完整性,该系统采用普通数据库(SQL Server)作为信息的存储仓库,从而确保了存储信息的完整性,为网络管理员提供了解网络运行历史状况的确切信息。
3 系统的架构
 为了保证网络的高效运行,满足网络通信业务的需求,网络管理主要通过网络管理系统对网络上的资源实行各种合理的管理,包括性能管理、配置管理、计费管理、安全管理和故障管理。本系统主要从网络的性能,配置和故障考虑,实现其功能。系统的架构如图1所示,由资源层、管理层和显示层三部分组成。管理层包括总控模块、数据采集模块、配置管理模块、故障管理模块、性能管理模块和数据库管理模块。总控模块实现对各分功能模块的启、停控制;数据采集模块实现对资源层相关信息的采集与保存;配置管理模块实现对资源层相关信息的监测与设置,并保存监测信息;故障管理模块通过规定资源性能指标阈值实现错误的及时告警,并保存错误信息;性能管理模块实现性能指标的显示与图表的绘制;数据库管理模块实现信息的存储,并向各管理模块提供相关信息。

4 系统的实现
 使用数据库技术建立后台数据库及所需的信息表,表2为设备流量信息设计表。
通过SnmpSharpNet的GetRequest、GetNextRequest和GetBulkRequest方法采集设备信息。使用ADO建立数据库连接,保存采集信息。数据库相关操作如下。
SqlConnection conn;
string string1="server=(local);database=NetFlow;uid=sa;pwd=";
conn = new SqlConnection(string1);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "insert into liuliang1 values (′"+txtDName.Text.Trim()+"′,′"+Convert.ToInt32(txt-Index.Text.Trim())+"′,′"+txtIData.Text.Trim()+"′,′"+t-xtOData.Text.Trim()+"′,′"+txtDate.Text.Trim()+"′)";
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
 对性能指标(如丢包率、差错率)使用式(1)~式(4)计算设计。

 设置告警指示灯,规定性能指标阈值(如丢包率为0.1%~1%),实现故障告警。使用ArrayList类对象暂存数据,作为ZedGraph的数据集,显示直观图表(如网络流量图)。图2、图3、图4为该系统对某实验室网关部分信息的监测结果。

 

 

 本设计实现了对网络部分功能的管理,通过使用普通数据库作为信息的存储仓库,解决了RRDTo-ol存在的弊端,为网络的管理提供了确切的历史信息。
参考文献
[1] SnmpSharpNet[EB/OL].[2011-07-01].http://www.snmpsharpnet.com/node.
[2] ZedGraph[EB/OL].[2011-07-01].http://baike.baidu.com/view/5307214.htm.
[3] 李明江.简单网络管理协议[M].北京:电子工业出版社,2007.

此内容为AET网站原创,未经授权禁止转载。