本人实战:在RedHat9上安装MRTG监控本机网卡流量
时间:2006-03-25 来源:夜鹰007
一直想搞通MRTG,可是每次都无功而返,在得到platinum老大的提示后,才锰然惊醒,终于做好了MRTG,不敢独享,特写出来,以飨和我一样有过迷惑的朋友。这里再次感谢platinum.
系统环境:redhat9.0
必备软件:
系统必须已经安装以下软件,这些软件都可以在光盘里找的到:
gd-1.8.4-11
gd-devel-1.8.4-11
libpng-1.2.2-16
libpng-devel-1.2.2-16
libpng10-1.0.13-8
libpng10-devel-1.0.13-8
perl-5.8.0-88
zlib-1.1.4-8
zlib-devel-1.1.4-8
httpd-manual-2.0.40-21
httpd-2.0.40-21)
gcc-3.2.2-5
net-snmp-5.06-17
mrtg-2.9.29.tar.gz
MRTG是工作在SNMP协议上的,你必须安装SNMP才能启动MRTG来观测你的网络,我就是没有配置好NET-SNMP,所以MRTG显示出来的会没有图形的,我就是犯了这样的错误。有的网络上要求装UCD-SNMP,我的redhat 9.0默认装的是net-snmp,所以我就没有用ucd-snmp,没有试过,不过我想应该是大同小异吧。
1.首先来安装配置net-snmp
#rpm –ivh net-snmp-5.06-17 #一般redhat9.0会默认安装上去的。
#vi /etc/snmp/snmpd.conf #安装完以后,配置/etc/snmp/snmpd.conf文件,使其能配合mrtg工作。
转到90行把下面的#号去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc #在89行
把下面的语句#在62行
access notConfigGroup "" any noauth exact systemview none none
改为:
access notConfigGroup "" any noauth exact mib2 none none
转到397行
rocommunity mrtg
记得哟,这是的community是mrtg,而不是常见的public,这个以后要用到记着要,我就是用了很多次public才没有得到图形,现在想起,笨死了。可能在ucd-snmp中默认的是public,没有用过。Ro的意思吗read only,也是听人家说的(还有朋友问,没有这一行怎么办,嘿嘿,加上去吗!竟还问这样的问题!)。
ok,改完以后,就可以启动snmpd服务,SNMP配置也到此完成了。
#/etc/rc.d/init.d/snmpd start
2.安装mrtg
tar zvxf mrtg-2.9.29.tar.gz
cd mrtg-2.9.29
./configure --prefix=/usr/local/mrtg \
--with-gd=/usr/include \
--with-gd-lib=/usr/lib \
--with-gd-inc=/usr/include \
--with-png=/usr/include \
--with-zlib=/usr/include &&
make &&
make install
3.配置mrtg
#mkdir /var/www/html/mrtg 这里/var/www/html是www的默认主页地址,大家可能跟我不同
#cp images/* /var/www/html/mrtg images/*是在解压缩mrtg-2.9.29.tar.gz的mrtg-2.9.29文件夹里
#/usr/local/mrtg/bin/cfgmaker --output=/var/www/html/mrtg/mrtg.cfg \
>;[email protected] #这里是创建一个mrtg.cfg文件
上面请特别注意:在 [email protected]这一行呢,mrtg 是有其意义的(在 snmp 这个通讯服务里面的预设搜寻的一个代码,默认的可能是public,这就是刚才要查看/etc/snmp/snmpd.conf里的原因了),所以,如果你的主机的动态 DNS 名称为 your.domain.name 则你就『一定』要写成 [email protected] 才行!千万不要弄错了!已经有很多网友遇到这个问题!
在/var/www/html/mrtg目录下,并且监控192.168.0.1的地址,本例这个地址是本机的网卡IP地址
#vi /var/www/html/mrtg/mrtg.cfg #修改mrtg.cfg文件,主要修改以下内容,以符合你的实际情况
WorkDir: /var/www/html/mrtg
Options[_]: growright, bits
Language:GB2312
这个要注意的一点是他们前边不要有空格,否则会有什么” ERROR: Line 8 ( WorkDir: /var/www/html/mrtg) in CFG file (mrtg) does not make sense”的错误。
下面接着:
#/usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg.cfg
这个需要运行3次,前两次都会报错,不用去理会他,第3次就应该没有错误了,不过,若是有问题的话,就需要修改mrtg.cfg,再执行直到没有错误发生为止。
错误大概是这样的:
Rateup WARNING: /usr/local/mrtg2/bin/rateup could not read the primary log file for localhost
Rateup WARNING: /usr/local/mrtg2/bin/rateup The backup log file for localhost was invalid as well
Rateup WARNING: /usr/local/mrtg2/bin/rateup Can't remove localhost.old updating log file
Rateup WARNING: /usr/local/mrtg2/bin/rateup Can't rename localhost.log to localhost.old updating log file
4.制作首页index.html:
#/usr/local/mrtg/bin/indexmaker \
>;--output=/var/www/html/mrtg/index.html \
>;--title=服务器流量统计 \
>;/var/www/html/mrtg/mrtg.cfg
上面这个程序indexmaker是在制作首页。会自动地输出一个index.html的文件中。如果说你以后修改了这个文件(比如增加对CPU,硬盘等的侦测,要再重新生成一次,否则图面会出不来的.)
5.设定每5分钟执行一次
使用手工运行mrtg并不能定时产生适当的统计信息,因此最好还是定时自动运行mrtg来生 成统计信息,默认为五分钟运行一次。
作为root身份crontab -e进入编辑状态,添加内容 如下:
*/5 * * * * root /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg.cfg
ok!到此为止,配置完毕,记得一定要重新启动snmp和httpd服务!
访问:
http://192.168.0.1/mrtg/
就能看到网络流量图了
FAQ:
http://bbs.chinaunix.net/forum/viewtopic.php?t=303650&highlight=emailwht
其它如果要做硬盘,内存,CPU等的MRTG,请看我的MRTG.CFG文件的配置.
参考网页:
http://linux.vbird.org/linux_security/old/04mrtg.php
http://www.5ilinux.com/blog/archives/000120.html
------------------------------------------------------------------- 1:我做到这步的时候出现以下信息:
[root@localhost /]# /usr/local/mrtg-2/bin/mrtg /var/www/html/mrtg/mrtg.cfg
-----------------------------------------------------------------------
ERROR: Mrtg will most likely not work propperly when the environment
variable LANG is set to UTF-8. Please run mrtg in an environment
where this is not the case:
env LANG=C /usr/local/mrtg-2/bin/mrtg ...
-----------------------------------------------------------------------
请问我该怎么做呢? 2:我再MAKE index.html的时候
/usr/bin/indexmaker --output=/var/www/html/mrtg/index.html --title=流量控制 /var/www/html/mrtg/mrtg.cfg
Possible precedence problem on bitwise | operator at /usr/bin/../lib/mrtg2/BER.pm line 601.
Can't locate package $VERSION for @MRTG_lib::ISA at /usr/bin/indexmaker line 49
main::BEGIN() called at /usr/bin/../lib/mrtg2/MRTG_lib.pm line 49
eval {...} called at /usr/bin/../lib/mrtg2/MRTG_lib.pm line 49
我哭啊,图倒是出来了!但它就是个摆设!!没有动啊!!啊~~~~ 3:
我再MAKE index.html的时候
/usr/bin/indexmaker --output=/var/www/html/mrtg/index.html --title=流量控制 /var/www/html/mrtg/mrtg.cfg
Possible precedence problem on bitwise | operator at /usr/bin/../l..........
我再MAKE index.html的时候
/usr/bin/indexmaker --output=/var/www/html/mrtg/index.html --title=流量控制 /var/www/html/mrtg/mrtg.cfg
Possible precedence problem on bitwise | operator at /usr/bin/../l.......... 记的有一次我的也是这样的错误,好象是mrtg的问题,安装新版本而没有卸载旧版本造成的.
我记的我好象是这样解决的:
看一下是不是旧版本还在
rpm -qa|grep mrtg
如有出来
mrtg-2.9.17-13
那就先卸载掉
rpm -e mrtg-2.9.17-13 #此为 redhat 9.0默认的版本
而后
tar zvxf mrtg-2.9.29.tar.gz #安装此版本
cd mrtg-2.9.29
./configure --prefix=/usr/local/mrtg \
--with-gd=/usr/include \
--with-gd-lib=/usr/lib \
--with-gd-inc=/usr/include \
--with-png=/usr/include \
--with-zlib=/usr/include &&
make &&
make install
记着一着要用
/usr/local/mrtg/bin/cfgmaker,indexmaker,mrtg等命令
还有的是./configure也可以的,按其默认的了
试一下,祝君好运了
4:
# /usr/local/mrtg-2/bin/mrtg /var/www/html/mrtg/mrtg.cfg
-----------------------------------------------------------------------
ERROR: Mrtg will most likely not work propperly when the env.......... 我没有遇到过不过,看来你要检查一下你的语言设置了
vi /var/www/html/mrtg/mrtg.cfg
Language:GB2312
看一下你的系统默认语言是什么了
vi /etc/sysconfig/i18n
如果没有装简体支持,那......
而你的eng=c,这是什么,我没有见过,试一下如果eng=en(英语)也可以呀
5:
B2312
看一下你的系统默认语言是什么了
vi /etc/sysconfig/i18n
如果没有装简体支持,那......
而你的eng=c,这是什么,我没有见过,试一下如果eng=en(英语)也可以呀 我的配置文件是:
[root@localhost root]# cat /var/www/html/mrtg/mrtg.cfg
# Created by
# /usr/local/mrtg-2/bin/cfgmaker --output=/var/www/html/mrtg/mrtg.cfg [email protected]
48.105.146
### 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
Language:GB2312
EnableIPv6: no
######################################################################
系统语言是:
[root@localhost root]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
帮忙看看吧!我搞了一个月了MRTG真的很难琢磨呀! 6:
# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
帮忙看看吧!我搞了一个月了MRTG真的很难琢磨呀! 你试一下
vi /etc/sysconfig/i18n
LANG="en_US.UTF-8"
修改为
LANG="zh_CN"
reboot
再运行
/usr/local/mrtg-2/bin/mrtg /var/www/html/mrtg/mrtg.cfg
试一下了,如果解决了不要忘了帖出来,给其它朋友做一个参考
7:楼上的兄弟,按照你的方法,问题解决了,其他的配置都完成了.
但是新问题又来了,就是得不到监控的图!
另外我按照楼住的指点,在编辑/etc/snmp/snmpd.conf时找不到下列内容:
"转到397行
rocommunity mrtg
记得哟,这是的community是mrtg,而不是常见的public,这个以后要用到记着要,我就是用了很多次public才没有得到图形,现在想起,笨死了。可能在ucd-snmp中默认的是public,没有用过。Ro的意思吗read only,也是听人家说的。
ok,改完以后,就可以启动snmpd服务,SNMP配置也到此完成了。
8:
原帖由 "zcwhy" 发表: 楼上的兄弟,按照你的方法,问题解决了,其他的配置都完成了. 但是新问题又来了,就是得不到监控的图! 另外我按照楼住的指点,在编辑/etc/snmp/snmpd.conf时找不到下列内容: rocommunity mrtg
没有这一点一定要加上去呀,用public也可以,只是后面用/cfgmaker时后面用public@your IP,你再试一下,这一点一定要确定好,我就是没有配置这一点,也是没有图形出来的
9:就是在第397行插入:
原帖由 "zcwhy"]110.1 发表: .161) community: "mrtg" request ID: 2048428380 PDU bufsize: 8000 bytes timeout: 2s retries: 5 ..........
这是SNMP服务的community的问题,你试一下public,mrtg好象没有响应呀,再重起SNMP 服务
原帖由 "emailwht" 发表: 馐荢NMP服务的community的问题,你试一下public,mrtg好象没有响应呀,再重起SNMP 服务 /etc/rc.d/init.d/snmpd restart 其它都很正常
我改为了public 可以出现图,监控好象也有变化.
13:TO babywolf:参考一下我做的
17:MRTG Language Error Solution #1
原帖由 "zcwhy" 发表: 回头问一个安装MRTG的问题,我有个朋友安装mrtg不行: #./configure --prefix=/usr/local/mrgt-2 \ --with-gd=/usr/include \ --with-gd-lib=/usr/lib \ --with-gd-inc=/usr/include \ --with-png=/usr/includ..........
兄弟的问题我今天终于遇到了,也解决了,大原有包的基础上,安装上如下包就可以了
#/usr/local/mrtg/bin/cfgmaker --output=/var/www/html/mrtg/mrtg.cfg \
原帖由 lvboy09900 于 2006-3-24 10:26 发表 #/usr/local/mrtg/bin/cfgmaker --output=/var/www/html/mrtg/mrtg.cfg \ >;[email protected] #这里是创建一个mrtg.cfg文件 这条命令不能执行显示错误 >;mrtg@ip 什么意思? ...
#/usr/local/mrtg/bin/cfgmaker --output=/var/www/html/mrtg/mrtg.cfg [email protected] |