ATS 4.2.3自定义日志文件格式的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tao_627/article/details/45198385

我只是总结归纳了别人的方法,并做了实际验证,在这里记录一下,以备大家参考,向参考文献中的各位前辈致敬。

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中


参考文献

[1].http://www.zymlinux.net/trafficserver/FAQ.html  豪哥

[2].http://www.shencan.net/index.php/2012/08/18/trafficserver%E7%9A%84%E9%83%A8%E7%BD%B2%E4%B8%8E%E4%BD%BF%E7%94%A8/?replytocom=3 灿哥

[3].https://blog.zymlinux.net/index.php/archives/398  纸鸢

展开阅读全文

没有更多推荐了,返回首页