C3-Squid-access.log

简介:

C3-Squid-access.log 

拓扑:

 
  1. DNS      10.0.100.71 
  2. Haproxy  10.0.100.82 
  3. Squid    10.0.100.72/73 
  4. Nginx    10.0.100.75/76 
  5. NFS      10.0.100.70 
  6.  
  7. DNS 
  8.   |     (static) 
  9. Haproxy  ------>  Squid.72/73 (origin server Nginx.75/76) 
  10.   |(dynamic) 
  11. Nginx 
  12.   | 
  13. NFS


1 以下是3天的 squid access.log,平均每天的access.log 为1.4GB

 
  1. du -sh * 

1.3G    squid.log
1.5G    squid.log.0
1.6G    squid.log.1

2 排序 access.log

 
  1. awk '{print $NF}' squid.log | sort | uniq -c | sort -rn 

2459793 TCP_MEM_HIT:NONE
 843948 TCP_IMS_HIT:NONE
 200753 TCP_MISS:DIRECT
  23537 TCP_HIT:NONE
   8112 TCP_NEGATIVE_HIT:NONE
   2481 TCP_REFRESH_HIT:DIRECT
   1838 TCP_REFRESH_MISS:DIRECT
   1215 TCP_DENIED:NONE
      1 TCP_MISS:NONE
 

3 access.log 例子
#TCP_MISS:ROUNDROBIN_PARENT
cache01
192.168.4.33 - - [19/Jul/2012:15:29:42 +0800] "GET http://blog.test.com/wp-content/uploads/2012/07/DSCN0798-1024x768.jpg HTTP/1.1" 200 212299 "htt    p://blog.test.com/?attachment_id=88" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1" TCP_MISS:ROUNDROBIN_PARENT

cache02

- - - [19/Jul/2012:15:29:43 +0800] "ICP_QUERY http://blog.test.com/wp-content/uploads/2012/07/DSCN0798-1024x768.jpg HTTP/0.0" 0 90 "-" "-" UDP_MI     SS:NONE

nginx02
10.0.100.72 - - [19/Jul/2012:15:29:47 +0800] "GET /wp-content/uploads/2012/07/DSCN0798-1024x768.jpg HTTP/1.0" 200 211931 "http://blog.test.com/?a     ttachment_id=88" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1" 192.168.4.33, 10.0.100.82


#TCP_MISS:SIBLING_HIT
cache01
192.168.4.33 - - [19/Jul/2012:14:25:09 +0800] "GET http://blog.test.com/wp-content/uploads/2012/07/squid-linjun11-300x100.png HTTP/1.1" 304 373 "http://blog.test.com/?p=66" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1" TCP_MISS:SIBLING_HIT

cache02
192.168.4.33,%2010.0.100.82 - - [19/Jul/2012:14:25:10 +0800] "GET http://blog.test.com/wp-content/uploads/2012/07/squid-linjun11-300x100.png HTTP/1.0" 304 291 "http://blog.test.com/?p=66" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1" TCP_IMS_HIT:NONE


#UDP_MISS:NONE

cache01
- - - [20/Jul/2012:09:48:12 +0800] "ICP_QUERY http://monitor.test.com/icons/apache_pb.gif HTTP/0.0" 0 64 "-" "-" UDP_MISS:NONE
192.168.4.33 - - [20/Jul/2012:09:48:12 +0800] "GET http://monitor.test.com/icons/powered_by_rh.png HTTP/1.1" 404 406 "http://monitor.test.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1" TCP_MISS:ROUNDROBIN_PARENT

cache02
- - - [20/Jul/2012:09:48:12 +0800] "ICP_QUERY http://monitor.test.com/icons/powered_by_rh.png HTTP/0.0" 0 68 "-" "-" UDP_MISS:NONE
192.168.4.33 - - [20/Jul/2012:09:48:12 +0800] "GET http://monitor.test.com/icons/apache_pb.gif HTTP/1.1" 404 406 "http://monitor.test.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1" TCP_MISS:ROUNDROBIN_PARENT

nginx02
10.0.100.72 - - [20/Jul/2012:09:48:16 +0800] "GET /icons/powered_by_rh.png HTTP/1.0" 404 162 "http://monitor.test.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1" 192.168.4.33, 10.0.100.82


