我想知道使用单独的 Apache 日志(访问、代理、错误和引用)是否比使用单个组合日志文件更好。我试过谷歌搜索,但似乎尚未真正对这一特定困境进行分析。
传统上,我使用单独的数据,只是因为将数据分成几组是有意义的(当然,从另一个角度来说,它实际上是分裂分组数据;即,任何给定的访问都被分成多个部分 - 这意味着同时查看四个文件并尝试使它们保持同步到相同的时间戳)。
我没有使用过太多的日志分析器,但我认为至少有些日志分析器在组合日志的情况下会工作得更好(或根本不能工作)。
那么,是否有充分的理由选择使用分离式而非组合式呢?
答案1
这确实是个人决定,您必须根据您的环境和工作方式做出决定。两者都有优点和缺点。
组合日志(所有内容都保存在一个文件中)的主要优点是它会同时写入:如果发生错误,您会在导致错误的“访问”行(请求)下看到它。
如果您的请求量不是很大,这可以使故障排除变得更容易一些。
相反,当条目量太大以至于在尝试解决问题时难以承受时,单独的日志文件是有意义的。
Apache 的“传统”部门是access
日志error
部门——
- 访问日志包含服务器收到的所有请求(以及它发回的响应代码),有时还包含其他有用的信息,如 SSL 协议等。
- 错误日志,顾名思义,包含:错误(CGI/PHP/等故障、异常、堆栈打印、调试输出)。
当您查找问题时,您会查看错误日志并引发问题,并且您只会得到错误(而不是错误加上GET
您的浏览器在到达崩溃部分之前下载的所有 CSS 文件、Javascript、图像等的请求)。
您可以将其进一步发挥到极致(将访问、代理、引用者、SSL 等日志分开),但我个人认为没有必要这样做。在大多数部署中,您会看到传统的“错误”和“访问”(不是错误的所有内容)日志。
也许有理由继续额外的如果您正在进行分析或统计,则可以使用专用日志来记录引荐来源等,或者如果您不关心这些信息,也可以从访问日志中省略这些信息,但我不会将日志细分到您必须查看 2 个以上位置才能解决问题的程度。这只会给您带来更多工作。
答案2
我使用不同的日志来分离在同一台服务器上运行但用途完全不同(即不同的站点或不同类型的安全/敏感性)的关键主题,因为我发现它更容易检查、审查和分析,因为它可以减少噪音。
显然,您也可以使用 grep 获得类似的结果。