Chinaunix首页 | 论坛 | 博客
  • 博客访问: 657204
  • 博文数量: 759
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4845
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 13:51
文章分类

全部博文(759)

文章存档

2011年(1)

2008年(758)

我的朋友

分类:

2008-10-27 13:51:07


  为了全面衡量网络运行状况,就需要对网络状态做更细致、更精确的测量。本文向你介绍一款基于SNMP的典型网络流量统计分析工具MRTG(MultiRouter Traffic Grapher, MRTG)的使用方法。随着Linux应用的日益广泛,有大量的网络使用Linux操作系统。为了全面衡量网络运行状况,就需要对网络状态做更细致、更精确的测量。SNMP的制订为测量提供了有力支持。MRTG(MultiRouter Traffic Grapher, MRTG)就是基于SNMP的典型网络流量统计分析工具。它耗用的系统资源很小,因此有很多外挂的程序也依附在MRTG下。它通过SNMP从设备得到其流量信息,并将流量负载以包含JPEG格式图形的HTML文档的方式显示给用户,以非常直观的形式显示流量负载。
  
  工作原理
  
    网络的资料总流量(网卡的资料传送总数)、CPU使用率以及特殊服务(例如Squid的代理服务)等的封包传送率(或者说是流量)是网络管理人员所必须要注意的事项。因为当主机的CPU使用率过高时,系统可能呈现不稳定的状态,这就需要注意是哪一个服务或者谁在尝试窃取我们的资料。因此,网络管理方面,有必要了解我们主机的流量状态,并视流量来加以限制或者是加大带宽。
  
    我们可以从MRTG的主页软件。在...示例如图1所示。
  
  
  图1 MRTG流量监测图的输出结果
    MRTG是用Perl写成的,并且使用了zlib、gd以及png等函数(zlib用来压缩图表、gd用来绘制图表)。服务器中已经含有下列的软件:perl(perl-5.0xx以上)、zlib(zlib-1.1.3-xx以上)、gd(gd-1.3.xx以上)、libpng和Apache。
  
    可以用RPM来确认它们:
  
  
    rpm -qa | grep perl
    rpm -qa | grep zlib
    rpm -qa | grep gd
    rpm -qa | grep libpng
  
  
  
    另外,由于MRTG以HTTP的格式输出成图表来显示,因此必须要安装好Apache。以下,我们使用了预设的Apache路径,为/usr/local/apache/htdocs这个路径来安装MRTG输出的图表。要注意,如果没有Apache,虽然仍可以强行执行MRTG,但那就无法显示图表了。
  
  安装MRTG
  
    由于MRTG是通过SNMP通讯来要求资料,因此Linux上需要先安装相应的软件,通常是安装ucd-snmp这套软件。
  
    1.ucd-snmp-4.2.1.tar.gz,mrtg-2.9.17.tar.gz。
  
    2.安装ucd-snmp-4.2.1.tar.gz。
  
  
    [root@tsai/root]#cd /usr/local/src
    [root@tsaisrc]#cp /root/ucd-snmp-4.2.1.tar.gz
    [root@tsaisrc]#tar -zxvfucd-snmp-4.2.1.tar.gz
    [root@tsaisrc]#cd ucd-snmp-4.2.1
    [root@tsaiucd-snmp-4.2.1]# ./configure--prefix=/usr/local/snmp
    [root@tsaiucd-snmp-4.2.1]# make
    [root@tsaiucd-snmp-4.2.1]# makeinstall
  
  
  
    3.启动ucd-snmp。
  
    直接在shell下面打上/usr/local/snmp/sbin/snmpd即可,或者直接加在/etc/rc.d/rc.local当中,就可以自动开机启动了。
  
    4.安装。
  
  
    [root@tsai/root]# cd/usr/local/src
    [root@tsaisrc]# cp/root/mrtg-2.9.17.tar.gz.
    [root@tsaisrc]# tar-zxvfmrtg-2.9.17.tar.gz
    [root@tsaisrc]# cdmrtg-2.9.17
    [root@tsaimrtg-2.9.17]# ./configure--prefix=/usr/local/mrtg-2
    >--with-gd=/usr/include
    >--with-gd-lib=/usr/lib
    >--with-gd-inc=/usr/include
    >--with-png=/usr/include
    >--with-zlib=/usr/include
    [root@tsaimrtg-2.9.17]# make;makeinstall
    [root@tsaimrtg-2.9.17]# mkdir/usr/local/apache/htdocs/mrtg
  
  
  
    (请注意,这里与你的WWW主页的放置地点有关,请按照你的系统来设定,另外,由于我们需要设定网络流量、CPU使用率,因此在mrtg中,再建立两个子目录,比较容易管理。)
  
  
    [root@tsaimrtg-2.9.17]# mkdir/usr/local/apache/htdocs/mrtg/net
    [root@tsaimrtg-2.9.17]# cpimages/*/usr/local/apache/htdocs/mrtg/net
  
  
  
    到现在我们就已经正确地安装了MRTG系统。
  
  检测网卡流量
  
    要使用MRTG来作图非常简单,只要几个小步骤就可以自动监测流量。首先以MRTG附的程序来制作一个参数项(预设为mrtg.cfg),然后修改一下mrtg.cfg这个参数项,再直接执行三次参数文件,之后用MRTG程序的小软件直接制作成首页,就可以察看图表了。
  
    设定MRTG的方法如下:
  
  
    [root@tsaimrtg-2.9.17]# cd/usr/local/mrtg-2/bin
    [root@tsaibin]#. /cfgmaker--
      output=/usr/local/apache/htdocs/mrtg/net/mrtg.cfg
    >public@vbird.adsldns.org
    [root@tsaibin]# vi/usr/local/apache/htdocs/mrtg/net/mrtg.cfg
  
  
  
    不过由于程序自动设定的mrtg.cfg会有问题,因此,请将下面这三行修改成你自己的样式。
  
  
    WorkDir:/usr/local/apache/htdocs/mrtg/net/
    Options[_]:growright,bits
    Language:GB2312
    [root@tsaibin]# ./mrtg/usr/local/apache/htdocs/mrtg/net/mrtg.cfg
  
  
  
    开始测试你的参数项,要执行三次,就可以正常工作了,不过,若是有问题的话,就需要改mrtg.cfg,再执行直到没有错误发生为止。
  
  
    [root@tsaibin]# ./indexmaker
    >--output=/usr/local/apache/htdocs/mrtg/net/index.html
    >--title=VBird主机流量统计表
    >/usr/local/apache/htdocs/mrtg/net/mrtg.cfg
  
  
  
    上面这个程序indexmaker是在制作首页。会自动地输出一个index.html的文件中。
  
  
    /usr/local/apache/htdocs/mrtg/net
  
  
  
  
    注意:在public@vbird. adsldns.org这一行,public是有其意义的(在SNMP这个通讯服务里面的预设搜寻的一个代码)。如果主机的动态DNS名称为your.domain.name,则就一定要写成public@your. domain.name才行。
  
    在设定五分钟检测一次之后,就可以开始检测。然后就可以通过浏览器访问地,选择适当?..臣菩畔⒌耐急怼?/a>
  
  检测CPU负载量
  
    检测CPU负载量时,需要使用到额外的外挂程序,就是sysstat这个程序。
  
    1.并安装sysstat-4.0.2-1.i386.rpm:
  
  
    $ rpm-ivhsysstat-4.0.2-1.i386.rpm
  
  
  
    2. 编写外挂程序
  
    可以应用安装完sysstat套件后产生的/usr/bin/sar程序进行外挂程序的编写,也可以使用bash写一个监测CPU的小程序。示例如下:
  
  
    [root@tsaicpu]#vimrtg.cpu
    ---程序开始----
    # !/bin/bash
    # 这个程序是用来检测CPU的小外挂程序。
    # 1.开始使用sar来监测CPU的user及System负载率
    cpuusr=`/usr/bin/sar-u13|grepAverage|awk'{print$3}'`
    cpusys=`/usr/bin/sar-u13|grepAverage|awk'{print$5}'`
    UPtime=`/usr/bin/uptime|awk'{print$3""$4""$5}'`
    #2.列出四个数据(前两个为数字)
    echo$cpuusr
    echo$cpusys
    echo$UPtime
    echovbird.adsldns.org(这里写你的主机名称)
    ----程序结束----
  
    [root@tsaicpu]#chmod755mrtg.cpu(设定成可执行)
    [root@tsaicpu]#./mrtg.cpu(测试看可执行否)
  2.0
    5.4
    1day,22:30,
    vbird.adsldns.org
  
  
  
    3.开始设定MRTG参数项,方法如下:
  
  
    [root@tsaicpu]
    # vi mrtg.cfg.cpu
    ----程序开始----
    ###GlobalConfigOptions
    ###Togetbitsinsteadofbytesandgraphs growingtotheright
    WorkDir:/usr/local/apache/htdocs/mrtg/cpu/
    Language:GB2313
    Target  
    [localhost]:`/usr/local/apache/htdocs/mrtg/cpu/mrtg.cpu`
    MaxBytes[localhost]:100
    Options[localhost]:gauge,nopercent,growright
    YLegend[localhost]:CPUloading(%)
    ShortLegend[localhost]:%
    LegendO[localhost]: CPU使用者负载;
    LegendI[localhost]: CPU纯系统负载;
    Title[localhost]:CPU?t???v
    PageTop[localhost]:
  
  
    这之后开始执行参数项,注意,要执行三次以上:
  
  
    /usr/local/mrtg-2 
    /bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu
  
  
  
    4.写入到/etc/crontab当中:
  
  
    */2****root/usr/local/mrtg-2
    /bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu>/dev/null2>&1
  
  
  
  
    这样就OK了,直接将Web指
【责编:admin】
--------------------next---------------------

阅读(343) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~