Tom*_*ner 14
根据我的经验,logrotate 很棒。它非常灵活,适用于大多数软件。
但是,它存在一些问题,并且由于 cronolog 主要是一个网络日志轮换工具,我将写下我使用 logrotate + apache 的经验,这是有问题的:
在轮换日志时,我们必须通知 apache 日志正在轮换,因为即使 logrotate 将 access.log 重命名为 access.log.1,apache 也会继续写入 access.log.1,因为它正在写入 inode,并且重命名文件不会影响 inode 编号。
在 debian etch(可能还有许多其他发行版)上,logrotate 被用于轮换 apache 日志。现在,apache 有一个优雅的重启,建议 apache 子进程在完成现有连接服务后退出,然后 apache 重新读取它的配置,产生新的子进程,这些子进程开始写入新的日志文件(如果前一个是旋转)。
这听起来是一个很好的解决方案,但是优雅重启在某些情况下并不总是有效(如重负载),因此 debian 开发人员决定在 apache logrotate 配置中使用 apache 重启而不是优雅重启。不幸的是,这会导致所有连接立即断开,这对于负载较重的站点来说是非常糟糕的。此外,apache重启也会导致apache停止不启动等问题(在某些负载情况下也是如此),详情请参见下面的bug链接。
最重要的是,logrotate 很棒,但可能会导致某些程序出现某些问题。我对 cronolog 没有太多经验,但是当它通过管道写入日志时,它在轮换日志文件时不需要任何 apache 重新加载,这基本上解决了上述所有问题。
相关的 logrotate/apache debian 错误:
归档时间: |
|
查看次数: |
11321 次 |
最近记录: |