日志旋转的好处

我一直在使用logrotation多年,从来没有想过这是一个问题太多,直到我遇到了一个问题在stackoverflow( https://stackoverflow.com/questions/1508734/disable-java-log-rotation/ )有人想要禁用日志旋转。

对于我有build立服务器,甚至生产服务器手动清理的经验,因为日志不旋转和光盘用完,突然机器停下来,似乎都疯了,但它发生在我后面,也许它不是那么明显所有。

那么日志轮换有什么好处呢? 有什么缺点(比如更难以debugging/分析)? 你认为哪些工具对于处理轮转的日志文件有用? Splunk我假设,但还有什么?

我认为日志轮换的好处很明显:

  1. 您可以轻松pipe理较小的日志文件,而不是一个巨大的日志文件。
  2. 如果根据容量限制进行适当configuration,则不会突然出现磁盘空间不足的情况。 ( size选项)
  3. 较旧的日志文件可以被压缩,以便日志文件的大小更小,从而节省更多的磁盘空间。 ( compress选项)。
  4. 您可以以特定的方式/时间旋转文件。 例如,每个日志文件只包含与特定date有关的信息。 鉴于你知道date,这将使search更容易。 当你不知道date,你可以search所有的文件或其中的一部分。 ( dailymonthly等)。
  5. 你会自动删除非常旧的文件。 例如,您可以保留最多30个文件。 ( rotate 30 )。
  6. 你可以添加你喜欢的扩展名,如旋转date。 ( dateext )。
  7. 您可以在旋转之前/之后执行特定的脚本。 ( prerotatepostrotate )。

编辑:我添加更多的项目列表,并在适用时包括选项。 有关更多详细信息,可以查阅man logrotate

优点:

  • 如果日志文件很大,则可以压缩或删除旧数据以避免填满磁盘
  • 如果你知道什么时候发生了事情,那么比单个永久的日志文件更快地处理一天的日志文件

缺点:

  • 如果要处理整个历史logging,则必须指定多个文件名
  • 有些程序不支持旋转,如果使用logrotate这样的实用工具旋转它,有一些边缘情况需要注意(例如,您必须使用truncate选项,我认为这意味着您可能会丢失less量的数据)

如果您考虑使用日志,效益会变得更加清晰。 撇开别人和你自己提到的明显的观点。 对我来说,最大的好处是我可以控制如何将日志input离线分析工具。

我有各种各样的用于分析日志的自制脚本 – 但是,AFAIK,splunk和各种webloog分析工具是现成的唯一“标准”工具。 (不包括fail2ban等实时日志文件分析器)。