SEO 百科

日志轮转

本页目录

日志轮转

日志轮转 是按时间或大小把日志切成一段段、压缩旧段并删除过期份的做法,Linux 上由 logrotate 完成,配置文件按天、周、月与大小阈值定义切分与保留份数[1]。它防的是同一件事:日志无人管理,直到把磁盘写满。

不主动管的后果

日志无限增长是运维里最容易忽略、也最容易直接触发故障的一类。磁盘满的表现是页面变慢、数据库拒绝写入、面板任务失败,排查会绕一大圈[2]。

另一方面,留得太短会失去回溯能力。抓取异常、内容被改动这类事常在发生几天后才被发现,保留期要能覆盖这段延迟[3]。

配置要点

切分方式。按天切最常用,高流量站要配合大小阈值,避免单个文件过大。

压缩与延迟压缩。旧日志压缩能省数倍空间,延迟一轮再压可以保住当天可读[1]。

通知服务重开文件。Web 服务不会自动换文件句柄,配置里要在切分后发送信号或执行命令[1][2]。

保留期与权限。归档文件的读权限要收紧,不要留在可被下载的目录里[3]。

与集中收集的关系

轮转解决本地不写满的问题,不解决跨机查询。需要多方对表时,另配采集把日志送到一处,本地只留短期原样,长期由集中存储承担[1]。

常见误用

第一种是加了轮转却没让服务重开文件,日志继续写进已改名的句柄,看起来像"日志突然不动了"[2]。第二种是保留期一刀切,安全类记录留得比访问记录还短。第三种是把轮转任务与备份任务混成一个,误删归档。

附录

参见

参考资料

官方(境外)

  1. 《logrotate 手册页》,logrotate 维护组。
  2. 《nginx 信号与日志重开》,NGINX。
  3. 《防止网站和平台存在用户生成的垃圾内容》,Google 搜索中心。

外部链接