MRTG通过SNMP从设备中得到使用设备的网络流量信息,并把PNG格式图形以HTML方式显示出来,便于网络管理员对所监控设备(交换机)进行管理。智能网管的交换机基本都支持SNMP,可以通过MRTG进行网络流量监控。

第一步: 安装 MRTG 和snmp
 yum install mrtg net-snmp net-snmp-utils    -y


第二步:配置 snmpd
vi /etc/snmp/snmpd.conf

com2sec notConfigUser localhost public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
access notConfigGroup "" any noauth exact all none none
view all included .1 80
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root

修改成下面这样主要是com2sec那行的可以snmp来打开的地址和密码根据你的需要来设置一下.还有就是access部分后面的权限,可以设置成all之类.
com2sec notConfigUser localhost public 这个后面二个选项是指,可以取得信息的地址为 Localhost,使用的验证码为 public
access notConfigGroup "" any noauth exact all none none 这行中,会打开读信息.可以读取所有的信息,倒数第三个选项 all 来指定
service snmpd restart

看看是否能够看到IP接口的信息
snmpwalk -v 1 -c public  localhost IP-MIB::ipAdEntIfIndex 

输出如下:
  IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
  IP- MIB::ipAdEntIfIndex.xxx.xxx.xxx = INTEGER: 2

第三步:配置MRTG
   cfgmaker --global 'WorkDir: /var/www/mrtg' --output /etc/mrtg.cfg public @localhost

 --global 'WorkDir: /var/www/mrtg' : 设置全局的工作目录配置,也就是存MRTG的图象的地方
 --global "Options[_]: growright,bits" :设置网络显示
 --output /etc/mrtg.cfg: 你输出的配置文件的地址
 public@localhost : public是你的snmp设备读的密码,localhost是设备的密码.如果你要显示远程的snmp的设备,就是远程的地址的密码,现在我这是本地的
生成网页和流量
运行indexmaker来建立网页显示接口的信息.这个只需运行一次,你加入新的设备和新监控内容才需要更新

  indexmaker --output=/var/www/mrtg/index.html /etc/mrtg.cfg
  env LANG=C mrtg /etc/mrtg/mrtg.cfg
第四步:加入定时任务

crontab -e
*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg.cfg --lock  -file /var/ lock /mrtg/mrtg_l   --confcache-file /var/lib/mrtg/mrtg.ok

第五步:访问测试
http://ip/mymrtg/
localhost_2



FQA: 
1.怎么加入多个节点内其它的多个设备怎么加入多个节点内其它的多个设备怎么加入多个节点内其它的多个设备怎么加入多个节点内其它的多个设备 本地运行下面的命令 
 cfgmaker --global 'WorkDir: /var/www/mrtg'      --output /etc/mrtg/mrtg.cfg  \
          --global "Options[_]: growright,bits"  --ifref=nr   public@IP_1  \
          public@ip_2 public@IP_3 
 远程主机 只需要配置snmp的配置,配置如上面提到的一样,只是配置中的可以读snmp的localhost需要修改成显示的那个地址.

2.怎么显示成中文怎么显示成中文怎么显示成中文怎么显示成中文 
在你的/etc/mrtg.conf配置之间加入 Language: Chinese     
#注意:不要用Language: gb2312,因为用Language: gb2312会出现流量单位b不能正常显示的问题
 
3.怎么显示指定接口的流量怎么显示指定接口的流量怎么显示指定接口的流量怎么显示指定接口的流量 
  在cfgmaker命令参数后面加入接口信息 –ifref=ip ifref可以指定为nr、ip、eth、descr、name。nr表示用接口在MIBII库中Interface接口的ifIndex来识别接口. cfgmaker --global 'WorkDir: /var/www/mrtg'   --ifref=ip  --output /etc/mrtg.cfg public@localhost
Xsize:生成图表的横向宽度(最大600)  
Ysize:生成图表的纵向高度(最大200)  
Title:标题  kMG: Change the default multiplier prefixes  
Ytics:纵向划分为几个块(格子)  
MaxBytes:图表纵向数值的最大上限  
PageTop:页面上面的提示  
kilo:一般是写1024,如果需要的话,是1000在计算机里的单位  
LegendI:从SHELL返回的数据中的第一个  
LegendO:从SHELL返回的数据中的第二个  
Options: growright,表示图表向右延展
4.如果在执行命令indexmaker时提示以下错误
Use of uninitialized value $first in hash element at /usr/bin/indexmaker line 353
查看自己的mrtg的配置文件会发现所有的行都是被注释掉的,将注释打开即可