在Centos(RHEL)上安装和配置MRTG

images (1)

MRTG是个很过时的东西.现在大多都用RRD,但配置有点麻烦,当然,用Cacti之类还是相当方便.但我在这使用MRTG原因有三.
1.我只有一台机器要用,比如我的个人网站.为了一个小服务器搞个cacti不值.象这样MRTG还是很方便的.
2.就算大面积使用Cacti加RRD还是有必要在本机运行一个可以直接查看的网页比较方便.方便运维排错.
3.可以在一个节点的一台机器上装一个MRTG,然后加上那个节点后面所有的机器,这样可以显示每个节点的流量,方便节点排错.

MRTG的全称叫 Multi Router Traffic Grapher 可以监控很多东西,今天我们就用它来监控我小小的个人网站的流量.节点之类多设备的设置后面也可以参考一下.

第一步: 安装 MRTG 和snmp

yum install mrtg net-snmp net-snmp-utils

第二步:配置 snmpd
我不建议使用自己来配置这个配置文件.直接使用 snmpconf 这个软件就可以很好的

vi /etc/snmp/snmpd.conf
修改成下面这样主要是com2sec那行的可以snmp来打开的地址和密码根据你的需要来设置一下.还有就是access部分后面的权限,可以设置成all之类.

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 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.221.9.252.35 = INTEGER: 2

第三步:配置MRTG

我们使用cfgmaker的命令来建立 /etc/mrtg.cfg 文件,输入如下命令:
1
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

第四步:加入定时任务

http服务都会配置吧,这个就不教了哦…crontab我想都会加吧.加入下面的命令到crontab中吧

*/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://your-ip.add.ress/mrtg/

比如我的网站就是:http://www.php-oa.com/mrtg/

FQA:
1.怎么加入多个节点内其它的多个设备
本地运行下面的命令

cfgmaker --global 'WorkDir: /var/www/mrtg' \
--output /etc/mrtg/mrtg.cfg \
--global "Options[_]: growright,bits" \
--ifref=nr \
public@192.168.0.1 \
public@192.168.0.2 \
public@192.168.0.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

附:1: mrtg.cfg 里面几个参数的意思.
Target:是要执行的脚本
Xsize:生成图表的横向宽度(最大600)
Ysize:生成图表的纵向高度(最大200)
Title:标题
kMG: Change the default multiplier prefixes
Ytics:纵向划分为几个块(格子)
MaxBytes:图表纵向数值的最大上限
PageTop:页面上面的提示
kilo:一般是写1024,如果需要的话,是1000在计算机里的单位
LegendI:从SHELL返回的数据中的第一个
LegendO:从SHELL返回的数据中的第二个
Options: growright,表示图表向右延展

还没有评论,快来抢沙发!

发表评论

  • 😉
  • 😐
  • 😡
  • 😈
  • 🙂
  • 😯
  • 🙁
  • 🙄
  • 😛
  • 😳
  • 😮
  • emoji-mrgree
  • 😆
  • 💡
  • 😀
  • 👿
  • 😥
  • 😎
  • ➡
  • 😕
  • ❓
  • ❗
  • 67 queries in 0.378 seconds