利用开源软件构建校园网络设备监控平台
储久良
南京理工大学泰州科技学院现代教育技术中心 泰州 225300
摘要

针对网络监控商业化软件昂贵、免费工具软件功能不全等问题,提出利用开源软件SNM(System and Network Monitor)构建校园主干网络设备监控平台。阐述监控网络设备的主要参数和读取网络设备MIB库的方法,详细介绍SNM服务器的工作原理、总体架构、运行环境配置、对象和图形的配置文件结构。实现从Ping、sysUpTime、Network Usage、CPU、Memory等参数方面对网络设备的性能进行实时监测,并以PNG方式显示监控结果。

关键词: SNM; 简单网络管理协议; 网络监控; RRDTool
The Construction of Campus Network Equipment Monitoring Platform Using Open Source Software
Chu Jiuliang
Modern Education Technology Center, Taizhou Science and Technology Institute, Nanjing University of Science and Technology,Taizhou 225300,China
Abstract

According to the problems that the network monitoring commercial software is expensive and free tools software is insufficient, etc., this paper proposes a campus network equipment monitoring platform using open source software SNM (System and Network Monitor). The methods of monitoring network devices and reading network equipment MIB library are described, while the working principle of SNM server, the overall structure, the run environment configuration, objects, and the graphics configuration file structure are also introduced in details. Finally,the paper implements the real-time monitoring on the network device performance from Ping, sysUpTime, Network Usage, CPU, Memory, and other parameters, at the same time,the monitoring results are showed by PNG.

Keyword: SNM; SNMP; Network monitoring; RRDTool
1 引 言

校园网络设备的运行保障是网络管理员的重要工作,直接关系到学校信息化网络是否能正常运转,所以如何有效地对校园主干网络设备进行实时监测是网络中心和信息化部门目前研究的主要内容[ 1]。国内外商业化网络监控工具价格不菲,免费监控工具软件功能不全、各有侧重、平台不一、使用不方便,这给日常网络设备监管工作带来很大困难,寻找新的解决方案成为当务之急。经过反复研究与实践,本文提出利用开源软件SNM在Windows 2003 Server上借助于Perl和轮询数据库工具(Round Robin Database Tool, RRDTool)构建校园主干网络设备监控平台[ 2]

2 需求及技术思路
2.1 系统需求

现有的网络监控软件存在着网络设备单一、软件操作复杂、价格过高、没有中文版本等问题,不利于集成商和客户的选择,如:Cisco Works 2000、Trensand(3Com)、Spectrum(Cabletron)等;而第三方通用网络管理软件通常版本单一、操作繁琐、对操作人员要求较高、众多功能不实用、对操作系统依赖严重,不能跨平台部署、单独开发、后续服务差、通用性差、价格昂贵,如:CA、IBM Tivoli NetView、HP OpenView等[ 3]。一般校园网都按三层架构进行设计,分别是核心层(Core Level)、汇聚层(Convergence Level)、接入层(Access Level),如某高校的主干网络设备由1台SR8805路由器、2台SecPath1800F防火墙、2台S8512、4台S7506E、350台S3928TP-SI、E328、E352交换机等设备构成。由于多品牌网络设备的存在,给网络统一管理平台实施带来困难,单一厂商提供的软、硬件管理工具不能胜任多品牌的设备管理需要,且这些管理工具运行方式不同,多网络设备没有现代化监控手段,靠人工管理维护是不现实、不可行的,因而迫切需要寻找一个基于B/S方式的Web管理平台。笔者经过分析研究和实践,提出利用开源软件SNM作为网络设备监控平台,在多平台上实现了对所有网络设备进行统一管理,以图示化的方式在Web浏览器里直观地显示设备的运行状态,从而提高网络运行维护的效率。

2.2 分析网络设备监控性能参数

影响常用主干网络设备性能的主要参数有:板载CPU负载、板载内存开销、接口类型、数量与速度、背板带宽、支持协议类型等。为了便于掌控网络设备的运行状态,通常从网络时延(Ping)、系统上线时间(sysUpTime)、网络接口使用(Network Usage)、CPU、Memory等方面对设备进行实时监控[ 4]

