C3-Squid-access.log

发布时间:2019-09-14 09:25:47编辑:auto阅读(1371)

    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/?p_w_upload_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
     

    4 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/p_w_picpaths/home.jpg \
    29. TIMEOUT_CLOSEST_DIRECT/213.219.122.19 p_w_picpath/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

关键字