您的位置:首页 > 其它

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

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

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 纸鸢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: