在 RHEL 上添加对自身和 Windows 的 MRTG 监控

12.14.2009 by drivel - 0 Comment
Posted in 0pen Source, GNU/Linux, Net

  MRTG 真的是一个蛮好用的流量图形化现实软件,如图所示。该软件可以生成包含 PNG 图片的 HTML 文档让您更清晰的了解自己机器的流量,放在服务器上再合适不过了。

什么是 MRTG?
MRTG(Multi Router Traffic Grapher)是一套可用来绘出网络流量图的软件,由瑞士奥尔滕的Tobias Oetiker与Dave Rand所开发,此软件以GPL授权。[1]

localhost_5-day

anyway,虽然这个能分析流量,但是还是需要一个 daemon 来做服务的吧,那么 MRTG 就是基于 SNMP 了。

什么是 SNMP?
简单网络管理协议(SNMP,Simple Network Management Protocol)构成了互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet协议簇的一部分。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。它由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema),和一组资料物件。 [2]

可以看到的是,SNMP 分为三个版本的协议,这里我们就不必去详细的了解了,就如很多人可能都在管理 HTTP 服务器,但是 HTTP 的协议详细又是怎样?


  我的配置环境是 RHEL 5.4,其他操作系统雷同。首先安装 SNMP 和 MRTG,那么在 RHEL/CentOS/Fedora 上当然首选 yum 啦,如果是 Ubuntu/Debian 请选择 apt-get 来释放牛力。

# yum install mrtg net-snmp net-snmp-utils

之后我们就可以来配置 SNMPd 了,RHEL 下文件默认位置为 /etc/snmpd/snmpd.conf,拿出最爱的 VIM

# vim /etc/snmpd/snmpd.conf

编辑内容如下

com2sec local localhost public
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
view all included .1 80
access MyRWGroup “” any noauth exact all all none
syslocation iBeiKe@USTB
syscontact Botu Sun

:wq 保存退出,重新启动服务,并将 init 在 3 和 5 的时候设置默认启动服务

# chkconfig –level 35 snmpd on
# service snmpd restart

为了确认一下看看 SNMP 服务是否完全启动,可以执行如下命令查看

# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex

如果你得到类似的结果,那么就是没问题了

IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.202.204.xxx.xxx = INTEGER: 5

按说后面就是应该开始配置 MRTG 了,但是正好同一个网段还有一台 Windows 2003,就一起也加进来配置 SNMP 的部分吧。

首先进入控制面板-添加/删除程序-添加/删除 Windows 组件-网络和监视工具-简单网络管理协议(SNMP)如图

ScreenShot00008

Windows 会自动安装,中间可能会要求插入安装盘以继续。安装完成后 Win-R 输入 services.msc 打开 Windows 服务管理,找到 SNMP 服务,右键属性,在安装选项卡中,新建团体命名为 public,如图

ScreenShot00009

至此,Linux 和 Windows SNMP 配置都已就绪,下面就开始 MRTG 的配置

这里可以使用 cfgmaker 来添加配置文件

# cfgmaker –global ‘WorkDir: /path/www/mrtg’ –output /etc/mrtg/Server_A.ibeike.com.cfg public@localhost

# cfgmaker –global ‘WorkDir: /path/www/mrtg’ –output /etc/mrtg/Server_B.ibeike.com.cfg public@202.204.xxx.xxx

这里,WorkDir 是保存图片和 HTML 的地方,output 后跟的是配置文件保存的地方。

完成之后请多运行几次

LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/Server_A.ibeike.com.cfg

前几次可能会报错,不用管他,3 次以后应该就没有问题了。这样在 WorkDir 下就建立了各种的流量图片。最后我们使用 indexmaker 来建立一个 index.html 就可以了。

indexmaker –output=/path/www/mrtg/index.html /etc/mrtg/Server_A.ibeike.com.cfg /etc/mrtg/Server_A.ibeike.com.cfg

为 MRTG 添加 cron 服务,以便正常更新。运行 crontab -e 添加

*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/Server_A.ibeike.com.cfg
*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/Server_B.ibeike.com.cfg

最后一步,就是配置 Apache 到这个 WorkDir。

[1] http://zh.wikipedia.org/zh-cn/MRTG
[2] http://zh.wikipedia.org/zh-cn/SNMP