2009年1月
123
45678910
11121314151617
18192021222324
25262728293031
日 志 标 题 点击
基于路由策略的IP地... 379
做个ADSL+Lin... 1042
linux下mysq... 396
LINUX下用apa... 469
修改Linux登陆方... 743
vsftp进阶——虚... 481
RedHat Lin... 385
MRTG在linux... 427
鸟哥的Linux学习... 347
易学易用 Linux... 399
 
 
全部文章生活感慨科技新闻网络编程电脑故障Linux
MRTG在linux下的详细安装步骤
[作者:admin] [来自:本站原创] [天气:晴朗] [阅读:427次]

MRTG的安装配置
安装支持软件
我们这里以Rehat7.2为例子讨论MRTG的配置和安装。要安装MRTG需要安装以下软件包:GCC、Perl、gd、libpng和zlib。可以使用下面的命令来判断系统是否安装有这些软件包:

[root@mail doc]# rpm -qa|grep gd
gd-1.8.4-4
gd-devel-1.8.4-4

[root@mail doc]# rpm -qa|grep perl
perl-5.6.0-17
mod_perl-1.24_01-3

[root@mail doc]# rpm -qa|grep libp
libpng-1.0.12-2
libpng-devel-1.0.12-2

[root@mail doc]# rpm -qa|grep zlib
zlib-1.1.3-24
zlib-devel-1.1.3-24
[root@mail doc]# rpm -qa|grep gcc
gcc-2.96-98
gcc-g77-2.96-98
gcc-c++-2.96-98

如果发现哪个软件包没有安装,只需直接从redhat安装盘安装对应的rpm包即可,例如:
root@mail doc]# rpm -ivh zlib-1.1.3-24 zlib-devel-1.1.3-24

MRTG的安装
目前mrtg的最新版本为2.9.17:

[root@mail src]# tar xvfz mrtg-2.9.17.tar.gz
[root@mail src]# cd mrtg-2.9.17
[root@mail mrtg-2.9.17]# ./configure --prefix=/usr/local/mrtg-2
[root@mail mrtg-2.9.17]# make
[root@mail mrtg-2.9.17]# make install

到现在我们就已经正确地安装了MRTG系统。

配置SNMP服务
对于不同的设备,配置SNMP支持的方法是不一致的,具体请参考设备的随机文档,一般里面都有详细的介绍。这里我们讨论在Linux环境下配置SNMP服务器,以实现对本机流出流入数据的分析和报表(我的应用环境是使用Linux带动一个小型局域网上网,监控本机进出流量)。

在linux环境下安装snmp软件包是很容易的,只需要安装相应的软件包即可:

[root@mail doc]# rpm -qa|grep snmp
ucd-snmp-4.2.1-7
ucd-snmp-utils-4.2.1-7
ucd-snmp-devel-4.2.1-7

这时候运行下面的命令:

[root@mail doc]# /etc/rc.d/init.d/snmpd start
Starting snmpd: [ OK ]

如果命令输出如上所示,就表示snmp服务器启动正常。

为了配合mrtg使用,还要修改snmpd的配置,以使其允许mrtg读取其interface(网络接口)流量数据。

vi /etc/snmp/snmpd.conf

#view systemview included mib2

的内容修改为:

view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

然后将

access notConfigGroup "" any noauth exact systemview none none

修改为:

access notConfigGroup "" any noauth exact mib2 none none

然后再重新启动snmpd:

/etc/rc.d/init.d/snmpd restart

配置MRTG
下一步就是要配置mrtg,实现对网络设备的监控。mrtg的配置信息都是保存在mrtg.cfg文件中的,创建该文件并且在其中定义希望的监控特性。幸运的是一般不需要直接手工编辑该配置文件,因为mrtg软件包提供有cfgmaker配置工具,这是一个脚本文件,根据运行参数可以自动生成mrtg.cfg配置文件。在mrtg源码目录的bin子目录下你可以得到该工具。

首先在www服务器的DocumentRoot目录下创建一个子目录用来存放mrtg生成的统计文件,这里假设apache是默认安装,因此DocumentRoot在/var/www/html目录下,我们在该目录下创建子目录mrtg:

mkdir /var/www/html/mrtg

这里的/var/www/html/mrtg就是mrtg的工作目录。下面就生成mrtg配置文件:

