IT168-服务器专区:服务器安全:用MRTG打造流量监视器

来源:百度文库 编辑:神马文学网 时间:2024/04/19 13:56:34
一名真正合格的网管所做的工作不应该仅仅局限在服务器故障发生后,亡羊补牢的工作虽然不算迟,但也会造成一定程度的损失。那么如何有效的监视服务器的状态,在第一时间发现服务器故障及异常甚至在没出现问题前进行预防呢?对服务器的流量进行监控就可以有效的解决上面遇到的所有问题。
今天就为大家介绍一款实用的网络流量监控软件——MRTG(Multi Router Traffic Grapher),它通过snmp协议从设备得到流量信息,这样我们就可以监视通过服务器网卡的流量了,另外该软件还可以把流量数据以网页图表的方式显示出来,间隔时间可以是5分钟,30分钟,2小时或1天等多个选项,对生成的网页通过一般的网页编辑软件也可以进一步修改和美工。
MRTG小档案:
软件版本:MRTG V2.12.1 for windows         软件大小:1558 KB
软件性质:免费软件             运行平台:Window 98/2000/NT/XP/2003
下载地址:http://down.it168.com/files/xiazai3.asp?iid=4635
服务器监控篇:
通过本文我们将学会使用计算机B监视通过服务器A网卡的流量,如果服务器A是一个WEB服务器的话我们就可以实时的监控访问该WEB站点的流量数据,当数据发生异常时即时采取防护措施了。
实验环境:
服务器A操作系统WIN2000SERVER,WEB服务器,IP地址为10.91.103.2。计算机B操作系统WIN2000PRO,IP地址为10.91.103.5。
服务器A上的配置:
配置描述:由于MRTG是使用SNMP协议管理及监控流量,所以需要在服务器A上启用SNMP功能。
STEP1:在服务器A的控制面板中选择“添加或删除程序”。
STEP2:然后点击左边的“添加删除WINDOWS组件”,在WINDOWS组件中选中“管理和监视工具”,(如图1)点右下方的“详细信息”按钮。

图1 点击看大图
STEP3:在“管理和监视工具”详细信息中选择“简单网络管理协议”(即SNMP协议)进行安装。(如图2)

图2 点击看大图
STEP4:安装完毕后2000SERVER默认community是通用的PUBLIC,虽然只有只读权限,不过出于安全考虑还是建议大家进一步做设置。当然如果安全性要求不是很高的话就可以到此为止结束服务器A上的配置。为了保证安全我们继续打开"控制面板->管理工具->服务",选择SNMP服务,双击进入属性对话框,选择安全选项卡标签。(如图3)

图3 点击看大图
STEP5:在SNMP服务安全标签中我们可以看到默认的只读权限public团体,为了安全我们删除他,并添加自己希望的团体名并设置相应的权限,然后在上方的“发送身份验证陷阱”前打勾,保存退出即可。
计算机B上的配置:
配置描述:在WINDOWS系统上安装MRTG需要PERL的支持,所以我们需要先安装PERL插件,另外由于流量数据将以网页的形式体现所以需要在计算机B上安装IIS服务。(由于篇幅限制关于IIS的安装这里就不做描述了)
STEP1:Perl的安装比较简单,目前使用的一般是Active Perl for windows,我们可以到http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.0.805-MSWin32-x86.msi下载。
STEP2:下载完毕直接安装遇到“是否使用PPM3发送个人信息至ASPN”时我们跳过不安装即可,整个安装过程会比较长,安装完毕重新启动计算机让PERL生效。
STEP3:安装MRTG程序,由于MRTG是一个Perl写的程序,所以不需要安装,下载后直接解压即可。这里我们解压到C:\MRTG目录。
STEP4:配置MRTG,首先进入命令行模式(开始->运行->输入CMD)。进入c:\mrtg\bin目录。输入如下指令:
1、perl cfgmakerpublic@10.91.103.2 --global "WorkDir: c:\www\mrtg" --output mrtg.cfg(团体名为public,10.91.103.2为WEB服务器的IP,c:\www\mrtg为要生成的网页目录,同时也是在IIS中已经配置好的发布目录,完成该命令后会生成一个名为mrtg.cfg的配置文件)
2、perl indexmaker mrtg.cfg>c:\wwwroot\mrtg\index.htm
(使用INDEXMAKER将MRTG.CFG文件中的内容转换成index.htm,方便我们进行浏览管理。)
3、perl mrtg -logging=mrtg.log mrtg.cfg(从MRTG.CFG中读取配置并启动MRTG程序,同时记录日志信息到mrtg.log中)执行完perl mrtg -logging=mrtg.log mrtg.cfg后就会发现命令行模式开始实时监控。(如图4)