#TCP_NEGATIVE_HIT:NONE
cache01
192.168.4.33 - - [20/Jul/2012:14:39:47 +0800] "HEAD http://monitor.test.com/icons/apache_pb.gif HTTP/1.1" 404 334 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3" TCP_NEGATIVE_HIT:NONE
192.168.4.33 - - [20/Jul/2012:14:39:48 +0800] "HEAD http://monitor.test.com/icons/apache_pb.gif HTTP/1.1" 200 342 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3" TCP_MISS:ROUNDROBIN_PARENT
192.168.4.33 - - [20/Jul/2012:14:39:49 +0800] "HEAD http://monitor.test.com/icons/apache_pb.gif HTTP/1.1" 200 350 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3" TCP_MEM_HIT:NONE

apache01
//X-Forwarded-For请求头,多个ip用','分割这里的192.168.4.33 是client ip,10.0.100.82 是haproxy ip。
192.168.4.33, 10.0.100.82 - - [20/Jul/2012:14:39:17 +0800] "HEAD /icons/apache_pb.gif HTTP/1.0" 200 - "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3"

//TCP_NEGATIVE_HIT 参数
设置缓存错误页面时间 negative_ttl
negative_ttl 5 minutes
 

access 编码解释

4.1 access.log 结果编码

 
  1. TCP_HIT           //Squid 发现请求资源的貌似新鲜的拷贝,并将其立即发送到客户端。 
  2. TCP_MISS          //Squid 没有请求资源的 cache 拷贝。 
  3. TCP_REFERSH_HIT   //Squid 发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。 
  4.                   //原始服务器返回 304(未修改)响应,指示 squid 的拷贝仍旧是新鲜的。 
  5. TCP_REF_FAIL_HIT  //Squid 发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。 
  6.                   //然而,原始服务器响应失败,或者返回的响应 Squid 不能理解。 
  7.                   //在此情形下,squid 发送现有 cache 拷贝(很可能是陈旧的)到客户端。 
  8. TCP_REFRESH_MISS  //Squid 发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。 
  9.                   //原始服务器响应新的内容,指示这个 cache 拷贝确实是陈旧的。 
  10. TCP_CLIENT_REFRESH_MISS  //Squid 发现了请求资源的拷贝,但客户端的请求包含了 Cache-Control: no-cache 指令。 
  11.                          //Squid转发客户端的请求到原始服务器,强迫 cache 确认。 
  12. TCP_IMS_HIT        //客户端发送确认请求,Squid 发现更近来的、貌似新鲜的请求资源的拷贝。 
  13.                    //Squid 发送更新的内容到客户端,而不联系原始服务器。 
  14. TCP_SWAPFAIL_MISS  //Squid 发现请求资源的有效拷贝,但从磁盘装载它失败。 
  15.                    //这时 squid 发送请求到原始服务器,就如同这是个 cache 丢失一样。 
  16. TCP_NEGATIVE_HIT   //在对原始服务器的请求导致 HTTP 错误时,Squid 也会 cache 这个响应。 
  17.                    //在短时间内对这些资源的重复请求,导致了否命中。negative_ttl 指令控制这些错误被 cache 的时间数量。 
  18.                    //请注意这些错误只在内存 cache,不会写往磁盘。下列 HTTP 状态码可能导致否定 cache(也遵循于其他约束) 
  19.                    // 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。 
  20. TCP_MEM_HIT        //Squid 在内存 cache 里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非 
  21.                    //精确的呈现了所有从内存服务的响应。例如,某些 cache 在内存里,但要求确认的响应, 
  22.                    //会以 TCP_REFRESH_HIT, TCP_REFRESH_MISS 等形式记录。 
  23. TCP_DENIED         //因为 http_access 或 http_reply_access 规则,客户端的请求被拒绝了。 
  24.                    //注意被 http_access 拒绝的请求在第 9 域的值是 NONE/-,然而被 http_reply_access 拒绝的请求,在相应地方有一个有效值。 
  25. TCP_OFFLINE_HIT    //当 offline_mode 激活时,Squid 对任何 cache 响应返回 cache 命中,而不用考虑它的新鲜程度。 
  26. TCP_REDIRECT       //重定向程序告诉 Squid 产生一个 HTTP 重定向到新的 URI(见 11.1 节)。正常的,Squid 不会记录这些重定向。 
  27.                    //假如要这样做,必须在编译 squid 前,手工定义 LOG_TCP_REDIRECTS预处理指令。 
  28. NONE               //无分类的结果用于特定错误,例如无效主机名。 
  29.  
  30. #ICP 查询。 
  31. UDP_HIT            //Squid 在 cache 里发现请求资源的貌似新鲜的拷贝。 
  32. UDP_MISS           //Squid 没有在 cache 里发现请求资源的貌似新鲜的拷贝。假如同一目标通过 HTTP 请求, 
  33.                    //就可能是个 cache 丢失。请对比 UDP_MISS_NOFETCH。 
  34. UDP_MISS_NOFETCH   //跟 UDP_MISS 类似,不同的是这里也指示了 Squid 不愿去处理相应的 HTTP 请求。 
  35.                    //假如使用了-Y 命令行选项,Squid 在启动并编译其内存索引时,会返回这个标签而不是 UDP_MISS。 
  36. UDP_DENIED         //因为 icp_access 规则,ICP 查询被拒绝。假如超过 95%的到某客户端的 ICP 响应是UDP_DENIED, 
  37.                    //并且客户端数据库激活了(见附录 A),Squid 在 1 小时内,停止发送任何ICP 响应到该客户端。 
  38.                    //若这点发生,你也可在 cache.log 里见到一个警告。 
  39. UDP_INVALID        //Squid 接受到无效查询(例如截断的消息、无效协议版本、URI 里的空格等)Squid 发送UDP_INVALID 响应到客户端。 


