建议:首先建议安装系统时选择安装成服务器,把perl,apache都安装上,这样就可以节省很多包的安装。
一,Centos下安装mrtg安装
每个人的Linux基础不同,安装方法也不同,建议使用两种最简便的安装方法
1.yum install mrtg (前提是电脑已经可以上网)
系统自动会去mirro(镜像服务器)去找安装包,我发现国内用户使用的是163的镜像。
目前的版本是:mrtg-2.14.5-2,好像2.15的版本都有了,也不一定要用最新的码。
2.安装mrtg rpm包,rpm安装方式,大家可以到网上去搜索一下。也可以到如下地址下载:
http://oss.oetiker.ch/mrtg/pub/mrtg-2.15.1.tar.gz
-------------------------------rpm安装---------------------------------------------
tar-zxvfmrtg-2.15.1.tar.gz
cdmrtg-2.15.1
./configure--prefix=/usr/local/mrtg(mrtg的安装路径)
make
makeinstall
----------------------------------OK----------------------------------------------------
二、修改apache配置及启动他(apache服务的进程名叫httpd)
apache的配置文件为:/etc/httpd/conf/httpd.conf
#vi etc/httpd/conf/httpd.conf
修改apache默认工作目录DocumentRoot"/var/www/html"
为DocumentRoot"/var/www/mrtg"就是把web的默认页面定向到mrtg目录下
建立mrtg目录:mkdir/var/www/mrtg
查看httpd服务是否正常启动(service httpd status)。
启动httpd服务(service httpd start)
二.mrtg基本配置
生成主配置文件(可以使用man cfgmaker查看帮助了解具体命令参数的含义)
方法1.cd /usr/bin/ (mrtg安装目录,不同的系统可能不同,可以使用find -name mrtg来查找mrtg的安装目录),如果community 中包含“)”,“@”等特殊字符需要用\转译一下,@用\@代替。
cfgmaker --global 'WorkDir:/var/www/mrtg' --global"language:GB2312" --global'Options[_]:growright,bits' --ifref=ip --output/etc/mrtg/Mymrtg.cfg mycommunity@192.168.1.254(被监控的IP)
2.使用编辑模式
cfgmaker \
--global WorkDir:/var/www/mrtg
--global language:GB2312 \
--global Options[_]:growright,bits \
--ifref=nr \
--community=*3rLkDb\) \
119.6.132.3 \
--output /etc/mrtg/SCNC-169-GPJF-ME60-1.cfg
这样会在/etc/mrtg/下生成配置文件Mymrtg.cfg
参数简介:
WorkDir:http服务器的工作目录
language:GB2312 指定编码方式,比如utf-8
Options[_]:growright,bits
ifref能指定为nr、ip、eth、descr、name。nr表示用接口在MIBII库中Interface接口的ifIndex来识别接口;IP表示使用ip地址识别接口;eth表示使用接口的物理地址标识接口;descr表示使用接口的描述信息来标识接口;name表示使用接口名来标识接口。一般来说ip地址是唯一的,不过有些情况下接口是没有IP地址的,例如交换机就会出现这种情况。对于接口来说nr(接口号)是唯一的,因此对于一般情况使用IP地址就能了,而对于其他一些情况则需要采用nr了
output/etc/mrtg/Mymrtg.cfg
我统一存放在/etc/mrtg/目录下。
mycommunity@192.168.1.254
三、生成MRTG网页主页面文件(索引文件)
这步的作用就是把不同端口的图汇总到一个html文件中,方便查看流量,自己也可以进行方便自己的二次开发。
indexmaker /etc/mrtg/Mymrtg.cfg--output=/var/www/mrtg/index.html --title="MyMrtg"
也可已使用多行编辑方式,逐行输入,或者直接粘贴,注意粘贴的话需要把">"删掉
#/usr/bin/indexmaker \
> --output=/var/www/mrtg/index.html \
> --title="liuliang tongji" \
> /etc/mrtg/Mymrtg.cfg
注意执行命令的路径为:/usr/bin/因为indexmaker在那个目录下就在哪儿执行。
四、启动MRTG
执行
(其实也可以直接执行 mrtg/etc/mrtg/Mymrtg.cfg,如果报错的话就用上面那条命令吧,主要是因为环境配置问题,有空你也可以解决它,以便直接执行mrtg命令)
如果报错按照提示执行3次就行了(因为第一次执行,目录下没有.old文件可更新会出警告,第二次没有.old文件可以删除也会出警告,没关系的)
MRTG生成的web页面是静态的,为了能让其不断的刷新,需要将以上命令添加进crontab
注:crontab 是Linux定期任务执行程序如果没有的话需要安装,相关内容参考文章:LINUX
crontab-e
添加如下一行
*/5 * * * * /bin/env LANG=C /usr/bin/mrtg/etc/mrtg/Mymrtg.cfg
:wq 保存退出,若果正确提示:crontab: installing newcrontab,如果错误你会收到邮件,可以查看邮件看错误原因。
注:此行表示每五分钟刷新一次,你可以根据自己的需要修改刷新时间间隔。也可以通过修改相应的mrtg配置文件实现啊。
注:如果网页打开出现乱码问题,直接修改httpd.conf的配置文件,AddDefaultCharsetUTF-8改为AddDefaultCharsetGB2312保存重启httpd服务。我的已经添加了gb2312了,所以不需要修改。
其他提示:我今执行cfgmaker是出现错误提示:
-----------------------------------------执行cfgmaker错误提示----------------------------------
SNMP Error:
no responsereceived
SNMPv1_Session (remote host:"192.168.1.1" [192.168.1.1].161)
community: "public"
request ID: -564855723
PDU bufsize: 8000 bytes
timeout: 2s
retries: 5
backoff: 1)
at /usr/local/mrtg/bin/../lib/mrtg2/SNMP_util.pm line 627
SNMPWALK Problem for 1.3.6.1.2.1.1 onpublic@192.168.1.1::::::v4only
at/usr/local/mrtg/bin/cfgmaker line 918
WARNING: Skipping public@192.168.1.1: as no info could beretrieved
问题解决:
1.查看服务器到被监控设备IP网络是否畅通
2.查看read only community string是否正确 不同的设备配置方法不同,流行的设备主要有Cisco华为,中兴
3.查看设备开启的snmp版本和Mrtg服务器的版本是否相同,我的就出在这里。我的设备原来只支持V3,后来我开启了所有支持版本就可以了,估计Mrtg侧也是可以修改的(以后再研究)
-------------------------------------------------------------------
最后:每个人在具体的工作时会碰到各种各样的问题,希望不要怕难,子要自己愿意解决,没有解决不了的困难,应为Mrtg流量监控已经是很成熟的技术,希望大家到网上多搜索多学习。另外Mrtg本身带的帮助文件非常详细,如果你精通English的话,估计很快就搞定了。
另外特别提醒注意各环节的执行路径
以上内容为原创^_^(网上很类似的也很多)
相关参考文章:Linux系统中使用Mrtg监控网络流量