【IT168 专稿】在上一篇文章中(点击阅读),介绍了Squid代理服务器的安装,本文接着介绍其如何使用及其注意事项。
四、监控Squid工作情况
1.使用Linux命令和工具
分别使用KDE系统卫士和netstat命令检查Squid代理组服务器允许情况,和端口使用情况,见图4。
图4 查看Squid服务器运行进程和端口
2.使用cachemgr.cgi
(1)cachemgr.cgi配置过程
squid本身提供一个cgi程序,文件名为cachemgr.cgi,squid安装完后将它复制到Apache服务器下的cgi-bin这个目录下即可使用。
#cp /usr/lib/squid/cachemgr.cgi /home/httpd/cgi-bin
下面我们通过apache进行监控squid ,修改配置文件/etc/http/conf/http.conf,添加以下内容
<Location /cgi-bin/cachemgr.cgi>
AuthTypeBasic
AuthNamw"Squidadmin"
AuthUserFile/usr/local/squid/etc/squid.pwd
require valid-user
</Location>
生成口令文件:
#cd /usr/local/squid/etc
#htpasswd -c squid.pwd squidadmin "创建密码文件 "
New passwd:
Re-type new passwd:
Adding password for user squidadmin
#chown apache:apche squid.pwd "将认证口令文件的属主改为apache"
重启squid与http ,要察看Cache Manager提供的信息时,请在浏览器的地址列中键入 http://服务器的名称或IP地址/cgi-bin/cachemgr.cgi。首先看到用户认证界面,经过认证后进入登录界面,输入代理服务器地址和端口号,见图5。
图5cachemgr.cgi登录界面
输入管理员名称和口令,按"continue"按纽进入Squid监控界面见图6 。
图6 cachemgr.cgi实时监控界面
(2)重点解读监控数据
cachemgr.cgi提供的数据非常详细,下面重点解读一些内容:
? Memory Utilization(内存使用情况)
内存是Linux所管理的最重要的资源之一。内存管理系统是操作系统中最为重要的部分,因为系统的物理内存总是少于系统所需要的内存数量。虚拟内存就是为了克服这个矛盾而采用的策略。系统的虚拟内存通过在各个进程之间共享内存而使系统看起来有多于实际内存的内存容量。Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。Memory Utilization监控界面见图7。
图7 Memory Utilization监控界面
一个内存池是主要的物理内存逻辑区分,包括一个工作或工作组。你能检查正在使用每个进程的内存,空闲的内存,以及泄露的内存 。
? Event Queue(事件队列)
? Async IO Function Counter(同步IO运行)
? DISKD Stats(磁盘使用情况)
? Current Squid Configuration (配置文件通常是处于隐藏状态)。
? comm_incoming(低水平网络IO情况)
? IP Cache Stats and Contents(IP缓存使用情况)
? FQDN Cache Stats and Contents(域名缓存使用情况)
? Internal DNS Statistics(内部域名统计)
? External ACL stats(扩展ACL)
? HTTP Header Statistics(HHTP包头统计)
? Cache Utilization(缓存使用情况)
? Full Histogram Counts(柱状图统计)
? Process Filedescriptor Allocation(进程分配)
? 5 Minute Average of Counters(5分钟统计平均值)
? 60 Minute Average of Counters(60分钟统计平均值)
? Cache Client List (缓存客户端列表)
? General Runtime Information(squid服务器总体运行情况列表)见图8。
图8 Squid 总体运行情况
General Runtime Information是cachemgr.cgi监控Squid代理服务器的核心。包括:
Start Time:启动时间(GMT格林尼治标准时间格式)。
Current Time:当前时间。
Connection information for squid: Squid代理服务器连接信息。
Cache information for squid: Squid代理服务器缓存信息。
Median Service Times (seconds) 5 min 60 min: Squid代理服务器五分钟、60分钟相关统计信息。
Resource usage for squid: Squid代理服务器资源使用情况。
Memory usage for squid via mallinfo():Squid代理服务器内存统计。
Memory accounted for:内存占用结构。
File descriptor usage for squid:文件系统使用统计。
Internal Data Structures:内部数据使用比例。
3. 安全应用cachemgr.cgi监控
cachemgr.cgi可以监测的数据包括:网络流量、使用协议、系统负载、数据包发送时间等。透过它﹐基本上所有进出数据都无所遁形,不管拿来做例行的网络监测工作﹐还是拿来做报告﹐都是非常优秀的工具,让您的网络流量透明化。,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况。不过如何保护这些信息只能给授权的人士获得﹐将变得额外重要。除了前面介绍的控制访问外最好使用SSL协议保护敏感的监控网页。
保护HTTP通讯:SSL的一个常见的用途是保护浏览器和网络服务器之间的网络HTTP通讯,但这并排除应用于不加保护的HTTP。其方法主要是,对普通HTTP加以SSL保护(称为HTTPS),但有一个重要的区别:它使用URL类型https而不是http ,而且使用不同的服务器端口(默认的是443)。限于篇幅SSL配置过程读者可以参考一些修改书籍。配置SSL完成后。使用浏览器访问首页输入:https:// IP地址或者域名 /cgi-bin/cachemgr.cgi 在Linux下Firefox浏览器屏幕提示https安全。注意浏览器位置栏和右下角的安全标志。见图9。
图9 Firefox浏览器 https 安全性提示的界面
注意客户端如果使用IE的话,此时只有右下角的安全标志。通过SSL(Secure socket layer)进行HTTP传输的协议就是HTTPS,它不但通过公用密钥的算法进行加密保证传输的安全性,而且还可以通过获得认证证书CA,保证客户连接的服务器没有被假冒。