Linux上的MRTG监控中心

随着互联网应用发展企业互联网应用已经不仅仅是建设个网站WebSite这么简单了企业对互联网应用规模不断加大功能也更丰富和强大面对更大规模互联网应用许多企业在电信IDC机房中不得不拥有数台甚至数十台服务器

在对这些服务器管理过程中每台服务器流量情况成为管理工作个重点管理员通过对网络中各种流量监控可以从网络异常流量中及时察觉到潜在安全或性能问题;上层领导也可以从统计网络流量报告中获得有 用经营分析信息从而对业务做出相关调整或升级决策

在诸多网络流量监测软件Software中MRTG无疑是著名而具有代表性MRTG是个基于SNMP协议典型网络流量监测、统计、分析工具SNMP(简单网络管理协议)是个专门设计用来监视和控制网络中各种网络设备如交换机、路由器、服务器等协议

由于市场上绝大多数网络产品都支持SNMP协议所以MRTG适用范围很广本文将关注如何利用MRTG软件Software监控服务器流量

为什么需要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可运行在绝大多数操作系统中当然也包括Linux这里选用是Fedora Core 1为了构建个MRTG监控中心还需要安装Apache和MRTG考虑到能适应更多Linux版本可以不选用RPM安装方式尽管它比较简单而是从tar包开始安装

第 2步:安装Apache

解压:
#tar -xzpvf httpd-2.0.47.tar.gz -C /var/local/





编译:

#cd /var/local/httpd-2.0.47/ #./configure --prefix=/usr/local/terry_yu/httpd --enable-so #make





安装:

#make





设置为开机时启动:

#echo "/usr/local/terry_yu/httpd/bin/apachectl start" >> /etc/rc.local





第 3步:配置Apache页面认证

在Apache配置文件/usr/local/terry_yu/httpd/conf/httpd.conf中找到对/usr/local/terry_yu/httpd/htdocs目录定义将其中“AllowOverride None”修改为“AllowOverride all”

在/usr/local/terry_yu/httpd/htdocs目录下创建个名为.htaccess文件其内容如下:

authuserfile /usr/local/terry_yu/httpd/.htpasswd authname "Traffic Monitor(Haplink IDC)" authtype basic require valid-user





然后建立账号并生成密码文件使用以下命令为terry建立个账号:

#/usr/local/terry_yu/httpd/bin/htpasswd -c #/usr/local/terry_yu/httpd/.htpasswd terry





可以使用以下命令修改terry账号密码:

#/usr/local/terry_yu/httpd/bin/htpasswd -m .htpasswd terry





最后启动Apache使用以下命令启动Apache:

#/usr/local/terry_yu/httpd/bin/apachectl start





启动Apache后访问HTTP服务如果要求输入用户名、密码进入则Apache页面认证配置成功
第 4步:安装MRTG

由于MRTG需要其它些库来生成图片所以先要安装zlib、ibpng和gd具体安装思路方法如下:下载并安装zlib:

#wget http://www.gzip.org/zlib/zlib-1.1.4.tar.gz #tar -xzpvf zlib-1.1.4.tar.gz #mv zlib-1.1.4 /usr/local/terry_yu/zlib #cd /usr/local/terry_yu/zlib/ #./configure #make





下载并安装libpng:

#wget http://ftp6.us.freebsd.org/pub/libs/png/src/libpng-1.0.15.tar.gz #tar -xzpvf libpng-1.0.15.tar.gz #mv libpng-1.0.15 /usr/local/terry_yu/libpng #cd /usr/local/terry_yu/libpng/ #make -f scripts/makefile.std CC=gcc ZLIBLIB=../zlib ZLIBINC=../zlib





下载并安装gd:

#wget http://www.boutell.com/gd/http/gd-1.8.4.tar.gz #tar -xzpvf gd-1.8.4.tar.gz #mv gd-1.8.4 /usr/local/terry_yu/gd #cd /usr/local/terry_yu/gd #perl -i~ -p -e s/gd_jpeg.o//g Makefile #make INCLUDEDIRS="-I. -I../zlib -I../libpng" \ LIBDIRS="-L../zlib -L. -L../libpng" \ LIBS="-lgd -lpng -lz -lm" CFLAGS="-O -D HAVE_LIBPNG"





安装MRTG:

#tar -xzpvf mrtg-2.10.13.tar.gz #cd mrtg-2.10.13/ #./configure --prefix=/usr/local/terry_yu/mrtg \ --with-gd=/usr/local/terry_yu/gd \ --with-z=/usr/local/terry_yu/zlib \ --with-png=/usr/local/terry_yu/libpng





第 5步:配置MRTG

生成配置文件:

#mkdir /usr/local/terry_yu/mrtg/cfg #cd /usr/local/terry_yu/mrtg/bin #./cfgmaker --global 'WorkDir: /usr/local/terry_yu/httpd/htdocs/' \ --global 'Options[_]: bits,growright'\ --global 'Language: GB2312' \ --output /usr/local/terry_yu/mrtg/cfg/xxx.cfg \ [email protected]





“XXX.XXX.XXX.XXX”是SNMP服务器IP以上命令将生成对服务器配置文件MRTG生成HTML页面可以完全由用户定制所有定制都是通过对生成该配置文件修改来实现MRTG配置文件内容很丰富相关内容请参考MRTG帮助文档

还可以对MRTG设置定期执行方式执行“crontab -e”加入如下行:

*/5 * * * * /bin/env LANG=en_US /usr/local/terry_yu/mrtg/bin/mrtg /usr/local/terry_yu/mrtg/cfg/xxx.cfg





以上命令设定每隔5分钟监控次配置文件xxx.cfg中所定义服务器5分钟是个比较合理也可以按自己需求重新定义

执行以下命令还可以生成个索引页面:

#cd /usr/local/terry_yu/mrtg/bin #./indexmaker --output="/usr/local/terry_yu/httpd/htdocs/index.html" --title="Taffic Monitor Center" /usr/local/terry_yu/mrtg/cfg/xxx.cfg





使用MRTG监控中心

通过以上几步已经完成了对台服务器监控设定如果还有其它服务器需要流量监控重复第 5步即可如果这些服务器都是位于防火墙后面还要修改个防火墙规则即开放MRTG监控中心对外80端口同时过滤掉所有外界对SNMP服务端口访问

以上安装配置完成用户可以通过浏览器访问MRTG监控中心MRTG监控中心会要求输入用户名、密码才能进入而Apache日志会记录相关事件以备日后对登录情况进行审查

到此为止已经可以应用个简单MRTG监控中心实现集中管理并且拥有身份认证然而这仅仅只是个开始管理员还可以通过编写CGI来实现更多功能

比如详细记录访问情况、提供更直观监控报告等此外还可以使用SSL加密页面来传输数据更多应用就要看各人发挥了希望本文能给大家些有益启发
Tags: 

延伸阅读

最新评论

发表评论