需要安装的软件包:httpd,perl,zlib ,gd,libpng,net-snmp,net-snmp-utils(提供snmpwalk命令支持)
下载mrtg安装包,解压缩
配置./configure,安装make;make install
安装的目录默认在/usr/local/mrtg-2
接下来打开被监控机的snmp设置,这里只列出linux主机的,windows的比较简单
基于ubuntu主机的snmp设置
vi /etc/snmp/snmpd.conf
1.将如下行打开,并将他的前一行注释掉
com2sec readonly  default         public
2.把“view system”修改为:
view mib included  .iso.org.dod.internet.mgmt.mib-2 fc
3.将access MyROSystem ""     any       noauth    exact  system   none   none
修改为:access MyROSystem ""     any       noauth    exact  mib2   none   none

4.修改/etc/default/snmpd,把snmp options下一行中的127.0.0.1删除,默认只允许本机访问
最后重启snmpd服务

基于redhat主机的snmp设置
vi /etc/snmp/snmpd.conf
1.com2sec notConfigUser default public这里的default可以改为网段或者ip,允许哪些主机看到你得snmp信息,默认为所有。public为团体名,可以改。
2.找到这一行access notConfigGroup "" any noauth exact read none none把read改为all
3.#view all included .1 80去掉改行的注释
之后重启snmpd服务

使用snmpwalk -v1 -c public ip来验证能否获取到snmp信息
接下来就要配置mrtg了。
在网站根目录下面建立mrtg的目录
mkdir /var/www/html/mrtg此目录下可以建立其他目录用来存放不同主机的相关文件。
使用cfgmaker来生成主机的配置文件,具体命令用法和参数参考官方说明http://oss.oetiker.ch/mrtg/doc/cfgmaker.en.html

./cfgmaker --global "WorkDir:/var/www/html/mrtg/192.168.10.
88" --global "Options[_]: growright,bits" --ifref=ip --output /var/www/html/mrt
g/192.168.10.88/mrtg.cfg public@192.168.10.88

运行mrtg env LANG=C /usr/local/mrtg-2/bin/mrtg /var/www/html/mrtg/192.168.10.88/mrtg.cfg
第一次会报错,一般运行三次后就好了

接下来生成mrtg主页文件,indexmaker命令用法参见官方说明http://oss.oetiker.ch/mrtg/doc/indexmaker.en.html

/usr/local/mrtg-2/bin/indexmaker /var/www/html/mrtg/192.168.10.88/index.html --
title=88主机流量统计 /var/www/html/mrtg/192.168.10.88/mrtg.cfg

设置mrtg每5分钟自动抓取流量
首先建立一个文件/var/www/mrtg.sh,内容如下
env LANG=C /usr/local/mrtg-2/bin/mrtg /var/www/html/mrtg/192.168.10.88/mrtg.cfg
chmod a+x /var/www/mrtg.sh
如果有多台主机的话就这样都写进来很方便
建立一个计划任务crontab -e
*/5 * * * * /var/www/mrtg.sh 每5分钟执行一次

现在打开浏览器看看流量出来了没有 http://ip/mrtg

此外还能使用mrtg来监控cpu,磁盘不过要自己写脚本来实现,感觉mrtg现在比较鸡肋,推荐使用nagios+pnp4,让nagios具有画图功能,实现cpu,磁盘,流量,数据库等的监控,并且画出的图片可以查询,而mrtg图片是固定的。