TrafficServer日志系统配置指南

TrafficServer日志系统配置指南

淘仇恕(张云开)

原文放在Google Doc里,这里只做镜像不更新


一、TS日志系统简介

在中大规模的软件系统中,日志系统(logging system),已经成为标配。Linux有syslog,Java有Log4j,Python有logging模块。日志系统的模型,已经非常成熟,大体如下图所示:


概括地说,就是日志系统里,允许配置多个日志对象(LogObject),这些对象描述了日志的过滤规则(filter)、格式(format)、以及日志的去向(target)。日志的输入(input),是通过约定的日志API,由应用程序调用这些API完成输入。日志最终会输出(output)到磁盘或写入到网络的另一台日志服务器上。


在TrafficServer中:

  1. 日志输入,由的TrafficServer的worker线程完成,这些线程会把HTTP状态机的信息,直接传递给日志系统的API里。

  2. 日志API,由两个简洁的函数组成:Log::access()——访问日志,Log::error()——错误日志。

  3. 日志对象,通过一个logs_xml.config文件描述,这个文件通常位于:/etc/trafficserver/目录下,文件内部对配置方法有详细的描述。

  4. 日志输出,由LogObject的target属性描述,但在具体的logs_xml.config中,target属性由LogObject的Filename及CollationHosts描述。如果不存在CollationHosts,则表示输出到本地磁盘,否则输出到网络上的日志服务器。


在讲解TS的日志系统配置之前,需要先了解TS日志系统的内部结构,包括它的线程模型、工作流程。下图对其内部结构进行简要描述:

由上图可知,TS的日志系统,其线程包含:

  1. worker线程,即日志的输入方,它会调用Log::access()/Log::error() 日志API。在这些API内部,会根据用户在logs_xml.config配置的LogObject对日志进行过滤。若满足了过虑条件,则把该条日志写入到该LogObject下的LogBuffer里。若LogBuffer已满,则把它发送到预处理线程的queue里,然后继续与下一个LogObject的过虑条件进行匹配,直到所有LogObject都匹配结束。

  2. preproc线程,即预处理线程,它负责做一些转换工作(例如,把worker线程传递进来的HTTP状态机,根据LogObject的format格式,转换成Ascii字符串,这部分转换工作不是必需的,取决于LogObject配置的日志类型,若是二进制类型则不进行转换),然后根据LogObject的target类型,把预处理后的数据发送到flush队列或collation队列。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要检查Traffic Server的配置是否正确可以采取以下步骤: 1. 确认Traffic Server已经正确安装并正在运行。 2. 检查Traffic Server的配置文件(通常是 /etc/trafficserver/trafficserver.conf)是否正确配置。可以使用 traffic_line 命令来检查配置文件。例如,输入以下命令来检查是否存在名为 proxy.config.http.server_ports 的配置: ``` traffic_line -r proxy.config.http.server_ports ``` 如果此命令返回一个值,则说明该配置已经存在。 3. 检查Traffic Server的访问控制列表(ACL)是否正确配置。ACL通常用于限制对Traffic Server的访问。可以使用 traffic_line 命令来检查ACL配置。例如,输入以下命令来检查是否存在名为 proxy.config.http.referer_filter.enable 的配置: ``` traffic_line -r proxy.config.http.referer_filter.enable ``` 如果此命令返回一个值,则说明该配置已经存在。 4. 检查Traffic Server的缓存设置是否正确配置。Traffic Server使用缓存来提高性能。可以使用 traffic_line 命令来检查缓存配置。例如,输入以下命令来检查是否存在名为 proxy.config.cache.ram_cache.size 的配置: ``` traffic_line -r proxy.config.cache.ram_cache.size ``` 如果此命令返回一个值,则说明该配置已经存在。 5. 检查Traffic Server日志设置是否正确配置。Traffic Server会将访问日志和错误日志写入日志文件。可以使用 traffic_line 命令来检查日志配置。例如,输入以下命令来检查是否存在名为 proxy.config.log.hostname 的配置: ``` traffic_line -r proxy.config.log.hostname ``` 如果此命令返回一个值,则说明该配置已经存在。 如果以上步骤都没有发现问题,则Traffic Server的配置应该是正确的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值