目前,IP综合网管系统已实现了基于IP的网络设备的拓扑管理、性能和告警等多项指标的管理,功能非常强大,但在实际使用过程中发现由于接入层设备种类繁杂,端口数量也非常多,如果全部由这套系统来管理,会加重系统的负荷,造成系统过于庞大,影响实际使用效果。
当网络发生故障时,我们希望能最快地发现故障、定位故障并解决故障,因此,要对所有接人设备进行管理,要了解网络的详细运行情况,包括端口数据流量(如端口总速率、数据包速率)、设备运行性能(如CPU利用率)、网络健康状况(如网络时延)等各项指标,并将它们直观地表现出来。
因此一款操作简单、功能齐全的流量监测软件将为网络管理提供更多的便利,解决网络管理人员面临的诸多技术问题。MRTG(Multi Router Traffic Grapher)是一个典型的流量监测工具,由于具有良好的可移植性、可扩展性和图形化界面,同时还是开放源代码的免费软件,因此在国际范围内得到了非常广泛的应用。
1 SNMP协议
简单网络管理协议(Simple Network ManagementProtocol,SNMP)是基于TCP/IP的互联网管理协议,它是由SGMP协议发展而来的。
SNMP定义了传送管理信息的协议消息格式及管理站和设备代理之间进行消息传送的规程,能对互联网中不同类型的设备进行监控和管理。Internet上的SNMP运行在TCP/IP协议族之上,但是其传输层协议采用的是无连接的UDP而不是TCP。
基于SNMP的网络管理模型包括四个关键元素:网络管理站(NMS)、管理代理(Agent)、管理信息库(MIB)和网络管理协议。SNMP采用了C/S模型的特殊形式——代理/管理站模型,对于网络设备的管理是通过管理工作站与SNMP代理间的交互工作完成的。其工作原理如图1所示。
Agent是常驻在被管对象上的软件,它接收来自NMS的指令和发送响应信息,操作MIB并对网络设备进行监控和配置。NMS和Agent通过发送SNMP消息进行通信。SNMP协议提供了Get,Set和Trap三类操作。SNMP协议利用UDP协议的161/162端口进行通信。
在SNMP中,采用了符合ASN.1(AbstractSyntax Notation)规范的对象标识方法OID(ObjectIdentifier),以此来惟一地标识网络所需管理的对象或对象组。如IP协议的OID为{1,3,6,1,2,1,4}。
SNMP从产生到现在一共发展有3个主版本,分别为SNMPv1,SNMPv2和SNMPv3。其中SNMPv2又分为若干个子版本,其中SNMPv2c应用最为广泛,它在计数时使用了64位字长,而SNMPv1使用的是32位。
2 MRTG的工作原理及组成
MRTG(多路由器流量图示器)是一个基于SNMP协议的监控网络流量和主机资源的开放源代码的管理工具。它通过SNMP请求得到被监控对象的流量信息,将这些流量信息以PNG格式的图形表示,并将包含这些图形的HTML文档通过Web方式显示给用户,非常直观地显示流量负载。
MRTG是用Per1和C编写的,可以工作在Unix和Windows NT环境下。MRTG的Perl脚本用以使用SNMP来读取路由器的流量信息,性能高的C程序则用来记录负载数据,创建代表被监控网络连接的图形,这些图嵌入在Web页面中。除了获得每天的详细信息之外,MRTG还可以创建前7天、前4个星期甚至前12个月内网络流量的直观表示。
MRTG主要由4个模块组成:
基础模块 包括定义SMI要求的数据结构,并提供相应的方法通过SNMP操作获取被管对象信息的SNMP模块和MRTG支持模块。
日志文件 MRTG使用的日志文件以ASCII文本形式来记录测得的流量数据,日志文件由Rate Up模块进行更新。
日志更新和绘图工具 在该模块中,MRTG使用C语言程序来完成日志文件的更新和统计图形的生成,与原来用Perl实现相比,大大提高了效率。
配置和网页组织工具 MRTG提供了相关的配置文件生成工具cfgmaker和网页组织工具indexmaker。通过运行cfgmaker,利用SNMP协议读取被管设备中的对象信息,自动生成该设备的框架配置文件。Index-maker通过读取配置文件中的Target描述获得对象信息,并用这些信息组织成该对象的HTML页。
下一节:应用篇
【编辑推荐】