cfgmaker --global "WorkDir: /var/www/html/mrtg" \
--global "Options[_]: growright,bits" \
--ifref=ip \
--output /etc/mrtg.cfg \
public@192.168.0.1

这里的--global参数表示后面的选项是对后面指定的设备都是有效的(如果希望对多个设备进行监控时,该参数就会发生作用)。WorkDir用来指示mrtg的工作目录;Options用来指定一些特定的选项,这里的growright,bits是用来指定默认options配置的,对于常见的应用来说默认options配置就可以满足需求了。ifref用来指示用什么选项来标识设备接口,这里指定使用IP地址来标识网络设备接口。ifref可以指定为nr、ip、eth、descr、name。nr表示用接口在MIBII库中Interface接口的ifIndex来识别接口;IP表示使用ip地址识别接口;eth表示使用接口的物理地址标识接口;descr表示使用接口的描述信息来标识接口;name表示使用接口名来标识接口。一般来说ip地址是唯一的,但是有些情况下接口是没有IP地址的,例如交换机就会出现这种情况。对于接口来说nr(接口号)是唯一的,因此对于一般情况使用IP地址就可以了,而对于其他一些情况则需要采用nr了。"--output /etc/mrtg.cfg"标识将生成的配置文件存放在/etc/目录下。"public@192.168.0.1"表示监控IP地址为192.168.0.1的设备,采用public作为共同体名通过snmp协议来监控设备192.168.0.1。

对于希望使用mrtg来对多个设备进行监控的情况,举例如下:

cfgmaker --global "WorkDir: /var/www/html/mrtg" \
--global "Options[_]: growright,bits" \
--ifref=descr \
--ifdesc=alias \
public@router1.place.xyz \
public@router2.place.xyz \
--global "Options[_]: growright" \
--ifref=name \
--ifdesc=descr \
public@switch1.place.xyz \
--ifdesc=name \
public@switch2.place.xyz > mrtg.cfg

这里指示监控四个设备:router1.place.xyz、router2.place.xyz、switch1.place.xyz
和switch2.place.xyz,所有的设备都采用共同体名public来进行监控。并且两个路由器采用descr来作为设备的描述信息,而两个交换机则采用alias作为设备描述(这两者是不同的,例如对于cisco路由器来说,对于descr来说设备描述为"Serial0",而对于aliasl来说则为"Link to HQ")。

对于我这里的应用环境来说,生成的mrtg.cfg内容如下:

# Created by
# /usr/local/mrtg-2/bin/cfgmaker --global 'WorkDir: /var/www/html/mrtg' --global 'Options[_]: growright,bits'
--output /etc/mrtg.cfg --ifref=ip public@192.168.0.1


### Global Config Options

# for UNIX
# WorkDir: /home/http/mrtg

# or for NT
# WorkDir: c:\mrtgdata

### Global Defaults

# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits

WorkDir: /var/www/html/mrtg
Options[_]: growright,bits

######################################################################
# System: 192.168.0.1
# Description: Linux 192.168.0.1 2.4.7-10smp #1 SMP Thu Sep 6 17:09:31 EDT 2001 i686
# Contact: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
# Location: Unknown (edit /etc/snmp/snmpd.conf)
######################################################################


### Interface 1 >> Descr: 'lo' | Name: '' | Ip: '127.0.0.1' | Eth: '' ###
### The following interface is commented out because:
### * it is a Software Loopback interface
#
# Target[192.168.0.1_127.0.0.1]: /127.0.0.1:public@192.168.0.1:
# SetEnv[192.168.0.1_127.0.0.1]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo"
# MaxBytes[192.168.0.1_127.0.0.1]: 1250000
# Title[192.168.0.1_127.0.0.1]: Traffic Analysis for 127.0.0.1 -- 192.168.0.1
# PageTop[192.168.0.1_127.0.0.1]: <H1>Traffic Analysis for 127.0.0.1 -- 192.168.0.1</H1>
# <TABLE>
# <TR><TD>System:</TD> <TD>192.168.0.1 in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
# <TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</TD></TR>
# <TR><TD>Description:</TD><TD>lo </TD></TR>
# <TR><TD>ifType:</TD> <TD>softwareLoopback (24)</TD></TR>
# <TR><TD>ifName:</TD> <TD></TD></TR>
# <TR><TD>Max Speed:</TD> <TD>10.0 Mbits/s</TD></TR>
# <TR><TD>Ip:</TD> <TD>127.0.0.1 (localhost)</TD></TR>
# </TABLE>


