Linux上的MRTG流量监控中心
转载请注明!
随着互联网应用的发展,企业的互联网应用已经不仅仅是建设一个网站这么简单了。企业对互联网应用的规模不断加大,功能也更丰富和强大。面对更大规模的互联网应用,许多企业在电信IDC机房中不得不拥有数台甚至数十台服务器。
在对这些服务器的管理过程中,每台服务器的流量情况成为管理工作的一个重点。管理员通过对网络中各种流量的监控,可以从网络的异常流量中及时察觉到潜在的安全或性能问题;上层领导也可以从统计的网络流量报告中获得有 用的经营分析信息,从而对业务做出相关的调整或升级决策。
在诸多网络流量监测软件中,MRTG无疑是著名而具有代表性的。MRTG是一个基于SNMP协议的典型网络流量监测、统计、分析工具。SNMP(简单网络管理协议)是一个专门设计用来监视和控制网络中各种网络设备,如交换机、路由器、服务器等的协议。
由于市场上绝大多数的网络产品都支持SNMP协议,所以MRTG的适用范围很广。本文将关注如何利用MRTG软件监控服务器的流量。
为什么需要MRTG监控中心
服务器的操作系统多种多样,使用较多的一般是Unix类或Windows类操作系统,它们都支持SNMP协议。例如,对于Windows系统而言,只要增加“管理和监控工具”中的Windows组件,就有了对SNMP协议的支持。
在服务器启动SNMP后,就会开放161/162端口。管理员如果要监控这台机器,就要在自己的机器上安装MRTG,然后通过MRTG向服务器的161/162端口发出查询等请求,取得数据后会生成图形及HTML文档的流量报告。这就是MRTG简单的监控过程。
在实际应用中,企业可能有多台服务器,通常需要管理员24小时不间断地对服务器的流量进行监控。如果这时还是简单地在管理员的机器上使用MRTG就不太适用了。最好的方法是建立一个MRTG监控中心。
MRTG 监控中心可以是一台专用的服务器,也可以由其它服务器兼作MRTG监控中心。用于监控中心的机器和其它服务器都位于防火墙背后,由于SNMP也很容易成为攻击的目标,所以在防火墙的规则中,要禁止外界对服务器161/162端口的访问。这样便保证了MRTG监控中心担负起监控其它所有服务器的责任。
MRTG监控中心将不断产生流量报告,以Web页面的形式发送给管理员。当然,该Web页面是带有身份认证功能的,以确保只有拥有账号的管理员才能察看相应的流量报告。
使用这样的MRTG监控中心,可以带来以下好处:
◆ 24小时不间断地工作,能保证产生详细、全面的流量报告;
◆ 提供带身份认证的Web浏览界面,管理员凭账号可以随时随地通过互联网察看流量报告;
◆ 免去管理员安装MRTG的烦恼,只需通过浏览器来察看流量报告;
◆ 只允许MRTG监控中心机器访问服务器161/162端口,安全性更高。
构建MRTG监控中心
下面介绍如何在Linux上构建一个MRTG监控中心。
MRTG需要先安装Apache
一、MRTG需要以SNMP服务为基础,所以请确保你的系统已经启用了此服务
1.请确保你的系统安装了以下软件包
net-snmp-libs
net-snmp
net-snmp-utils
2.修改/etc/snmp/snmpd.conf
去掉如下一行的注释
view mib2 .dod.internet.mgmt.mib-2 fc
在大约55行处添加如下一行
view systemview included .1.3.6.1.2.1.2
把如下行
accessnotConfigGroup "" any noauth exactsystemview none none
改作:
accessnotConfigGroup "" any noauth exactmib2 none none
3.启用snmpd服务
#service snmpd start
#chkconfig --levle 2345 snmpd on
4.查看端口的开启状况
# netstat -tunlp |grep snmp
tcp 0 0 0.0.0.0:1990.0.0.0:*LISTEN 4973/snmpd
udp 0 0 0.0.0.0:1610.0.0.0:* 4973/snmpd
二、MRTG生成供浏览图像需要httpd服务的支持,同时也需要gd、libpng和zlib三个软件包的支持,而gd的正常运行也需要其
它的几个软件.
三:安装MRTG
下载地址:
# tar zxvf mrtg-2.16.2.tar.tar
# cd mrtg-2.16.2
# ./configure --prefix=/usr/local/mrtg
# make
# make install
四:配置MRTG
生成配置文件:
# mkdir /etc/mrtg
# /usr/local/mrtg/bin/cfgmaker public@localhost > /etc/mrtg/mrtg.cfg
编辑/etc/mrtg/mrtg.cfg
将
#WorkDir:/home/http/mrtg
去掉注释并改为
WorkDir: /usr/local/www/htdocs/mrtg
(此处是你的httpd默认的主目录) 注意前面不要有空格
去掉如下行的注释
# Options[_]: growright, bits
添加如下行,实现网页中的中文字符显示
Language:gb2312
生成MRTG网页主页面文件
# /usr/local/mrtg/bin/indexmaker /etc/mrtg/mrtg.cfg --output=/usr/local/www/htdocs/mrtg/index.html--
title="My MRTG"
4.启动MRTG
# env LANG=C /usr/local/mrtg/bin/mrtg /etc/mrtg/mrtg.cfg
这个命令会输出一些错误信息,一般可以安全忽略,连续执行三次此命令即可。
5.MRTG生成的web页面是静态的,为了能让其不断的刷新,需要将以上命令添加进crontab
#crontab -e
添加如下一行
*/3 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /etc/mrtg/mrtg.cfg
注:此行表示每三分钟刷新一次,你可以根据自己的需要修改刷新时间间隔。
6.安装完毕,可以去查看结果了,在浏览器输入形如以下地址
(IP地址为你的机器IP)