我需要制作一个程序来记录每个用户的 squid 代理的带宽使用情况。在我的 access.log 中,我看到如下输出...
1481377143.042 0 104.123.25.183 TCP_DENIED/407 3829 CONNECT scontent.xx.fbcdn.net:443 - HIER_NONE/- text/html
1481377143.403 0 104.123.25.183 TCP_DENIED/407 3793 CONNECT cx.atdmt.com:443 - HIER_NONE/- text/html
1481377277.865 134623 104.123.25.183 TCP_MISS/200 4118 CONNECT scontent.xx.fbcdn.net:443 star7 HIER_DIRECT/2a03:2880:f022:b:face:b00c:0:3 -
1481377277.868 134626 104.123.25.183 TCP_MISS/200 4116 CONNECT scontent.xx.fbcdn.net:443 star7 HIER_DIRECT/2a03:2880:f022:b:face:b00c:0:3 -
我相信响应大小(以字节为单位)应该在那里,但它是哪个条目?我知道标头大小未记录,因此准确性不会完美,但应该足够准确。我不知道有什么更好的方法来跟踪 squid 用户带宽使用情况,所以必须这样做,但我需要知道哪个是大小条目。
答案1
原生日志格式为:
"%9d.%03d %6d %s %s/%03d %d %s %s %s %s%s/%s %s"
第 5 部分(%s/%03d 之后的 %d)为:
字节大小是传送到客户端的数据量。请注意,这不构成净对象大小,因为标头也计算在内。此外,失败的请求可能会传送错误页面,其大小也记录在此处。
答案2
看起来像这里http://wiki.squid-cache.org/Features/LogFormat#http_status_codes他们说这是 http 状态代码之后的条目,所以 3829,3793 等等。