Squid 日志详解

本文主要介绍了Squid中access.log日志,它位于/var/log/squid/access.log,存放HTTP响应关键信息,每行对应一个客户端请求。还阐述了常用记录格式的10个域含义,如时间戳、响应时间等,若激活特定指令会追加附加域,为让日志便于分析和阅读,可能需修改为combined格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

access.log 日志

在squid中access访问日志最为重要,位于/var/log/squid/access.log,Squid把关于HTTP响应的关键信息存放在access.log里。该文件是基于行的,也就是说每行对应一个客户端请求。 squid记录客户端IP(或主机名)、请求URL、响应size、和其他信息。 
常用的记录格式如下(包含了10个域):

例如:

1608198403.375     23 47.93.218.79 TCP_DENIED/407 4423 GET http://chn.lottedfs.cn/kr/product/productDetail? bertram HIER_NONE/- text/html

下面来看看意思

logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt.

  • 时间戳: 请求完成时间,以 Unix 时间来记录的(UTC 1970-01-01 00:00:00 开始的时间)它是毫秒级的。 squid使用这种格式而不是人工可读的时间格式,是为了简化某些日志处理程序的工作。
  • 响应时间: 对HTTP响应来说,该域表明squid花了多少时间来处理请求。在squid接受到HTTP请求时开始计时,在响应完全送出后计时终止。响应时间是毫秒级的。尽管时间值是毫秒级的,但是精度可能是10毫秒。在squid负载繁重时,计时变得没那么精确。
  • 客户端地址: 该域包含客户端的IP地址,或者是主机名.
  • 结果/状态码: 该域包含2个 token,以斜杠分隔。第一个token叫结果码,它把协议和响应结果(例如TCP_HIT或UDP_DENIED)进行归类。这些是squid专有的编码,以TCP_开头的编码指HTTP请求,以UDP_开头的编码指ICP查询。第2个token是HTTP响应状态码(例如200,304,404等)。状态码通常来自原始服务器。在某些情形下,squid可能有义务自己选择状态码.
  • 传输size: 该域指明传给客户端的字节数。严格的讲,它是squid告诉TCP/IP协议栈去发送给客户端的字节数。这就是说,它不包括TCP/IP头部的overhead。也请注意,传输size正常来说大于响应的Content-Length。传输size包括了HTTP响应头部,然而Content- Length不包括。
  • 请求方式: 该域包含请求方式.
  • URI: 该域包含来自客户端请求的URI。大多数记录下来的URI实际是URL(例如,它们有主机名)。在记日志时,squid删掉了在第一个问号(?)之后的所有URI字符,除非禁用了strip_query_terms指令。
  • 客户端身份: 无
  • 对端编码/对端主机: 对端信息包含了2个token,以斜杠分隔。它仅仅与cache 不命中的请求有关。第一个token指示如何选择下一跳,第二个token是下一跳的地址。当squid发送一个请求到邻居cache时,对端主机地址是邻居的主机名。假如请求是直接送到原始服务器的,则squid会写成原始服务器的IP地址或主机名–假如禁用了log_ip_on_direct。 NONE/-这个值指明squid不转发该请求到任何其他服务器。
  • 内容类型: 原始access.log的默认的最后一个域,是HTTP响应的内容类型。 squid从响应的Content-Type头部获取内容类型值。假如该头部丢失了,squid使用一个横杠(-)代替。 

 假如激活了 log_mime_hdrs 指令,squid在每行追加2个附加的域:

  • HTTP请求头部: Squid 编码HTTP请求头部,并且在一对方括号之​​间打印它们。方括号是必须的,因为squid不编码空格字符。编码方案稍许奇怪。回车(ASCII 13)和换行(ASCII 10)分别打印成\r和\n。其他不可打印的字符以RFC 1738风格来编码,例如Tab(ASCII 9)变成了%09。
  • HTTP响应头部: Squid编码HTTP响应头部,并且在一对方括号之​​间打印它们。注意这些是发往客户端的头部,可能不同于从原始服务器接受到的头部。

如果日志需要给 awstats 分析和让人可读性更加好,可能需要修改日志为 combined:

logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log combined

会显示为

60.205.178.230 - - [17/Dec/2020:17:42:37 +0800] "GET http://chn.lottedfs.cn/kr/product/productDetail? HTTP/1.1" 407 4319 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0" TCP_DENIED:HIER_NONE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_狂奔者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值