### Interface 2 >> Descr: 'eth0' | Name: '' | Ip: '211.99.43.111' | Eth: '00-d0-b7-b7-bb-30' ###

Target[192.168.0.1_211.99.43.158]: /211.99.43.158:public@192.168.0.1:
SetEnv[192.168.0.1_211.99.43.158]: MRTG_INT_IP="211.99.43.158" MRTG_INT_DESCR="eth0"
MaxBytes[192.168.0.1_211.99.43.158]: 1250000
Title[192.168.0.1_211.99.43.158]: Traffic Analysis for 211.99.43.158 -- 192.168.0.1
PageTop[192.168.0.1_211.99.43.158]: <H1>Traffic Analysis for 211.99.43.158 -- 192.168.0.1
</H1>
<TABLE>
<TR><TD>System:</TD> <TD>192.168.0.1 in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
<TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</TD></TR>
<TR><TD>Description:</TD><TD>eth0 </TD></TR>
<TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
<TR><TD>ifName:</TD> <TD></TD></TR>
<TR><TD>Max Speed:</TD> <TD>10.0 Mbits/s</TD></TR>
<TR><TD>Ip:</TD> <TD>211.99.43.158 (192.168.0.1)</TD></TR>
</TABLE>
### Interface 3 >> Descr: 'eth1' | Name: '' | Ip: '192.168.0.1' | Eth: '00-10-4b-0c-b4-23' ###

Target[192.168.0.1_192.168.0.1]: /192.168.0.1:public@192.168.0.1:
SetEnv[192.168.0.1_192.168.0.1]: MRTG_INT_IP="192.168.0.1" MRTG_INT_DESCR="eth1"
MaxBytes[192.168.0.1_192.168.0.1]: 1250000
Title[192.168.0.1_192.168.0.1]: Traffic Analysis for 192.168.0.1 -- 192.168.0.1
PageTop[192.168.0.1_192.168.0.1]: <H1>Traffic Analysis for 192.168.0.1 -- 192.168.0.1</H1
>
<TABLE>
<TR><TD>System:</TD> <TD>192.168.0.1 in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
<TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</TD></TR>
<TR><TD>Description:</TD><TD>eth1 </TD></TR>
<TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
<TR><TD>ifName:</TD> <TD></TD></TR>
<TR><TD>Max Speed:</TD> <TD>10.0 Mbits/s</TD></TR>
<TR><TD>Ip:</TD> <TD>192.168.0.1 (192.168.0.1)</TD></TR>
</TABLE>

运行mrtg
一旦生成正确的配置文件,就运行下面的命令:

/usr/local/mrtg-2/bin/mrtg /etc/mrtg.cfg

这将查询被监控的设备并在工作目录下创建初始的流量图和web页面,在前三次运行时可能会报告遗失日志文件的告警信息,不要理睬这些信息,只需要连续运行三次以后再运行就不会产生告警信息了。如果仍然出现告警那么就需要察看问题出在哪里了。

使用手工运行mrtg并不能定时产生适当的统计信息,因此最好还是定时自动运行mrtg来生成统计信息,默认为五分钟运行一次。作为root身份crontab -e进入编辑状态,添加内容如下:

*/5 * * * * /usr/local/mrtg-2/bin/mrtg /etc/mrtg.cfg

然后就可以通过浏览器访问地址http://192.168.0.1/mrtg/选择适当的接口地址察看流量信息了。如果希望生成类似于http://www.stat.ee.ethz.ch/mrtg/的信息,就需要自己手工编辑一个index.html文档存放在/var/www/html/mrtg目录下,内容为接口说明以及该接口的日统计信息的图即可。


本日志由 admin 于 2007-12-26 21:14:29 编辑
请在下面填写你的评论内容
您的大名:  验证码:  
评论内容: 评论内容支持HTML
上传图片:
相关图片: 网络图片地址
 
 
E-MAIL:shyxh123@sina.com 皖ICP备07001445号  

Copyright © 清风网络工作室 All Rights Reserved.