4.2 access.log 对端编码

 
  1. NONE              //这指明 Squid 对本次请求,不会与任何其他服务器(邻居或原始服务器)通信。 
  2.                   //它通常与 cache命中、拒绝请求、cache 管理请求、错误、和所有的 ICP 查询这些类型联合出现。 
  3. DIRECT            //Squid 直接转发请求到原始服务器。该域的第 2 半部分显示原始服务器的 IP 地址,或主机名。 
  4. SIBLING_HIT       //在姐妹 cache 返回 ICP 或 HTCP 命中后,Squid 发送请求到姐妹 cache。 
  5. PARENT_HIT        //在父 cache 返回 ICP 或 HTCP 命中后,Squid 发送请求到父 cache。 
  6. DEFAULT_PARENT    //Squid 选择该父 cache,因为其在 squid.conf 的 cache_peer 行里被标志为 default。 
  7. FIRST_UP_PARENT   //Squid 转发请求到该父 cache,因为它是位于已知活跃列表里的第一个父 cache。 
  8. FIRST_PARENT_MISS //Squid 转发请求到该父 cache,它第一个响应 ICP/HTCP 丢失消息。换句话说,对这个特殊的 
  9.                   //ICP/HTCP 查询,在这个特殊时刻,被选中的父 cache 有最佳的往返时间(RTT)。 
  10.                   //注意标准RTT 可能被人工矫正过,取决于 cache_peer 指令的 weight 选项。 
  11. CLOSEST_PARENT_MISS 
  12.                   //Squid 选择该父 cache,因为它报告到原始服务器的 RTT 最低。这点仅在 2 个 cache 都激活 
  13.                   //了 netdb,并且原始服务器(或在同一子网内的其他 server)返回 ICMP ping 消息。 
  14. CLOSEST_PARENT    //这点类似 CLOSEST_PARENT_MISS,除了 RTT 计算不是来自 ICP/HTCP 响应消息外。 
  15.                   //代替的,它们来自 Squid 保留的更老的计算方式,例如 netdb 交换功能。 
  16. CLOSEST_DIRECT    //Squid 基于 netdb 算法,转发请求到原始服务器。这点在满足下述任何条件时发生: 
  17.                   //1)在 Squid 和原始服务器之间的 RTT 小于配置的 minimum_direct_rtt 值。 
  18.                   //2)在 Squid 和原始服务器之间的标准路由跳数少于配置的 minimum_direct_hops 值。 
  19.                   //3)在 ICP/HTCP 响应里返回的 RTT 值,指示 Squid 离原始服务器近于任何其他邻居。 
  20. ROUNDROBIN_PARENT 
  21.                   //Squid 转发请求到该父 cache,因为设置了 round-robin 选项,并且它有最低的使用计数器。 
  22. CD_PARENT_HIT     //Squid 基于 cache 摘要算法(见 10.7 节)转发请求到该父 cache。 
  23. CD_SIBLING_HIT    //Squid 基于 cache 摘要算法转发请求到该姐妹 cache。 
  24. CARPS             //quid 选择该父 cache,基于 cache 数组路由协议算法(见 10.9 节) 
  25. ANY_PARENT        //作为最后的手段,Squid 选择该父 cache,因为没有其他方法能选择可行的下一跳。 
  26.                   //注意大部分上述编码可能以 TIMEOUT_开头,这表明在等待 ICP/HTCP 响应时发生超时。 
  27. 例如: 
  28. 1066038165.382 345 193.233.46.21 TCP_MISS/200 2836 GET http://www.caida.org/home/images/home.jpg \
  29. TIMEOUT_CLOSEST_DIRECT/213.219.122.19 image/jpeg 
  30. 可使用 icp_query_timeout 指令来调整超时。 

 



