apache traffic server 默认日志和自定义日志

一、默认日志格式
使用系统定义的日志格式
打开 record.config 修改或者添加如下内容:
#开启squid格式的日志输出
CONFIG proxy.config.log.squid_log_enabled INT 1
#更改默认日志的输出格​​式,按照ASCII码输出日志
CONFIG proxy.config.log.squid_log_is_ascii INT 1
重新启动 ATS 或者使用 traffic_line -x
没有自定义格式时,由于ats使用默认的二进制编码记录日志,因此只能使用traffic_logcat来查看日志,如下:

apache traffic server 默认日志和自定义日志

二、修改records.config,开启日志自定义功能
#更改日志目录,默认日志存放在/var/log/trafficserver:
CONFIG proxy.config.log.logfile_dir STRING /var/log/trafficserver
#更改默认日志的输出格​​式,按照ASCII码输出日志
CONFIG proxy.config.log.squid_log_is_ascii INT 1
#关闭squid格式的日志输出
CONFIG proxy.config.log.squid_log_enabled INT 0
#修改records.config,开启日志自定义功能
CONFIG proxy.config.log.custom_logs_enabled INT 1
二、修改logs_xml.config
<LogFormat>
<Name = “access”/>
<Format = “%<chi> %<cqtq> %<ttms> %<{X-Forwarded-For}cqh> %<crc>/%<pssc> %<pscl> %<cqhm> %<cquuc> %<cqhv> %<phr>/%<pqsi> %<psct> \”%<{Referer}cqh>\” \”%<{User-Agent}cqh>\” %<shn> %<sscl>”/>
</LogFormat>
<LogObject>
<Format = “access”/>
<Filename = “access”/>
</LogObject>
输出结果:
10.0.5.153 1543562823.049 0 – TCP_MEM_HIT/200 28 GET http://www.a.com/1.txt HTTP/1.0 NONE/0 text/plain “-” “Wget/1.12 (linux-gnu)” www.a.com 0
日志轮询
#日志文件的滚动
#0 – 禁用日志文件的滚动
#1 – 启用在特定的时间间隔对日志文件进行滚动.(需要配合proxy.config.log.rolling_interval_sec和
proxy.config.log.rolling_offset_hr)
#2 – 启用在指定文件大小对日志文件进行滚动(需要配合proxy.config.log.rolling_size_mb )
#3 – 启用在指定文件大小或特定的时间间隔对日志文件进行滚动(以先发生优先)
#4 – 启用在指定的时间间隔中日志文件达到特定大小进行滚动
CONFIG proxy.config.log.rolling_enabled INT 1
#日志滚动间隔秒数。最低为300秒,最大为86400
CONFIG proxy.config.log.rolling_interval_sec INT 86400
#日志滚动偏移小时。
CONFIG proxy.config.log.rolling_offset_hr INT 0
#当日志文件多大的时对日志进行滚动
CONFIG proxy.config.log.rolling_size_mb INT 10
#是否启用滚动文件的自动删除
CONFIG proxy.config.log.auto_delete_rolled_files INT 1
#配置日志文件只是对事务进行采样,而不是记录所有的事务
#1 – 记录所有的事务
#2 – 每秒只记录一次事务
#3 – 每三件事务记录一次
CONFIG proxy.config.log.sampling_frequency INT 1
这里简单的解释下logs_xml.config这个文件的组成,主要由LogFormats/LogFilters/LogObject定义块组成,每一块的含义如下:
LogFormat : object defines the content of the log file using printf-style format strings (看到 printf-style,就猜的出来,说的是按照一种什么风格输出日志,例如日志字段间的分隔用的是逗号分隔还是空格分隔了)
LogFilter :object defines a filter so that you include or exclude certain information from the log file (看到Filter也知道,这个部分是做过滤的,确定最后要输出什么样的信息到日志,例如可以只输出某一个域名的日志或者只输出状态码等于200的日志等等)
LogObject :object specifies all the information needed to produce a log file (这是一个总的定义块,相当于c语言最后的main函数,例如你要自定义输出一个日志,首先要定义一个LogObject,然后里面再包括LogFormat/LogFilter等其他部分;LogObject里,至少要包括Format(决定日志如何输出)和Filename(日志输出到哪)这两个部分。)

原创文章,作者:赛福,如若转载,请注明出处:https://www.safecdn.cn/ats/2018/11/apache-traffic-server-log.html

发表评论

邮箱地址不会被公开。