使用MRTG进行squid流量的限制
本文讲述的是 使用MRTG进行squid流量的限制:
配置Http服务加速代理
- httpd_accel_host 202.98.187.17
- httpd_accel_port 80
- httpd_accel_with_proxy on
(注:如果配置代理和加速服务,必须httpd_accel_with_proxy选项打开。如果需要配置多个加速,可以使用虚拟的概念。)
- snmp_port 3401
此标记设置snmp_port端口为3401,可以使MRTG监测服务运行状态。
- snmp_access allow aclsnmp localhost
- snmp_access deny all
- snmp_incoming_address 0.0.0.0
- snmp_outgoing_address 0.0.0.0
以上选项用于配置和MRTG交互信息的Snmp设置。
- digest_generation on
- digest_rebuild period 1 hour
- digest_rewrite_period 1 hour
- digest_swapout_chunk_size 4096 bytes
- digest_rebuild_chunk_percentage 10
产生缓存摘要,并设置摘要重构所需要的时间及其相关设置,这里采用系统默认设置。缓存摘要使的庞大的缓存内容形成一个微型检索,提高代理性能。
最后我们进行延迟队列池进行配置
延迟队列池可以基于一定规则对特定请求数据的进行限制,这样可以防止恶意用户发送非正规数据串攻击服务器。
以下选项只在必要处进行说明,配置如下:
- delay_pools 1 #定义一个池
- delay_class 1 1 #池为1类型
- delay_access 1 allow all #允许类型1的所有请求访问
- delay_parameters 1 128000/128000 #限制访问的128k/s
- delay_initial_bucket_level 50 #Squid启动时,初始化池所用的带宽数量。
运行Squid代理服务:
- #squid –z /*创建Squid所使用的缓存目录结构
如果想在前台运行
- #squid –NCdl
如果想在后台运行
- #squid
检查Squid是否运行
- #squid –k check
lMRTG配置:
首先测试SNMP服务是否启动:
- #snmpwalk -p 3401 hostname communitystring .1.3.6.1.4.1.3495.1.1
如果看到如下输出:
- enterprises.nlanr.squid.cacheSystem.cacheSysVMsize = 7970816
- enterprises.nlanr.squid.cacheSystem.cacheSysStorage = 2796142
- enterprises.nlanr.squid.cacheSystem.cacheUptime = Timeticks: (766299) 2:07:42.99
则说明SNMP正常工作。
按照mrtg.hdl.com的文档,使用cfgmaker和indexmaker就可以生成MRTG所需要的Web发布文件。使用cfgmaker可以创建配置MRTG所需要的配置文件,而Indexmaker则是检索MRTG生成的Web文件,制作一个Index.html。这里,我提供一种更为简洁的办法:
(感谢Chris提供的mrtg-squid.cfg文件和index.html,可到网上下载这两个文件。)
修改mrtg-squid.cfg文件选项如下:
修改 WorkDir 和 LoadMIBs 路径设置
修改所有出现在文件中的"hostname" 为你实际服务器名字
修改所有 "chris"字段为你需要的名字和地址
修改community 字串属性
这里配置如下:
- WorkDir: /home/www/mrtg/squid
- LoadMIBs: /usr/local/squid/etc/mib.txt
所有public@hostname修改secrect@proxysvr
创建/home/www/mrtg/squid这样一个目录。
- #mkdir /home/www/mrtg/squid
- #cd /home/www/mrtg/squid
- #cp /opt/mrtg-squid.cfg .
- #mrtg mrtg-squid.cfg
- #cp /opt/index.html .
修改/etc/httpd/conf/httpd.conf如下几个选项
- Listen 8000
- Port 8000
- Documentroot /home/www/mrtg/squid
由于mrtg读取文件需要资源,因为合理设置读取间隔,这里我设置为5分钟:
- crontab –e
- */5 * * * * /usr/local/mrtg-2/bin/mrtg /home/www/mrtg/squid/mrtg-squid.cfg
这样,我们就建立了一个完善的代理加速访问服务器,通过mrtg的强大监控,可以统计服务器运行时设备运行状态。由于以上软件遵从GNU,因此一种强大而有经济的建站手段。通过认证控制,允许特定用户使用代理服务。而Web加速服务器则成为服务器镜像的方便手段。
【编辑推荐】