参考
Squid 中文权威指南
http://home.arcor.de/pangj/squid/

squid 否定缓存 negative_ttl 实测和总结
http://www.sealinger.com/archives/383/

C1-Squid_Cache-Server 
http://dngood.blog.51cto.com/446195/939524

C2-Squid_Neighbour
http://dngood.blog.51cto.com/446195/955710



结束
更多请:
linux 相关 37275208
vmware 虚拟化相关  166682360


本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/962182


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
19天前
|
安全 Linux 网络安全
/var/log/secure日志详解
Linux系统的 `/var/log/secure` 文件记录安全相关消息,包括身份验证和授权尝试。它涵盖用户登录(成功或失败)、`sudo` 使用、账户锁定解锁及其他安全事件和PAM错误。例如,SSH登录成功会显示"Accepted password",失败则显示"Failed password"。查看此文件可使用 `tail -f /var/log/secure`,但通常只有root用户有权访问。
296 4
|
19天前
|
监控 Linux 网络安全
/var/log/auth.log日志说明
`/var/log/auth.log`是Linux系统记录身份验证和授权事件的日志文件,包括登录尝试、SSH连接、sudo操作等。系统管理员可通过它监控用户登录、检查失败尝试、跟踪SSH活动、查看sudo/su操作及PAM活动。日志内容可能因系统配置而异,可能存在于其他日志文件中。分析这些日志可使用`tail`、`grep`等命令或专用日志分析工具。了解系统和其服务详情有助于提取有用信息。
91 2
|
19天前
|
小程序
【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘
【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘
293 0
|
19天前
|
Ubuntu Linux 网络安全
/var/log/auth.log日志详解
`/var/log/auth.log`是Linux(尤其是Debian系如Ubuntu)记录身份验证和授权事件的日志文件,包括登录尝试(成功或失败)、SSH活动、sudo使用和PAM模块的操作。登录失败、SSH连接、sudo命令及其它认证活动都会在此记录。查看此日志通常需root权限,可使用`tail`、`less`或`grep`命令。文件内容可能因发行版和配置而异。例如,`sudo tail /var/log/auth.log`显示最后几行,`sudo grep "failed password" /var/log/auth.log`搜索失败密码尝试。
307 8
|
8月前
|
应用服务中间件 nginx
【Nginx异常】[error] 4236#29900: OpenEvent(“Global\ngx_reload_27128“) failed (5: Access is denied)
【Nginx异常】[error] 4236#29900: OpenEvent(“Global\ngx_reload_27128“) failed (5: Access is denied)
240 0
|
11月前
|
JavaScript 应用服务中间件 BI
nginx access log满引发的一个问题
今天下午突然遇到一个问题: 报表直接进不去了,重启也没有生效。
234 0
|
应用服务中间件 nginx
【已解决】nginx: [warn] conflicting server name “www.xxx.com“ on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name “www.xxx.com“ on 0.0.0.0:443, ignored
516 0
|
缓存 应用服务中间件 网络安全
nginx1.8.1配置SSL使用HTTPS及access.log配置记录
nginx1.8.1配置SSL使用HTTPS及access.log配置记录
2259 0