我只是总结归纳了别人的方法,并做了实际验证,在这里记录一下,以备大家参考,向参考文献中的各位前辈致敬。
ATS默认的日志格式是squid.log,我们可以在/var/log/trafficserver目录下面使用下面的命令查看
traffic_logcat -f squid.log
-f可以省略,看到的日志信息如下:
配置下面的选项来开启自定义日志格式
CONFIG proxy.config.log.custom_logs_enabled INT 1
CONFIG proxy.config.log.squid_log_enabled INT 0
CONFIG proxy.config.log.xml_config_file STRING logs_xml.config
其中,logs_xml.config文件内容如下
<LogFormat>
<Name = "access"/>
<Format = "%<cqtq> %<ttms> %<pssc> %<sssc> [%<cqtt>] %<{X-Forwarded-For}cqh> \"%<cqtx>\" %<psql> \"%<pqsi>\" %<crc>:%<phr> %<{Referer}cqh> \"%<{User-Agent}cqh>\" %<psct>"/>
</LogFormat>
<LogObject>
<Format = "access"/>
<Filename = "access"/>
</LogObject>
得到的access.log的日志如下,第2个200是源站响应状态码
1429609187.040 488 200 200 [17:39:47] - "GET http://m3.biz.itc.cn/pic/new/n/90/98/Img7669890_n.jpg HTTP/1.1" 44010 "61.135.132.59" TCP_MISS:DIRECT http://book.sohu.com/s2015/xlldtb/ "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0" image/jpeg
另外根据业务需要也可以如下的自定义格式
<Format = “%<cqtq> %<ttms> %<{X-Forwarded-For}cqh> %<crc>/%<pssc> %<pscl> %<cqhm> %<cquuc> %<cqhv> %<phr>/%<pqsi> %<psc
t> \”%<{Referer}cqh>\” \”%<{User-Agent}cqh>\” %<shn> %<sscl>”/>
<Format = "%<cqts> %<ttms> %<chi> %<crc> %<pssc> %<psql> %<cqhm> %<cquuh> %<cquup>"/>
然后reload配置文件
traffic_line -x
在日志目录下面,使用
tail -f access.log
看到如下日志
豪哥给的这个例子很有启发性,值得回味:
logs_xml.config的格式在文件中有例子,并且在admin guide中有详细的说明, 我们以线上需要记录非淘宝的所有请求为例:
<LogFormat>
<Name = "taobao"/>
<Format = "combined [%<cqtn>] %<chi> %<phi> 81 %<ttms> \"%<{Referer}cqh>\" \"%<cqtx>\" %<pssc> %<cqhl> %<psql> %<psct> %<crc> \"%<{User-Agent}cqh>\"" />
</LogFormat>
<LogFilter>
<Name = "not_taobaocdn.com"/>
<Condition = "shn CASE_INSENSITIVE_CONTAIN taobaocdn.com"/>
<Action = "REJECT"/>
</LogFilter>
<LogFilter>
<Name = "not_taobao.com"/>
<Condition = "shn CASE_INSENSITIVE_CONTAIN taobao.com"/>
<Action = "REJECT"/>
</LogFilter>
<LogObject>
<Format = "taobao"/>
<Filename = "tb_squid"/>
<Filters = "not_taobaocdn.com,not_taobao.com"/>
<CollationHosts = "console1.cn63:8085"/>
</LogObject>
我们定义了一个自定义的日志格式taobao
我们定义了2个反的过滤条件
定义了一个日志收集方式:将满足非taobao.com非taobaocdn.com的访问日志记录 到远程机器console1.cn63上的tb_squid.log中
参考文献