服务器 频道

在LINUX下用MRTG实时记录网络流量

    【IT168 专稿】最近,我们成功在LINUX下利用MRTG软件实现了实时记录多个网络设备的流量的功能,下面我将整个实现方案介绍如下。

一、利用LINUX作为系统平台的好处

(一)成本低

     这个不用多说了,我们使用是的红旗LINUX4.1桌面版,是一个从红旗网站:http://www.redflag-linux.com下载的ISO文件,自己刻录的光盘。

(二)可以在低配置的微机上运行

     我们使用的是一台PII400、64M内存的联想台式微机,这样的配置如果运行WIN2000系统的话,系统本身就会很慢,更不用说运行MRTG软件来实时检测网络设备的端口流量了。而我们安装了LINUX后,系统一直运行的很稳定,MRTG也工作的很好,这就是LINUX的魅力。

(三)远离病毒

     如果我们在这台机器上安装WIN98的话,系统很容易就崩溃,而装WIN2000的话,现在网络病毒又这么多,而在相同的网络环境中,一台微机安装LINUX操作系统远比安装WINDOWS系统的存活期要长的多。

二、具体配置过程

(一)网络拓朴

     如图1所示,MRTG主机位于两台CISCO网络之下,我们本例就以MRTG实时记录这两台网络设备的流量为例来进行说明。

 

(二)必要的准备工作

1、MRTG主机


     首先要下载并安装APACHE(作为网页发布用,网址:http://www.apache.org/),我们使用的是rpm的安装版本,这样可以最大限度的简化操作,提高成功率。安装完apache后,默认的网页发布文件位于/usr/local/apache/htdocs目录下,我们在该目录下再新建一个mrtg目录,用来以后存放生成的网页文件。另外apache的启动是进入/usr/local/apache/bin目录下,执行./apachectl start命令、PERL(编译MRTG,网址:http://www.perl.com/)。

     其次是MRTG下载与安装,网址:www.mrtg.org。下载下来的文件名为mrtg-2.12.2.tar.gz。先用gunzip mrtg-2.12.2.tar.gz解压,再用tar xvf mrtg-2.12.2.tar解开tar文件。安装很简单,就是以下几条命令:

./configure --prefix=/usr/local/mrtg-2(定义将mrtg安装到/usr/local/mrtg-2目录下) make make install

     安装完毕后,我们可以进入/usr/local/mrtg-2/bin目录,执行perl mrtg看一下mrtg是否可以正常运行,如果出现如下提示,就说明安装已经成功。

usage: mrtg <config-file>
mrtg-2.12.2 is the Multi Router Traffic Grapher. If you want to know more about this tool, you might want to read the docs. They came together with mrtg! Home: http://people.ee.ethz.ch/~oetiker/webtools/mrtg/

2、网络设备的设置

   1)安装mrtg的机器与交换机连接正确并可以正常通讯,最直接有效的方法就是在PC机端PING一下交换机的IP地址,能PING通说明网络连接是正常的。

     2)对交换机进行SNMP设置,交换机默认设置的密码为public,本例中我们使用默认设置。具体设置根据具体网络设置而定,本例中CISCO交换机进行SNMP设置,用“snmp-server community public RO”这条命令实现。

(三)开始配置并生成网页文件

     1)生成配置文件,进入/usr/local/mrtg-2/bin目录下,执行:

perl cfgmaker public@192.168.3.253 --global "WorkDir: /usr/local/apache/htdocs/mrtg" --output mrtg.cfg

     生成配置文件。其中public为ip地址为192.168.3.253的SNMP管理的只读密码,WorkDir: /usr/local/apache/htdocs/mrtg这条命令定义了生成的网页文件的存放目录,至于--output mrtg.cfg这条命令则是定义了在本地目录下生成mrtg.cfg的文件。

2)根据配置文件生成网页文件

perl mrtg mrtg.cfg

3)修改cfg文件使mrtg作为守护进程运行,即实现实时记录网络设备端口流量的功能,在配置文件的最后添加如下一条指令:

RunAsDaemon: yes

     重新执行perl mrtg mrtg.cfg即可。

4)将多个网页文件合并成一个文件

perl indexmaker --output=/usr/local/apache/htdocs/mrtg/index.html mrtg.cfg

     这样就会在/usr/local/apache/htdocs/mrtg目录下生成一个名为index.html网页文件,里面包括了ip为192.168.3.253的交换机的所有端口的流量情况。

3)实时记录多台网络设备的流量。要实现这个功能,就要用到LINUX下的后台进程这个功能,过程为:

a)停掉mrtg

ps -ef | grep mrtg kill -9 mrtg的进程号

b)在后台运行第一个mrtg程序

perl mrtg mrtg.cfg &

c)在后台运行第二个mrtg

perl cfgmaker public@192.168.3.1 --global "WorkDir: /usr/local/apache/htdocs/mrtg" --output mrtg192.168.3.1.cfg perl mrtg mrtg192.168.3.1cfg &

d)将生成的ip地址为192.168.3.1的交换机的多个端口的网页文件合并成一个网页文件: 

perl indexmaker --output=/usr/local/apache/htdocs/mrtg/index1.html mrtg192.168.3.1.cfg

      利用后台进程这个功能就可以实现同时运行多个mrtg程序,也就可以实时记录多台网络设备的端口流量了。

三、小结

    利用LINUX平台运行MRTG软件,可以在低配置的微机上实现对多台网络设置的端口流量实时监控,不仅方便我们实现网络管理,而且还可以帮助我们深刻理解网络知识,我举一例来说明,见图2和图3。


图2


图3

    从图1的拓朴结构中我们可以看到,ip为192.168.3.253的交换机(简称2924交换机)是接在ip为192.168.3.1(简称3550交换机)的交换机的下面的,其中2924交换机是接在3550交换机的第19端口上的。3550的向上级联口是24口。我要说明的是2924交换机的第18端口的端口流量最大达到过4.8M,而3550交换机的出口流量最大也就是4M。这就说明使用交换机可以将本交换机各个端口间的流量控制在本交换机中,不会向上一级交换传播。

0
相关文章