图4 点击看大图
所有工作完成以后我们就可以通过WEB浏览10.91.103.5即时查看通过WEB服务器10.91.103.2网卡的流量了。当然如果我们希望每隔一段时间监控一次的话,还需要用记事本编辑刚才生成的mrtg.cfg文件,在其最后添加如下两行内容:(其中interval后的5表示每5分钟刷新一次进行监视,我们可以根据实际情况进行修改)
runasdaemon:yes
interval:5
提示:
在访问10.91.103.5查看流量时一定注意输入的地址要和IIS中配置的地址一致,这里还要注意虚拟目录的问题,只有输入正确的地址才能正常显示出流量图来。
总结:
MRTG软件已经在本人所在公司使用了很长一段时间,运行稳定没有出现过问题,对于流量大的网络也可以正常监控。读者们可以从图5中查看我们对公网WEB服务器实施的24*7小时监控流量图,当然如果想了解更多的分时分段图表还可以直接点流量图进一步查看。另外生成的网页我们还可以使用DREAMWEAVER等制作工具进行修饰编辑,这样就可以制作出更美观大方专业的流量监视控制台了。

图5 点击看大图
IT168 专稿】在上一篇文章中(服务器安全:用MRTG打造流量监视器),我们介绍了如何通过MRTG对服务器的网卡流量进行监控并以网页的格式显示出来。当然在生成网页操作过程中我们只进行了简单介绍,而且MRTG程序需要每次系统启动都手工加载比较麻烦。本期就为大家介绍如何通过indexmaker制作更高级的网页流量监视图并且配置MRTG随系统自动启动,当然也会涉及到一些MRTG管理的安全性问题。
 
一、indexmaker的高级使用
indexmaker是MRTG自带的网页制作工具,通过他可以把MRTG生成的CFG文件制作成HTML格式的文件让我们可以使用浏览器直接查看流量信息。不过使用perl indexmaker mrtg.cfg>c:\wwwroot\mrtg\index.htm指令生成的网页只能监控一台服务器,要想使用一个index.htm文件同时监视多台服务器怎么办呢?另外由MRTG生成的网页是以服务器名或端口号为标识的,非常不直观,我们能不能编辑修改他使用中文标识呢?下面就由我为大家介绍如何实现这些功能。
1、监控中心的制作
理论上我们通过perl indexmaker mrtg.cfg>c:\wwwroot\mrtg\index.htm只能将一个CFG文件的配置信息写入INDEX.HTM文件,当我们想把1.cfg,2.cfg,3.cfg这三个CFG文件的配置信息都写入一个index.htm文件,这样通过打开index.htm就可以同时监视这3个文件所对应的设备的流量了。
第一步:在监控机上进入命令行模式(“开始->运行->CMD”)。
第二步:进入MRTG安装目录下的BIN目录。
第三步:输入
perl indexmaker 1.cfg>c:\wwwroot\mrtg\index.htm
perl indexmaker 2.cfg>>c:\wwwroot\mrtg\index.htm
perl indexmaker 3.cfg>>c:\wwwroot\mrtg\index.htm
至此生成的index.htm文件就可以同时监控通过1,2,3三台设备的流量了,真正打造了自己的监控中心。
2、中文标识的应用
如果对生成的网页不进行修改的话将是英文注释,而且注释信息为端口号非常不直观。我们要把他修改为自己希望的中文名,方便我们浏览。
第一步:没有经过修改的流量监控图都是英文注释。(如图1)对于各个端口IP对应的实际线路一定要做出一个对应表格来,然后我们才能根据这个表格的对应关系对index.htm网页进行修改。

