Debian 关于 journald 日志 详解 如何合理限制日志大小
目录
环境: Debian 11
打开文件 nano /etc/systemd/journald.conf
- 接下来我会选一些会用到的进行说明
1 限制大小
日志大小的单位可以使用以 1024 为基数的 K, M, G, T, P, E 后缀
- 限制全部日志文件加在一起最多可以占用多少空间
SystemMaxUse=: 限制/var/log/journal目录的总大小RuntimeMaxUse=: 限制/run/log/journal这个的- 默认值是 10%空间与 4G 空间两者中的较小者
- 设置磁盘空间的最小保留量, 当小于这个值则停止写入日志
SystemKeepFree=与RuntimeKeepFree=- 主要用于防止被刷日志导致占满硬盘, 默认值是硬盘的 15%
- 限制单个日志文件的最大体积
SystemMaxFileSize=与RuntimeMaxFileSize=- 默认值是对应的
SystemMaxUse=与RuntimeMaxUse=值的 1/8
- 限制最多允许同时存在多少个日志文件
SystemMaxFiles=与RuntimeMaxFiles=- 超出此限制后, 最老的日志文件将被删除, 而当前的活动日志文件则不受影响。 默认值为 100 个。
我这里给个示例
# 所有日志总大小不超过1G
SystemMaxUse=1024M
RuntimeMaxUse=1024M
# 磁盘低于15%时停止写入日志
SystemKeepFree=15%
RuntimeKeepFree=15%
# 每个日志 64M
SystemMaxFileSize=64M
RuntimeMaxFileSize=64M
# 最多保留7个日志
SystemMaxFiles=7
RuntimeMaxFiles=7提醒下:
SystemKeepFree这个参数假如硬盘已被占满, 他是不会删除已有的日志的, 只会暂停写入
2 时间滚动
- 日志滚动的时间间隔 (每 N 个时间创建一个日志)
MaxFileSec=- 单位:
- 1m: 1 分钟
- 1h: 1 小时
- 1d: 1 天
- 1w: 1 周
1y: 1 年2w 3d: 2 周+三天
不推荐使用这个基于时间的日志滚动策略, 你可以使用上面的基于大小的策略(SystemMaxFileSize)
- 日志文件在硬盘的最大保留期限
MaxRetentionSec=- 单位: 同上
- 当日志文件的最后修改时间(mtime)与当前时间之差, 大于此处设置的值时,日志文件将会被删除
参考文章:
https://manpages.ubuntu.com/manpages/focal/zh_CN/man5/journald.conf.5.html