除了几个基本的 VHOST 之外,我还有默认的 apache 和 apache 日志记录配置。每当我尝试查看我的 apache 日志文件(error.log、access.log)时,我都会看到这些文件不断地定期重新排序和重新组织,不幸的是我不明白其原因或方法是什么。
据我所知,此日志文件操作是由名为“logrotate”的实用程序执行的。
以及联机帮助页中的描述
logrotate 旨在简化生成大量日志文件的系统的管理。它允许自动轮换、压缩、删除和邮寄日志文件。每个日志文件可以每天、每周、每月或当它变得太大时处理。
我已阅读以下资源:
- http://www.rackspace.com/knowledge_center/article/understanding-logrotate-utility
- http://linuxcommand.org/man_pages/logrotate8.html
- https://www.digitalocean.com/community/tutorials/how-to-configure-logging-and-log-rotation-in-apache-on-an-ubuntu-vps
- http://httpd.apache.org/docs/2.4/logs.html#rotation
上述资源对您如何进行很好的技术解释配置logrotate,但我无法得到关于什么的常识性解释日志旋转点是,因此对其工作原理有一些了解。我可以看到它对某些文件执行压缩,这样做的好处是显而易见的。
我知道 logrotate 是一个通用实用程序,可以处理许多服务的日志文件 - 因此它的功能会根据每个配置而变化 - 但是,在 Ubuntu 14.04 上的 apache 2.4 上下文中,“logrotate”有什么作用?
答案1
这个想法是,您始终拥有一个相对新鲜的主文件(例如 access_log 或 error_log),其中包含最新条目。当日志变得太旧或太大时,logrotate 会创建存档文件,以便不会丢弃任何信息(类似于 access_log-YYYYMMDD)。
因此,仍然可以访问较旧的日志,而主日志文件的大小不会失控。包含较少信息的较小文件更易于读取和调试 - 特别是在这些日志可能增长到几 GB 的繁忙服务器上。
例如,在 CentOS 上,Apache 日志每 7 天轮换一次。
您可以在闲暇时删除存档文件,或者也让 logrotate 处理删除操作。
查看男人对数旋转更多细节。
答案2
要点logrotate
是,如果允许应用程序无限期地写入日志文件,
- 你将耗尽磁盘空间,并且
- 文件将变得太大而无法查看(有些人在 100MB 日志文件上使用 vi...)
所以它的作用是
- 提供一种可配置的方式改名当前活动文件到保存的副本,
- 通知正在写入日志文件的服务以启动一个新文件,并且
- 提供一种可配置的方式来告知需要多少磁盘空间来保存副本
仅重命名日志文件是行不通的,因为许多程序都会使文件保持打开状态。如果重命名,程序将继续写入重命名的文件。
设计用于日志记录的程序通常被设计为响应信号。如果不, (logrotate
是可配置),当日志文件变大时可以重新启动服务。
进一步阅读:
- 停止和重新启动 Apache HTTP 服务器(解释信号的使用)