2.3 获取SNMP对象OID

对网络设备进行监控,需要使用简单网络管理协议(Simple Network Management Protocol, SNMP)。SNMP有三个版本,分别是V1、V2c、V3。在网络设备上启动SNMP Agent并设置只读community,网络管理员可以借此分析和管理设备以及网络通信量[ 5, 6]。使用MG-SOFT MIB Browser软件获取设备的MIB 树中SNMP对象的OID(Object IDentifier),三个主要对象分别是:mib-2子树下system和interfaces以及private子树下的enterprises,如图1所示[ 7]:

图1 MG-SOFT MIB Browser软件的MIB Tree查询图

MG-SOFT MIB Browser软件通过“SNMP Protocol Preferences”设置SNMP的版本。选择对象并展开,通过“Prompt for OID…”获取相关对象的OID,如表1所示:

表1 网络设备MIB Tree相关节点OID对照表
2.4 RRDTool绘图

RRDTool是由Tobi Oetiker创建[ 8]。它是一种以固定大小的空间来存放数据的工具,RRDTool 所使用的数据库文件的后缀名是rrd。RRDTool在后台运行,定期轮询数据,并存储数据和允许创建图表。

RRDTool 的DST(Data Source Type)有5种:

(1)GAUGE:测量,表示实际的值;

(2)COUNTER:累计值,表示经过一个刷新周期的变化率;

(3)DERIVE:累计值,和COUNTER一样,唯一不同的是它不存在负值,最小值是0;

(4)ABSOLUTE:同COUNTER,但COUNTER可能Overflow(数值过大),所以会取绝对值,但COUNTER/DERIVE/ABSOLUTE 虽然都是取差值,但会再除以两次间隔间的秒数;

(5)COMPUTE: 表达式,比较特殊,它并不接受输入,能够引用其他DS(Data Source)并自动计算出某个值。

2.5 SNM服务器工作原理

SNM是具有对计算设备和应用进行监测、图示和报警能力的一种工具。SNM可以对网络(Latency、Network Interfaces、Network Errors、CPU、Packet Accounting)、可连网的设备(Printers、UPS、Power、Environment)进行监控,支持多操作系统、多Web Server和多种浏览器。

SNM有两个程序文件,包括服务器程序snm.pl和浏览器程序snm.cgi。

服务器程序snm.pl的主要功能包括:

(1)加载然后验证配置和目标文件;

(2)在一定的时间间隔轮询目标;

(3)将数据写到RRD文件中(若不存在则创建它们);

(4)为不成功的查询和计量标准创建警报文件;

(5)发送电子邮件报警。

服务器程序在/rrd目录里为每个目标创建一个子目录。在每一个子目录里,为每个目标对象关联模板生成相应的*.rrd文件,如ifUsage.rrd、memory.rrd等。

浏览器程序snm.cgi的作用是创建图表,并通过Web浏览器显示它们,其主要功能是:

(1)每执行一次将创建新的或更新的原图的外在表现;

(2)生成新的图形;

(3)生成的数据和解析出的模板文件(.htmt)用于创建显示图形,可以通过标准的网络浏览器来显示输出;

(4)可以根据用户要求来查询和显示报警文件;

(5)可以根据用户要求来查询和显示最近100行的日志文件[ 2, 9]

3 具体的实现方案
3.1 系统实现平台

在Windows 2003 Server上使用IIS 6.0作为 Web Server,安装Perl-5.10、RRDTool-1.2.30、SNM4.5等软件,搭建并配置运行环境。

3.2 系统实施步骤

(1)软件安装

下载ActivePerl-5.10.1.1006-MSWin32-x86-291086.msi、RRDTool-1.2.30-win32-perl510.zip、SNM-4.50.zip等软件并安装到相关目录里。

(2)服务器配置

安装并启动IIS,将Web主目录设置在C:\Inetpub\wwwroot,并配置应用程序CGI映射;执行install.pl,完成Web文件、配置文件复制;设置下graphs子目录的安全属性;设置IIS的Web 服务扩展,将 Perl CGI Extension设置成允许;以控制台方式运行SNM,在DOS提示符下输入snm.pl-c config.xml-t。

