目次
一、簡介...................................................................................... 错误!未定义书签。 二、網路基礎.............................................................................. 错误!未定义书签。
(一)OSI參考模型 .......................................................... 错误!未定义书签。 (二)SNMP介紹 .............................................................. 错误!未定义书签。
1. SNMP概述 ................................................................................................ 2 2. SNMP工作原理 ........................................................................................ 3 3. MIB介紹 ................................................................................................... 4
4. 網管系統之簡介....................................................................................... 4 5. MIB相關工具 ........................................................................................... 5
三、NetFlow................................................................................ 错误!未定义书签。
(一)NetFlow簡介........................................................... 错误!未定义书签。 NetFlow versions Supported Platforms ....................................... 错误!未定义书签。 (二)執行NetFlow........................................................... 错误!未定义书签。
1. 路由器的設定........................................................................................... 6 2. 統計分析流程........................................................................................... 6 3. 記錄及儲存flow資訊 ............................................................................. 6 4. 統計分析程式........................................................................................... 8 四、MRTG(Multi Router Traffic Grapher) ............................................................. 8
(一) MRTG簡介 .............................................................................................. 8 (二)MRTG使用方式 ....................................................................................... 9
1. 取得程式................................................................. 错误!未定义书签。 2. 編譯MRTG程式(以Unix版本為例) ............................................... 9 3. 產生MRTG設定檔 ............................................... 错误!未定义书签。 4. 修改MRTG設定檔 ............................................... 错误!未定义书签。 5. 測試MRTG輸出 ................................................... 错误!未定义书签。 6. 自動執行MRTG程式 ........................................................................... 12 (三)利用MRTG監看其他系統資源 ............................ 错误!未定义书签。
1. mrtg-ping-probe ....................................................................................... 13
2. 系統CPU Load....................................................... 错误!未定义书签。
3. DNS Load ............................................................... 错误!未定义书签。
參考資料...................................................................................... 错误!未定义书签。
网络流量监测与管理
邵喻美
一、 简介
过去几年来,因特网已经成为越来越重要的需求,在台大校园网络的环
境里,已经普及到所有系所及实验室都有接点可以连上因特网。不过面对日益复杂的网络联机及逐渐增加的网络流量,系统管理者必须花费更多时间精力来了解这些网络设备的运作状况,以维持一个系统的正常运作。 一般来说,网络管理者所需要了解的是各个网段的使用情形,带宽的使用率,网络问题的瓶颈发生于何处。当网络问题发生时,必须能够很快地区隔出问题的发生原因,可能是线路问题、网络设备问题、或者是路由器的设定问题。一个有经验的管理者要回答这些问题并不难,但是如果所管理的网络范围过于庞大,那么就可能需要一个有效率的网管系统了。透过网管系统可以协助网络架构管理,并显示网络上目前发生的各种流量与运作情形。若发生问题时,也能够减少许多处理时间。
以牵涉的节点数量以及能够在节点上执行的协议组合而言,网络都是一个复杂的系统。即使将范围局限在单一行政范围内,例如校园,还是可能包含数十个路由器及数百、甚至数千台主机。如果考虑在任一节点上保存及处理的所有状态,例如地址转译表、路由表、TCP连接状态等,那么很容易就陷入充满各种数据的茫茫大海中。
我们很容易了解为何需要知道哪些放置在不同节点上各协议的状态。举例来说,我们可能想要监控被中断的IP数据段重组数量,以便判断资源回收部分重组数据段的逾时机制是否需要调整。再举另一个例子,我们可能想要观测各节点上的负载(亦即,传送或接收的封包数),以便判断是否需要为网络增加新的路由器或连结。除此之外,我们也必须注意硬件发生故障及软件失误的征兆。
二、网络基础
(一)OSI参考模型
物理层(Physical Layer):物理层定义的是位传输接口所具备的电子特性、机械特性、功能、以及运作程序。本层包括传输媒介(如同轴缆线、光纤、铜缆线、无线电波等等)、实体连接方式、模块化与框架技术(IEEE802.3 、FDDI等)。所以只要提及串行埠、10BASET缆线、网
1
络适配器等,指的就是物理层。
数据链路层(Data Link Layer):确保底层的数据传送。服务包含错误侦测与更正、数据加框(如LLC、HDLC、SDLC、IEEE802.2)、MAC同步化。
网络层(Network Layer):网络层提供寻址、选择路径、传送封包至目的网络,如IP、PPP、IPX等。
传输层:提供错误侦测与更正,也能以软件进行网络流量控制。例如TCP/UDP。SNMP使用UDP协议。 会谈层(Session Layer):应用程序与网络之间会谈的建立与管理。 表达层(Presentation Layer):表达层实作数据与通讯协议的转换及协商,如ASN.1与BER数据编码。
应用层(Application Layer):由软件应用程序实作,应用程序与网络本身的唯一接触接口。如FTP、Telnet、SNMP等。 应用层 表达层 会谈层 传输层 网络层 数据链路层 物理层 Management, Agent APIs SNMP ASN.1, BER RCP, NetBIOS TCP, UDP IP, IPX Ethernet, ARCNet Token Ring
(二)SNMP介绍
1. SNMP概述
「简单网络管理协议」(SimpleNetwork Management Protocol, SNMP)顾名思义就是专为网络管理者所设计的网络管理协议,主要目的是用来管理网络上各式各样的设备。
由于SNMP是在TCP/IP网络环境中发展出来的管理通讯协议,因此SNMP在应用上必须使用TCP/IP,被管理的机器必须设定IP地址,同时必须确保线路的连接与正确的路由。
网络上的节点分散各地,因此比较实际的作法便是利用网络来管理网络。这表示我们需要一种能够让管理者对不同网络节点进行读取并可能写入各种状态信息的协议。SNMP实际上是一个特殊的「要求/响应」协议,可支持两种要求讯息:get及put。前者是用来从某些节点取出状态信息,而后者则是用来在某些节点上储存一份新的状态信息。(SNMP也支持第三种动作,get-next,稍后再做解释。)下列讨论着重在get作业,因为这是最
2
常使用的。
SNMP的使用是很明确的:系统管理者与一个显示网络信息的客户端程序进行互动。该客户端程序通常具有一个图形接口。每当管理者选择某种想要取得的信息,客户端程序便利用SNMP向负责的节点要求信息。(SNMP在UDP上执行。)在接收到要求讯息之节点上执行的SNMP服务器将找到适当的讯息,并将其传回给客户端程序,然后显示给用户参考。
2. SNMP工作原理
SNMP定义了五种Manager与Agent之间的通讯形式。 Get-request Get-next-request
Set-request
Get-response Trap
前三项都是属于Manager向Agent发出的讯息,后两项则属于Agent向Manager发出的讯息。
SNMPManagerget-requestget-responseget-next-requestget-responsetrapSNMPAgent
每个Agent都是一个执行程序,负责将该网络节点的设定数据以及运作现状以数据结构的方式储存,客户端程序如何表示需要撷取何种信息,以及服务器如何得知应读取内存中的那个变量以符合要求?答案是SNMP根据一个称为「管理信息基础」(Management Information Base, MIB)的伴随规格(companion specification)。当Agent收到网管主机所发出的SNMP get-request、get-next-request、set-request时,便以相对应的MIB数据透过SNMP get-response方式响应。MIB定义了可以从网络节点取得的特定信息,MIB变量。下一节将描述一部份MIB变数。此外,有一种特殊的SNMP命令,称为trap,可允许Agent在特殊的情况下(如error, shutdown)主动发讯息给网管主机。
3
3. MIB介绍
SNMP定义一个可供管理数据的标准,它定义了网络设备各种信息的储存结构,这种结构是以树状结构为基础,每种变量分支都是唯一的,亦即MIB。目前所使用的版本是MIB-II,定义于RFC-1213。网络设备的TCP/IP数据分为八份,分别为system,interface,addr-translation,ip,icmp,tcp,udp与egp。MIB定义了各分支下的数据项,所包含的数据报括整数,字符串,与窗体属性。见下图举例说明:
rootccitt(0)iso(1)org(3)dod(6)internet(1)joint-iso-ccitt(2)directory(1)mgmt(2)experimental(3)mib(1)private(4)system(1)interface(2)at(3)ip(4)icmp(5)tcp(6)udp(7).iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber.0.1.2.6.1.2.1.2.1.0
4. 网管系统之简介
网络管理是一个相当大规模且重要的领域,一般来说,网管系统的任务就是要能达成掌握网络主机状况,加速故障排除,同时减少网管人员的负担。一些网络或计算机相关厂商也都有网管软件的产品,目前应用最广的就是HP的OpenView,IBM的NetView等,这类型的网管系统强调的是一个整合型的网络管理解决方案,由一个网管的作业平台与许多网管功能的模块所组合而成。上述两种作业平台都有提供基本的网络拓朴功能,MIB Browser,SNMPtool,Data Collection,绘图与网络事件管理功能。从管理者的角度来看,这些功能十分好用,但是这些软件都非常昂贵。除非网络环境具有特殊性或者复杂度,否则便需要考虑一下软件的价格与效能比值不值得。
在一般学校最常用的网管工具就是MRTG,严格来说只具有网管软件中的一小部分功能。MRTG把SNMP所request的数据经过计算后绘成图表,其中最常用的是网络流量统计图,其他如CPU Load,Error Count等亦可支持。由于属于免费软件,因此使用群相当广泛。
最后要提出来说明的是RMON这项产品,当网段上有需要监测的问题时,除了使用Protocol Analyzer到现场去量测之外,最常用的就是把RMON
4
挂到网段上当Agent,然后在Manager端(如HP的OpenView NNM使用netmertix)来接收RMON所收集到的封包,藉由RMON可以使得管理者在远程进行现场的量测动作,对于需要长时间量测以及不规则发生之网络问题状况特别有此必要。
5. MIB相关工具
Snmpget:fetch an SNMP object Snmpwalk:fetch all the SNMP objects from an agent Snmpwalkoid:query for a tree of information about a network
entity
Snmp_get_quick_print:fetch the current value of the UCD library‟s quick_print setting
Snmp_set_quick_print:set the value of quick_print within the UCD SNMP library
Getif:window-based MIB browser
三、NetFlow
(一)NetFlow简介
NetFlow为Cisco之专属协议,提供路由器中第三层之信息,可用来了解该路由器所传输之封包表头内容,依据此内容,我们可以撰写程序将所获得之资料加以统计。一旦收集到路由器上的详细流量数据后,便可为网络流量统计、网络使用量计价、网络规划、网络监测等应用提供计数根据。同时,NetFlow也提供针对QoS(Quality of Service)的测量基准,能够捕捉到每笔数据流的流量分类或优先性特性,而能够进一步根据QoS进行分级收费。
目前Cisco网站上所提供可执行netflow之硬件数据: NetFlow versions Supported Platforms
Cisco IOS Software Supported NetFlow Supported Cisco Hardware Platforms Release Version Export Version(s) 11.1CA, 11.1CC 11.2, 11.2P 11.2P 11.3, 11.3T 12.0
v1, v5 v1 v1 v1 v1, v5 Cisco 7200, 7500, RSP7000 Cisco 7200, 7500, RSP7000 Route Switch Module (RSM), 11.2(10)P and later Cisco 7200, 7500, RSP7000 Cisco 2600, 3600, 4500, 4700, AS5800, 7200, 5
uBR7200, 7500, RSP7000, RSM 12.0T V1, v5 Cisco 1000*,1600*,1720**, 2500*,2600, 3600, 4500, 4700, AS5800, 7200, uBR7200, 7500, RSP7000, RSM, MGX8800 RPM Cisco 1000*,1600*,1720**, 2500*,2600, 3600, 4500, 4700, AS5800, 7200, uBR7200, 7500, RSP7000, RSM, MGX8800 RPM Catalyst 5000 NetFlow Feature Card (NFFC) 12.0(3)T and later v8 N/A v7 (参考http://www.cisco.com/warp/public/cc/pd/iosw/ioft/neflct/tech/napps_wp.htm)
(二)执行NetFlow
1. 路由器的设定
在收集netflow数据之前,必须先在路由器上设定flow数据的传送方式。首先,login到router并在global执行以下指令: ip flow-export destination 例如:ip flow-export destination 10.112.0.1 9991。除此之外,还要在欲捕捉数据的接口上设定:ip route-cache flow。如此一来,router便会开始将flow信息向IP 10.112.0.1端口号为9991送出封包(协议为UDP),而10.112.0.1即开始接收netflow的数据,此时只需要在该台机器上执行程序即可进行统计。 2. 统计分析流程 进行统计分析的流程可分为两个阶段: (1) 在机器上固定执行一个常驻程序(daemon),负责收集路由器 送出的UDP封包,并且写入硬盘。 (2) 分析log file,并且产生所需之报表。 3. 记录及储存flow信息 首先,从网络下载flow-tool程序包 (http://ftp.eng.oar.net/pub/flow-tools-0.58.tar.gz),其中包含数种用来收集及统计数据的程序,分列如下: flow-capture - collect flows from an exporter and store them to disk. Disk space is managed by expiring (removing) old flow files based on a configurable archive size or number of files. flow-cat - concatenate flow files. 6 flow-dscan - detect network scanning and other suspicious activity flow-expire - expire (remove) old flow files. flow-fanout - fanout flows from a exporter to multiple collectors. Also supports multicast. flow-gen - Generate flows for testing. flow-header - Display flow file meta information. flow-merge - Merge flows files so that records are preserved in relative chronological order. flow-print - Formatted ASCII output. flow-receive - Receive flows in NetFlow format from a network. flow-send - Send flows over a network in NetFlow format. flow-split - Split flow files into smaller files. flow-stat - Generate usage reports based on IP address, IP address pairs, ports, packets, bytes, interfaces, next hops, autonomous systems, ToS bits, exporters, and tags. flow-xlate - Translate various fields of flow recrods. flow-tool程序包安装步骤如下(以Linux系统为例): (1) 先确定机器上已安装下列程序: zlib:ftp://ftp.freesoftware.com/pub/infozlib/zlib/ gnu make: ftp://ftp.gnu.org/pub/gnu/make/make-3.79.1.tar.gz (2) 将档案解压缩到一个目录下,例如 zcat flow-tools-0.58.tar.gz | tar xvf - 解开后执行下列指令: ./configure gmake gmake install (3) 若已将路由器设定为打开netflow,可利用flow-receive确认主机是否已开始接收flow数据,例如: flow-receive 0/0/9991 | flow-print (4) 执行flow-capture将flow数据储存下来,其指令格式为 flow-capture –z Z –n N –e E –p P –w W,其中参数意义如下: Z – 压缩比例 N – 每日留存份数 E – 共留存几份在硬盘中 P – 埠号 7 W – 存放路径 例如:flow-capture –z 6 –n 143 –e 1500 –p 9991 –w /netflow,其中,压缩率约6就差不多了,设定更高的参数不见得可以多压多少,一天留144份,也就是10分钟rotate一次log file,方便我们做细部统计,一共留存1500份,也就是10天左右,最后一项参数表示把所有log file都放在/netflow目录下。 之后,便可将此指令加入 /usr/local/etc/rc.d 目录下,让机器一开机便执行此常驻程序。 (5) 收集一段时间的数据之后,可透过flow-print指令列出log file 的内容,例如:flow-print –f0 < logfile,所显示字段由左至右分别为: Source Source Destination Destination Protocol Source Destination Packets Octects Interface IP Interface IP Port Port 4. 统计分析程序 在netflow流量数据捕捉并储存下来之后,便可根据其格式及所欲统计的项目撰写程序进行统计分析。目前从网络上可下载国立交通大学发展的netflow统计程序(http://netflow.nctu.edu.tw/netflow.html),该程序以perl撰写,通常必须根据各自的架构及需求予以修改后方能适用。以交大发展的netflow.pl程序为例,以一日为单位统计当天的流量,可针对网段、协议、流入/流出之IP网段进行合计或Top统计。台大为了取得更实时的数据,将该程序修改为每10分钟统计一次,便能够了解过去十分钟的流量。 四、MRTG(Multi Router Traffic Grapher) (一) MRTG简介 MRTG(Multi Router Traffic Grapher)是一种用来监测网络链接上之流量的工具。MRTG会产生包含PNG图形的HTML网页,可为网络流量提供生动的视觉呈现效果。 MRTG软件中包含一个perl程序,利用SNMP读取路由器等网络设备的流量计数,以及一个C程序可将流量数据记录下来,并为所监控之网络链接上的流量产生图形式表现。这些图形会被包含在网页中,并可从任何网页浏览器读取。 MRTG除了能够提供详细的每日流量记录,同时也能够以相同的视觉呈现方式产生过去七天,过去四周,以及过去12个月的流量记录。 8 能够做到这点是因为MRTG把从路由器取得的所有数据都记录下来。这些记录会自动合计,所以不至于随着时间成长地太大,不过仍保留足够提供过去两年来流量趋势的信息。这些程序以很有效率的方式进行,因此我们能够从任何UNIX系统监测200段或更多网络链接。 MRTG并不仅限于监测流量,我们也可以利用MRTG来监测任何SNMP参数。我们甚至可以运用外部程序来收集想要用MRTG进行监控的数据,例如系统负载、登入数量等,或者将二或多项数据源结合在单一图形内以利观察。 (二)MRTG使用方式 1. 取得程序 最新版本的MRTG程序可从 http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/ 处下载,其中包含Unix源代码、编译好的Win32程序、以及MRTG Linux RPM,目前最新版本是mrtg-2.9.18。 2. 编译MRTG程序(以Unix版本为例) 在编译Unix版MRTG源代码之前,必须先确定机器上已安装GCC编译程序及perl程序。除此之外,由于MRTG会产生PNG格式的图形文件,因此必须先安装几种链接库: gd:这是一套绘图链接库,用来处理PNG格式的图形文件, 可从http://www.boutell.com/gd/ 处下载。 libpng:这是gd在产生PNG图形文件时需要的链接库,可从 http://www.libpng.org/pub/png/src/ 处取得。 zlib:这是libpng压缩图形文件时需要的链接库,可从 http://www.gzip.org/zlib 处下载。 当上述链接库都安装好了之后,便可开始编译MRTG程序。首先解开原始码压缩文件,并切换至该目录下: gunzip –c mrtg-2.9.18.tar.gz | tar xvf – cd mrtg-2.9.18 接下来便可编译程序代码: ./configure –prefix=/usr/local/mrtg-2 或者也可以指定各必要程序的路径: ./configure - -prefix=/usr/local/mrtg-2 \\ - -with-gd=/usr/local/src/gd \\ - -with-z=/usr/local/src/zlib \\ - -with-png=/usr/local/src/libpng configure程序可确认系统环境已适合安装MRTG程序,如果都没 9 有问题,目录下便会增加一个专为该系统产生的Makefile。接下来便可执行: make 此动作会建立rateup程序,并修改scripts中的所有路径名称。现在便可安装mrtg程序: make install 到此为止,mrtg需要的所有软件都已经安装在/usr/local/mrtg-2目录下了。 3. 产生MRTG配置文件 当mrtg程序安装完成后还无法立刻开始监测网络设备,因为我们必须给予mrtg程序适当的组态设定,方能让mrtg程序执行针对特定网络设备收集特定数据、将数据存放于特定路径、以所指定的格式输出图形文件及网页等动作,而这些特殊设定都定义在mrtg.cfg档案中。MRTG软件中提供一个cfgmaker程序,可针对所欲监测的路由器产生必要的配置文件: cfgmaker --global 'WorkDir: /home/httpd/mrtg' \\ --global 'Options[_]: bits,growright' \\ --output /home/mrtg/cfg/mrtg.cfg \\ community@router.abc.xyz 上述范例会对router.abc.xyz这台网络设备收集流量数据,并对输出图形设定bits及growright选项,同时在/home/mrtg/cfg目录下产生mrtg.cfg配置文件,而所有产生的图形及网页都会放置在 /home/httpd/mrtg 目录下。 MRTG软件包中还有一个程序indexmaker,可将mrtg.cfg组态档中每个Target的website做个简单的index file,例如: indexmaker –enumerate –columns=2 –section=title –output index.html mrtg.cfg 4. 修改MRTG配置文件 利用cfgmaker产生的mrtg.cfg便能够产生基本的mrtg流量图数据,但是如果想要得到较特别的输出数据,便必须修改mrtg配置文件。在mrtg配置文件中可分为Global及个别Target的定义部分,以Global而言,可定义多种选项,例如下列: WorkDir:指定所产生之logfile及网页之存放路径(此设定优 先于 HtmlDir:指定所产生之HTML档案存放路径 ImageDir:指定所产生之Image档案存放路径 LogDir:指定logfile存放路径 10 Refresh:设定浏览器重载网页的时间间隔(以秒计),默认值为300秒。 Interval:执行mrtg程序的时间间隔,默认值为5分钟 若针对各Target可设定下列选项: Target:此设定告诉mrtg应该监测哪一台机器。此参数的格式 相当多样,例如: 最常见的基本格式为 ”port:community@router”,此设定 会让mrtg程序针对”router”这台主机(dns名称或IP)的”port”接口产生流量图,并且以”community”作为community(snmp password)进行snmp query。 Example: Target[test]: 2:public@router.ntu.edu.tw 在Target叙述之前加一个负号(”-“)可将incoming及 outgoing的流量反过来 Example: Target[test]: -2:public@router.ntu.edu.tw 可在叙述中明确指定所欲取得信息的OID,语法 为 ”OID_1&OID_2:community@router.ntu.edu.tw”。由于mrtg必须为两项变量绘图,所以指定两个OID,如下例所示: Target[test]: 1.3.6.1.2.1.2.2.1.14.1&1.3.6.1.2.1.2.2.1.20.1:public@myrouter MRTG能够辨认数种SNMP变量名称,所以可能在叙述中直接指定名称(全部名称可参阅 http://people.ee.ethz.ch/~oetiker/webtools/mrtg/mibhelp.html),例如: Target[ezwf]: ifInErrors.1&ifOutErrors.1:public@myrouter 有时为了确定mrtg抓到正确接口的数据,我们可在Target 中指定IP地址: Target[ezwf]: /1.2.3.4:public@myrouter Target[ezci]: -/1.2.3.4:public@myrouter Target[ezwf]: .3.6.1.2.1.2.2.1.14/1.2.3.4&1.3.6.1.2.1.2.2.1.14/1.2.3.4:public@myrouter Target[ezwf]: ifInErrors/1.2.3.4&ifOutErrors/1.2.3.4:public@myrouter 如果不能使用IP地址,也可指定接口名称: Target[ezwf]: \\My-Interface2:public@myrouter Target[ezci]: -\\My-Interface2:public@myrouter Target[ezwf]: 1.3.6.1.2.1.2.2.1.14\\My-Interface2&1.3.6.1.2.1.2.2.1.14\\My-Interface3:public@myrouter Target[ezwf]: ifInErrors\\My-Interface2&ifOutErrors\\My-Interface3:public@myrouter 如果为了避免因接口index变动造成mrtg图数据错误,可 11 在Target中指定接口的硬件地址。Mrtg软件包中提供一个指定”cfgmaker_phys”,可将接口index或IP地址转换成硬件地址: cfgmaker_phys old.cfg > new.cfg cfgmaker public@router | cfgmaker_phys > new.cfg 在Target设定中的格式如下: Target[ezwf]: !0a-0b-0c-0d:public@wellfleet-fddi.ethz.ch Target[ezci]: -!0-f-bb-05-71-22:public@ezci-ether.ethz.ch Target[ezwf]: 1.3.6.1.2.1.2.2.1.14!0a-00-10-23-44-51&!0a-00-10-23-44-51:public@myrouter Target[ezwf]: ifInErrors!0a-00-10-23-44-51&ifOutErrors!0a-00-10-23-44-51:public@myrouter 在community@router后面,可以加上其他SNMP沟通用的 参数,其语法如下: community@router[:[port][:[timeout][:[retries][:[backoff][:version]]]]] 如果要监测非透过SNMP提供的数值,可利用外部程序收 集数据。外部程序必须传回四行输出数据。 第一行:第一个参数值,例如”incoming bytes count” 第二行:第二个参数值,例如”outgoing bytes count” 第三行:表示系统uptime的字符串 第四行:表示Target名称的字符串 例如: Target[ezwf]: `/usr/local/bin/df2mrtg /dev/dsk/c0t2d0s0` 我们也可以将多个叙述式组合成一个数学式,表示将多笔 资料加总起来,如下所示: Target[ezwf]: 2:public@wellfleetA + 1:public@wellfleetA * 4:public@ciscoF MRTG组态文件中的设定选项相当多,可参考MRTG设定说明(http://people.ee.ethz.ch/~oetiker/webtools/mrtg/config.html),其中提供各选项的说明及范例。 5. 测试MRTG输出 当mrtg组态档修改完成后,可执行mrtg mrtg.cfg,如果一切正确的话,应该会在WorkDir目录下产生HTML文件及一些png图档,便可开启这些HTML档检查产生的输出是否如预期结果。 6. 自动执行MRTG程序 一般透过MRTG要观察的是长期趋势,因此必须将MRTG设定为连续定期执行,方能将收集到网络信息描绘成连续图形。以Unix系统为例,通常以编写crontab达到此效果,例如执行: 12 crontab –e 并在crontab中加入类似下面这行设定: 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /mrtg/bin/mrtg /mrtg/conf/mrtg.cfg 如此便会每5分钟执行一次mrtg程序而得到网络流量图。 (三)利用MRTG监看其他系统资源 其实MRTG的原理就是将收集到的数据绘成图形以便于观察实时状况及长期趋势,因此不论是让MRTG透过SNMP向远程网络设备取得接口数据,或者透过外部程序产生数据,都可以达到相同的效果。接下来要介绍几种从网络上取得可以与MRTG结合的外部程序,系统管理者也可以自行撰写程序,只要程序输出结果符合MRTG程序读取数据的格式即可。 1. mrtg-ping-probe 可利用此程序测量与其他网络设备之间的来回时间及封包遗失率。mrtg-ping-probe程序可从网络上直接下载,其网址为 ftp://ftp.pwo.de/pub/pwo/mrtg/mrtg-ping-probe/,目前最新的版本是mrtg-ping-probe-2.0.2。mrtg-ping-probe的执行方式是: mrtg-ping-probe mrtg-ping-probe –o Target[yahoo.com]: „/usr/local/mrtg/mrtg-ping-probe www.yahoo.com‟ 2. 系统CPU Load 除了网络流量及状况可利用MRTG观测状况之外,我们也可以针对服务器的运作状况收集数据,让MRTG程序将之绘成图形以利监测。在http://perso.wanadoo.fr/sebastien.godard/ 提供的sysstat软件包,可用来收集系统CPU信息。Sysstat将会安装crontab,让系统定期(默认值为一小时)执行Unix系统提供的sa1指令。Sysstat中还包含一个perl程序,从sa1定期收集到的数据中取出最近的数据。接下来,我们便可在mrtg组态档的Target处设定: 13 Target[server]: ‘/the/path/of/perl.script’ 3. DNS Load 除了系统整体的CPU负载之外,我们有时也会想针对某种特定应用的负荷量进行观测,例如DNS服务器的统计数据。MRTG软件包中便附带一个perl程序可帮助我们取得相关信息,contrib/stat/stat.pl(MRTG的contrib目录下提供许多很有用的统计数据收集程序)。在将stat.pl程序加入mrtg组态文件之前,必须先在crontab中加入一个script,让DNS服务器定期产生named.stats档,并将旧的named.stats档删除: #!/bin/sh rm /var/named/named.stats /usr/local/sbin/ndc stats 至于stat.pl档案中,$HOSTNAME,$LOG,$RUN等参数必须根据系统环境修改,之后便可设定在mrtg组态当的Target定义中: Target[dns]: ‘/usr/local/mrtg/stat.pl’ 参考数据 1. Cisco IOS NetFlow(http://www.cisco.com/warp/public/732/Tech/nmp/netflow/) 2. Multi Router Traffic Grapher(http://people.ee.ethz.ch/~oetiker/webtools/mrtg/) 3. NetFlow使用分析说明(国立交通大学提供)http://netflow.nctu.edu.tw/netflow.html 14 因篇幅问题不能全部显示,请点此查看更多更全内容