我想知道使用单独的 Apache 日志(访问、代理、错误和引用)是否比使用单个组合日志文件有任何好处或常见用例。我试过谷歌搜索,但似乎还没有真正对这个特殊的困境进行分析。
传统上我使用单独的只是因为将数据分成组是有意义的(当然,换句话说,它实际上是拆分分组数据;即,任何给定的访问都被拆分成多个部分——这意味着同时查看四个文件时间并试图使它们同步到相同的时间戳)。
我没有使用太多日志分析器,但我怀疑至少有一些分析器可以更好地(或根本)与组合日志一起工作。
那么有充分的理由使用单独的而不是组合的吗?
我使用不同的日志来分离在同一台服务器上运行但具有完全不同目的(即不同站点或不同类型的安全/敏感度)的关键主题,因为我发现它更容易检查、审查和分析,因为它减少了噪音.
很明显,您可以使用 grep 获得类似的结果。
这实际上是您必须根据您的环境和工作方式做出的个人决定。两者各有利弊。
组合日志(所有内容都到一个文件)的主要优点是它是同时写出的:如果发生错误,您会在导致它的“访问”行(请求)下看到它。
如果您没有大量请求,这可以使故障排除更容易一些。
相反,当条目量大到无法解决问题时,单独的日志文件就有意义了。
Apache 的“传统”部门是
access
和error
日志——当你寻找一个问题时,你会查看错误日志并引发问题,你只会得到错误(而不是错误加上
GET
浏览器下载的所有 CSS 文件、Javascript、图像等请求)在你到达崩溃的部分之前)。您可以将此进一步发挥到极致(单独的 Access、Agent、Referrer、SSL 等日志),但我个人认为没有必要这样做。在大多数部署中,您会看到传统的“错误”和“访问”(不是错误的所有内容)日志记录。
如果您正在进行分析或统计,可能有理由为引荐来源等保留额外的专用日志,或者如果您不关心它,您可以从访问日志中省略该信息,但我不会细分日志以至于您必须查看 2 个以上的地方才能解决问题。这只会让你做更多的工作。