李瑞旻
网络管理中,采集网络性能值并建立高效的监测系统,是保证网络正常运行的重要手段。随着互联网用户日益增加,各运营商的IP城域网规模越来越大,流量直线攀升,城域网中双机热备等冗余技术的应用使得网络复杂性增加,原有的监控软件已不能满足现有网络监控要求。通过比较目前主流网络监控开源软件,选择Cacti搭建IP城域网性能监控系统。以下介绍Cacti的工作原理及部分插件的使用方法,并对网络性能监控中在线用户数、光功率指标的实现方法进行了说明。
Cacti是一套用PHP语言编写的开源软件,使用SNMP协议对网络性能数据进行采集,并利用RRDtool绘图引擎来绘图。只要知道网络设备各性能数据的MIB库对应的OID编码,维护人员就可以通过Cacti的绘图引擎、及报表功能直观展现各项网络性能。
Cacti主要有三大功能模块:SNMP数据采集模块、Mysql配置信息存储模块、RRDtool数据存储及绘图模块。系统架构如图1所示。
图1 Cacti架构
其工作流程如下:采集模块通过SNMP协议定期采集需要监控的网络设备性能,并将数据采集存储为RRD文件,当用户需要查询某台设备的性能数据,由Cacti查询Mysql数据库中该设备对应的性能存储文件RRD编号及绘图所需的模板信息,然后调用RRDtool工具根据模板信息进行相关数据绘图,并通过浏览器的方式将性能图形展现给用户。
SNMP属于应用层协议,承载在UDP之上,SNMP的管理结构的核心思想是在每个网络节点上存放一个管理信息库 (MIB),由各网络设备负责维护,监控管理软件通过SNMP协议对这些设备进行轮询而对管理信息库进行管理。
MIB定义了网络设备的各项属性,并由对象识别符OID唯一指定。MIB是一个树形结构,Cacti通过SNMP协议的snmpget或snmpwalk命令,遍历MIB树形目录中的各节点OID,获取设备的运行状态、性能参数等指标。
RRDtool是一款开源的数据存储和绘图软件,扮演了一个后台工具的角色,将采集数据存储为rrd文件;同时根据用户请求从相应的RRD读取数据,创建网络性能的趋势图,这使得RRDtool看起来又像是前端工具。
在Cacti中定义了2种数据获取方式:SNMP查询和Script查询。这2种方式都使用序列Index的方式获取设备某一类相同采集指标的性能值,比如在采集路由器端口性能时,采集每个端口的Index值以区分不同端口,再根据每个端口的Index值采集端口状态、流量等性能值。但二者应用有所不同,SNMP方式通过定义在XML文件中的OID值及OID的匹配参数执行snmpwalk命令来采集数据,具有MIB的网络设备都可以使用SNMP查询方式。Script则是通过定义在XML文件中的php和perl二种可执行文件来采集性能数据,在php和perl文件中大多定义了有关服务器的性能采集,例如服务及进程状态、服务器并发用户数等指标,这类指标通过操作系统的相关命令更容易获取,因此服务器性能的采集大多采用Script方式。
Weathermap插件可以用最直观的方式来展现网络的流量信息,方便网络维护人员了解全网设备的运行状况,及时发现流量异常情况。Weathermap插件流量展现图如图2所示,图中不同颜色代表链路的利用率,流量的采集周期为1min,因此当设备端口、链路发生故障,或者有攻击造成的异常流量,维护人员可通过颜色变化情况迅速发现故障和攻击方向。
图2 Weathermap插件流量展现图
告警管理是网络监控系统中最重要的功能模块,Cacti通过Threshold插件完成阈值告警功能,Threshold插件针对网络设备的各项性能参数分别设置告警阈值。对于设置阈值的设备,Cacti将采集的数据与设定的相应阈值进行比较,如果发现不在阈值范同之内,Cacti就会立即通过声音和邮件方式告知网络管理人员。Cacti软件自身没有声音告警功能,给网管监控带来不便。为此,分析软件的告警流程,通过修改thold_graph.php文件的相关代码实现了声音告警,保证了系统告警功能及时、有效。
系统性能管理主要实现各网络设备的端口性能监控,编写代码使用SNMP查询方式,实现了BAS设备在线用户数统计和网络设备光接口性能查询功能。
目前,甘肃铁通网络中采用ME60作为BAS设备,并使用双机热备的冗余技术,在线用户数是BAS设备关键性能指标之一,热备用户采用2台BAS同时上线。以前的网管软件只能采集BAS整机的上线用户数,造成热备用户统计数据有误差,通过编写SNMP查询代码,采集BAS设备不同域下的上线用户来区分热备和非热备用户,并通过Aggregate插件对BAS设备下各个域的上线用户数求和,实现了ME60设备在线用户数统计功能。ME60在线用户数统计如图3所示。
图3 ME60在线用户数统计
随着网络发展,网络设备的互联普遍使用10Gb/s、2.5Gb/s光接口,为保障网络安全,监控设备光接口性能值也日益重要。Cacti可自定义采集数据使用的XML文件,对光模块的各项参数进行查询,系统可生成全省光模块信息和各光口的光功率信息,光模块性能参数统计如图4所示,网络维护人员通过对光链路的相关性能分析,及时发现光衰耗增大的链路,有效避免因光功率降级造成网络中断。
图4 光模块性能参数统计
本文对Cacti采集数据的相关原理进行说明,并使用搭建的监控系统完成了对网络设备重要指标的监控,解决了现网中存在的一些问题。主要完成的工作:①通过Weathermap插件直观反映全网流量的视图;②修改Threshold插件的相关代码实现声音告警;③编写相关代码解决在线用户数和光模块性能统计。目前系统已投入运行,方便了网络维护人员对全网性能的监控工作,提高网络管理水平。
[1] 赵亮.基于SNMP协议的网络流量监控管理系统 的 研 究 [J].软件,2013(08):106-107.
[2] 江魁,黄云森.基于RRDtool的网络性能监测系统实现[J].中山大学学报:自然科学版,2002(z1):16-19.
[3] 谭朝军,张媛.Cacti流量监控在广电宽带中的应用[J]中国广电技术文萃,2014(03):65-72.
[4] 许洪超,姚林.PHP Weathermap在网络流量监测中的应用[J].信息与电脑:理论版,2009(08):68.