图1 点击看大图
第二步:例如68端口对应的中文名是“外网出口”,则用记事本打开index.htm,通过查找Traffic Analysis for 68将其替换为你所希望的中文名“外网出口”即可。
第三步:当我们完成了所有中文注释工作并保存退出后就可以浏览index.htm,这时会发现所有注释信息都变成了中文。(如图2)

图2 点击看大图
上面介绍的只是一个最简单的中文注释的编辑工作,当然如果你使用DREAMWEAVER来修改的话还可以制作出更加优美更加华丽的监控中心。
二、MRTG的自启动设置
每次启动MRTG都要进入命令行模式输入perl mrtg -logging=public.log public.cfg,对于24小时监控的设备会带来不方便,因为一旦系统因故障重新启动的话由于不能自动进入到桌面,造成MRTG不能运行,使监控出现中断。
方法1:自动登录系统启动MRTG程序法
该方法就是在WIN2000中设置自动登录系统,然后将mrtg.bat添加到启动组中。
MRTG.BAT的内容如下:(假设MRTG是安装在e:\mrtg目录下,配置文件为public.cfg)
e:
cd mrtg
cd bin
perl mrtg -logging=public.log public.cfg
小提示:关于如何设置WIN2000自动等录系统不在本文讨论的话题之内,如果有读者感兴趣可以查看电脑报以前的相关内容。
方法2:开机脚本法
将上面保存的mrtg.bat文件添加到系统开机脚本中即可随系统启动而运行该文件,从而自动启动MRTG程序。添加开机脚本的方法为“开始->运行->GPEDIT.MSC”,组策略中选择“计算机配置->WINDOWS设置->脚本->启动脚本”,双击后在弹出窗口中选择mrtg.bat即可。
小提示:
该方法有一个问题那就是由于MRTG.bat文件需要实时监控,这样会造成监控机登录时停留在“运行开机脚本”上,而不能正常登录系统。不过我们仍然可以通过其他计算机使用浏览器访问监控机生成的网页,并随时对流量进行查看。(要取消开机脚本请进入安全模式将MRTG.BAT从开机脚本中删除即可。)
方法3:系统服务法
如果把应用程序添加为服务,你需要两个小软件:Instsrv.exe和Srvany.exe。Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行。这两个软件都包含在Windows 2000 Resource Kit里。本例前提是PERL安装在c:\perl目录下,MRTG安装在C:\MRTG目录下。
第一步:将instsrv.exe和Srvany.exe复制到mrtg安装目录的BIN目录下。例如c:\mrtg\bin。
第二步:在MRTG\BIN目录下执行instsrv mrtg "c:\mrtg\bin\srvany.exe"安装MRTG为系统服务。
第三步:配置SRVANY,在注册表hkey_local_machine\system\currentcontrolset\services\mrtg中添加一个parameters项,再在parameters子键中添加以下项目:
application的字串值,内容为c:\perl\bin\perl.exe
appdirectory的字串值,内容为c:\mrtg\bin\
appparameters的字串值,内容为mrtg -logging=public.log public.cfg
第四步:在“控制面板->管理工具->服务”中找到mrtg服务,(如图3)将其设置为自动启动后MRTG即可全天监视网络流量,即使系统重新启动后程序也将以服务的形式加载。

图3 点击看大图
三、MRTG管理的安全性
最后我们再来谈谈关于使用MRTG监控流量的安全性问题,由于MRTG使用了SNMP协议,而SNMP协议的安全性一直没有保证,所以保证安全和流量监控是一个熊掌与鱼翅的关系,究竟做何取舍还请各个读者自己决定。不过既然我们选择了使用MRTG的话也要在安全上做些防护措施,如果采取系统默认的社区名的话则增加了很多危险,所以我们应该修改默认社区名,将PUBLIC修改为其他名字,这样才能最大限度的防止黑客的攻击,同时如果可以使用认证的话建议大家在路由器交换机上使用SNMPv3版本,因为V3版本更加安全。
总结:
经过这两期关于MRTG监视工具配置的介绍,我们从无到有,从有到精的了解了MRTG的安装使用配置及后期工作,相信合理的使用MRTG对流量监控会给你的实际工作带来很大的帮助,可以最有效的防范网络及服务器故障的发生。