squid 日志内容详解
squid
0 Comments
squid 日志内容详解
cat /var/log/squid/access.log|gawk ‘{print $4}’|sort|uniq -c|sort -nr
93083 TCP_MISS/200
33858 TCP_IMS_HIT/304
13938 TCP_HIT/200
5920 TCP_REFRESH_HIT/304
4443 TCP_CLIENT_REFRESH_MISS/304
3263 TCP_MISS/304
3078 TCP_MEM_HIT/200
2842 TCP_REFRESH_HIT/200
2665 TCP_REFRESH_MISS/200
2603 TCP_MISS/302
2227 TCP_CLIENT_REFRESH_MISS/200
2098 TCP_MISS/500
1802 TCP_MISS/301
967 TCP_MISS/404
946 TCP_NEGATIVE_HIT/404
562 TCP_MISS/204
206 TCP_MISS/503
188 TCP_MISS/502
101 TCP_NEGATIVE_HIT/403
93 TCP_MISS/504
84 TCP_MISS/206
81 TCP_IMS_HIT/200
76 TCP_MISS/403
66 TCP_CLIENT_REFRESH_MISS/404
59 TCP_MISS/400
57 TCP_REFRESH_MISS/302
41 TCP_NEGATIVE_HIT/400
20 TCP_REFRESH_MISS/000
18 TCP_MISS/307
13 TCP_CLIENT_REFRESH_MISS/206
12 TCP_MISS/000
10 TCP_MISS/401
9 TCP_DENIED/400
8 TCP_MISS/202
7 TCP_SWAPFAIL_MISS/200
5 TCP_MISS/303
4 TCP_CLIENT_REFRESH_MISS/500
3 TCP_REFRESH_MISS/404
3 TCP_NEGATIVE_HIT/504
3 TCP_NEGATIVE_HIT/500
3 TCP_MEM_HIT/302
2 TCP_MISS/600
2 TCP_MEM_HIT/206
2 TCP_CLIENT_REFRESH_MISS/403
1 TCP_HIT/302
以上的一个命令可以用于分析Squid日志,命令返回结果当中,如果看到很多的TCP_MEM_HIT,这表明该文件是从内存缓存读取。其他返回显示的解析如下:
TCP_HIT
Squid发现请求资源的貌似新鲜的拷贝,并将其立即发送到客户端。
TCP_MISS
Squid没有请求资源的cache拷贝。
TCP_REFERSH_HIT
Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器返回304(未修改)响应,指示squid的拷贝仍旧是新鲜的。
TCP_REF_FAIL_HIT
Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。然而,原始服务器响应失败,或者返回的响应Squid不能理解。在此情形下,squid发送现有cache拷贝(很可能是陈旧的)到客户端。
TCP_REFRESH_MISS
Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器响应新的内容,指示这个cache拷贝确实是陈旧的。
TCP_CLIENT_REFRESH_MISS
Squid发现了请求资源的拷贝,但客户端的请求包含了Cache-Control: no-cache指令。Squid转发客户端的请求到原始服务器,强迫cache确认。
TCP_IMS_HIT
客户端发送确认请求,Squid发现更近来的、貌似新鲜的请求资源的拷贝。Squid发送更新的内容到客户端,而不联系原始服务器。
TCP_SWAPFAIL_MISS
Squid发现请求资源的有效拷贝,但从磁盘装载它失败。这时squid发送请求到原始服务器,就如同这是个cache丢失一样。
TCP_NEGATIVE_HIT
在对原始服务器的请求导致HTTP错误时,Squid也会cache这个响应。在短时间内对这些资源的重复请求,导致了否命中。 negative_ttl指令控制这些错误被cache的时间数量。请注意这些错误只在内存cache,不会写往磁盘。下列HTTP状态码可能导致否定 cache(也遵循于其他约束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。
TCP_MEM_HIT
Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非精确的呈现了所有从内存服务的响应。例如,某些cache在内存里,但要求确认的响应,会以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式记录。
TCP_DENIED
因为http_access或http_reply_access规则,客户端的请求被拒绝了。注意被http_access拒绝的请求在第9域的值是NONE/-,然而被http_reply_access拒绝的请求,在相应地方有一个有效值。
TCP_OFFLINE_HIT
当offline_mode激活时,Squid对任何cache响应返回cache命中,而不用考虑它的新鲜程度。
TCP_REDIRECT
重定向程序告诉Squid产生一个HTTP重定向到新的URI(见11.1节)。正常的,Squid不会记录这些重定向。假如要这样做,必须在编译squid前,手工定义LOG_TCP_REDIRECTS预处理指令。
NONE
无分类的结果用于特定错误,例如无效主机名。
相应于ICP查询,下列标签可能出现在access.log文件的第四域。
UDP_HIT
Squid在cache里发现请求资源的貌似新鲜的拷贝。
UDP_MISS
Squid没有在cache里发现请求资源的貌似新鲜的拷贝。假如同一目标通过HTTP请求,就可能是个cache丢失。请对比UDP_MISS_NOFETCH。
UDP_MISS_NOFETCH
跟UDP_MISS类似,不同的是这里也指示了Squid不愿去处理相应的HTTP请求。假如使用了-Y命令行选项,Squid在启动并编译其内存索引时,会返回这个标签而不是UDP_MISS。
UDP_DENIED
因为icp_access规则,ICP查询被拒绝。假如超过95%的到某客户端的ICP响应是UDP_DENIED,并且客户端数据库激活了(见附录A),Squid在1小时内,停止发送任何ICP响应到该客户端。若这点发生,你也可在cache.log里见到一个警告。
UDP_INVALID
Squid接受到无效查询(例如截断的消息、无效协议版本、URI里的空格等)。Squid发送UDP_INVALID响应到客户端。2010-02-12
开源技术
squid
time
0 Comments
Squid限制工作时间浏览开心网
今天,朋友来电询问如何利用代理服务器禁止开心网。我将过程随意的告诉了他,中午不久又给我一个消息。他说工作时间禁止登陆即可,中午时候可以任意的访问开心网是否可以实现。这个其实也非常的简单,顺便在博客上也记录一下:
在squid.conf适当位置添加以下参数:
acl WH time MTWHFA 09:00-12:00 13:30-18:00
acl DenyKaixin dstdomain www.kaixin.com www.kaixin001.com
http_access deny WH DenyKaixin
其中ACL的时间参数解析:
以上的方法对于用Squid限制工作时间上QQ,MSN,网页游戏均有效,关键在于dstdomain是否准确有效。
2010-02-12
开源技术
configure
squid
0 Comments
Squid编译安装参数
以下是我目前安装squid所用的配置参数,性能方面感觉还可以:
2.7版本:
./configure –prefix=/usr/local/squid –with-maxfd=65535 –disable-internal-dns –enable-async-io –enable-epoll –enable-arp-acl –with-large-files –enable-snmp –enable-storeio=aufs,ufs –enable-default-err-language=Simplify_Chinese –enable-err-languages=”Simplify_Chinese English”
配置参数解析:
–disable-internal-dns
该选项是禁用Squid内部DNS解释,即不检查/etc/hosts,直接运用/etc/resolc.conf中列出的DNS服务器的顺序进行DNS解析,这样有个问题是不能代理内部网段的服务器访问。
–with-maxfd=65535
该选项在2.7版本中更换为–max_filedescriptors=65535
–enable-epoll
开启epoll据说可以提升I/O性能,没有实际感觉出来但也加上编译
2010-02-12
开源技术
cacti
snmp
squid
0 Comments
Cacti监控Squid运行情况
1.监控squid需要在编译安装时增加以下参数:
–enable-snmp
2.修改squid配置文件,启用snmp:
acl CactiServer src cacti_ip_address
acl SNMP snmp_community public
snmp_port 3401
snmp_access allow SNMP CactiServer
snmp_access deny all
配置完成后需要重新启动Squid程序或重新刷新配置。
3.检查是否配置成功:
yum install -y net-snmp-utils
snmpwalk -v 1 -c public 127.0.0.1:3401 .1.3.6.1.4.1.3495.1.3.2.1.4
4.下载与配置cacti模板:
wget https://forums.cacti.net/download.php?id=79
unzip SquidStats-0.1.zip
mv webcache_squid_* /var/www/cacti/resource/snmp_queries/
chmod 777 /var/www/cacti/resource/snmp_queries/webcache_squid_*
登陆到cacti管理控制台,通过import templates导入cacti_host_template_webcache_squid_server_snmp.xml文件。
5.添加设备:
在“Devices”选项中添加新主机,注意“Host Template”选择”squid sever”
就是导入进的那个.并注意填写以下内容:
SNMP Community = public
SNMP Version = 1
SNMP Port = 3401
以上,完成!
2010-02-12
开源技术
squid
version
0 Comments
Squid版本区别
Squid 2.5:比较少见到有在生产中运行,没有epoll支持,内存管理不稳定常出现宕机。
squid 2.6:性能与稳定较好,但只支持http 1.1,具备epoll支持。
squid 2.7:推荐采用2.7版本,具备2.6的稳定性,同时具备Squid 3.0版本特性。
Squid 3.0:不建议。C++语言重架构,性能与稳定性远不如2.6版本或2.7版本。不过大型网站都在用,可能反向缓存加速功能强大点吧。
2010-02-12
开源技术
squid
time
0 Comments
Squid的ERROR MESSAGE时区问题
在Squid的错误或警告页面当中,底端的时间与实际时间有8小时的差距,平时看起来让用户感觉有些奇怪。Squid的ERROR MESSAGE默认的时间显示的GMT时间,而非本地时间导致有时间差距。
解决方法
编辑Squid源文件src/errorpage.c,大概在60多行:
{
ERR_SQUID_SIGNATURE,
“\n<BR clear=\”all\”>\n”
“<HR noshade size=\”1px\”>\n”
“<ADDRESS>\n”
“Generated %T by %h (%s)\n”
“</ADDRESS>\n”
“</BODY></HTML>\n”
}
“Generated %T by %h (%s)\n” 修改为 “Generated %t by %h (%s)\n”即可!
最后更新:2017-01-04 22:34:34