找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于开源组件的网络管理系统的实现

[复制链接]
admin 发表于 2013-3-24 15:25:18 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 通过研究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所示,由资源层、管理层和显示层三部分组成。管理层包括总控模块、数据采集模块、配置管理模块、故障管理模块、性能管理模块和数据库管理模块。总控模块实现对各分功能模块的启、停控制;数据采集模块实现对资源层相关信息的采集与保存;配置管理模块实现对资源层相关信息的监测与设置,并保存监测信息;故障管理模块通过规定资源性能指标阈值实现错误的及时告警,并保存错误信息;性能管理模块实现性能指标的显示与图表的绘制;数据库管理模块实现信息的存储,并向各管理模块提供相关信息。
    20121107050758300064253.gif
   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)计算设计。
20121107050758346944254.gif
 设置告警指示灯,规定性能指标阈值(如丢包率为0.1%~1%),实现故障告警。使用ArrayList类对象暂存数据,作为ZedGraph的数据集,显示直观图表(如网络流量图)。图2、图3、图4为该系统对某实验室网关部分信息的监测结果。
    20121107050758393814255.gif
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 01:56 , Processed in 0.059388 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表