(3)SNM浏览器访问

在Web浏览器的URL中输入http://localhost/snm_net/snm.cgi,可以查看各类图示。

通过以上步骤可以完成网络监控平台的基本构建任务,如图2所示:

图2 校园网主干网络监控平台

在Web界面上有5个菜单,分别是Status、Alert、Logs、Graphs、Online Help。所有监控对象均可在Graphs页面中进行查看,分别设计了Out Router、FireWall、Core Layer、Covergence Layer、Access Layer、Source Monitor等子菜单,分别监控相关设备,如图3所示:

图3 校园网主干网络监控平台中图形菜单列表

3.3 编写配置文件

完成SNM服务器运行环境搭建工作以后,还需要定义所要监控的对象ID(如“SR8805”)、监控的模板ID(如“sysUpTime”、“ifUsage”)、显示图形的类型(如“AREA”、“LINE1”)。在服务器程序snm.pl验证无误后,SNM才能进入正常的工作状态。

(1)配置文件定义

config.xml是snm.pl运行的主要配置文件,主要完成编码、语言、配置、应用、Web目录、日志文件路径的定义,并对报警、SNMP、image、graphs、font等进行相应的设置,主要脚本如下:

<?xml version="1.0" encoding="ISO-8859-1"?>

<opt>

<language language="en" />

<config directory="C:\Program Files\snm_net" />

<a PPdirectory="C:\Program Files\snm_net" />

<web directory="C:\Inetpub\wwwroot\snm_net" />

<log file="C:\Inetpub\wwwroot\snm_net\log\snm.log" purge="7" />

<alerts>

……

</alerts>

<attributes frequency="24" />

<default frequency="300" timeout="3" />

<ping method="internal" />

<snmp port="161" retries="2" />

<image format="PNG" width="520" height="120" />

<graph font="C:\WINDOWS\Fonts\Verdana.ttf" font_color="555555" tab="30" />

</opt>

(2)设置targets.xml与graphs.xml

在targets.xml文件里定义target的ID(如“SR8805”)、ip_address(如“192.168.1.1”)、SNMP的版本(如“1”)、community(如“public”)、attributes(如“base,hrStorage”)、alert(如“2:email”)、templates(如“sysUpTime”)、DST(如“GAUGE”)等信息,所要监控的对象都需要在这里进行定义。

在graphs.xml里首先要引用在targets.xml文件中定义过的ID,确定在Web界面的“Graphs”菜单中出现的位置及菜单项;其次是定义图的坐标系;最后定义绘图格式(AERA-区域图、LINE-线条图)等。

(3)多个targets.xml和graphs.xml配置方法

从格式上看,targets.xml是由多个target构建的target集,graphs.xml是由多个对象的graph构建的graph集。这两个文件会随着监控对象、图形增多而变得冗长,维护时易出错。鉴于此,采用XML实体声明中声明外部实体的方法,实现在targets.xml和graphs.xml文件里配置多个targets和graphs文件,其结构如下:。采用“&+实体名”的方法调用外部实体,如&SR8805,然后单独编写SR8805.xml文件,并在其中分别定义对象和图形[ 10]。采用此方法编写的targets.xml和graphs.xml文件简洁明了,便于后期管理和维护。

4 实际应用及效果评估

以对出口路由器SR8805进行监控为例,说明其实现的方法。

(1)在SR8805上配置SNMP Agent服务,命令如下:

#snmp-agent

#snmp-agent local-engineid *************

#snmp-agent community read network

#snmp-agent sys-info version all

(2)根据设备的MIB库资料,借助于MG-SOFT MIB Browser软件对设备的MIB Tree主要对象进行WALK,查找出SNMP对象的OID(见表1)。

(3)编写监控配置文件,便可以实现监控[ 11]

以SR8805路由器为例说明SR8805.xml构造方法,在targets和graphs的子目录里文件名均为SR8805.xml,主要内容如下:

\snm_net\targets\SR8805.xml: