Debian 关于 journald 日志 详解 如何合理限制日志大小

本文含有: 限制/var/log/journald日志目录的文件大小, 以及具体调控措施, 可以限制最多允许同时存在多少个日志文件, 单个文件的大小, 所有日志加起来的总空间

环境: Debian 11

打开文件 nano /etc/systemd/journald.conf

  • 接下来我会选一些会用到的进行说明

限制大小

日志大小的单位可以使用以 1024 为基数的 K, M, G, T, P, E 后缀

    1. 限制全部日志文件加在一起最多可以占用多少空间
    • SystemMaxUse=: 限制 /var/log/journal 目录的总大小
    • RuntimeMaxUse=: 限制 /run/log/journal 这个的
    • 默认值是 10%空间与 4G 空间两者中的较小者
    1. 设置磁盘空间的最小保留量, 当小于这个值则停止写入日志
    • SystemKeepFree=  与  RuntimeKeepFree=
    • 主要用于防止被刷日志导致占满硬盘, 默认值是硬盘的 15%
    1. 限制单个日志文件的最大体积
    • SystemMaxFileSize=  与  RuntimeMaxFileSize=
    • 默认值是对应的  SystemMaxUse=  与  RuntimeMaxUse=  值的 1/8
    1. 限制最多允许同时存在多少个日志文件
    • SystemMaxFiles=  与  RuntimeMaxFiles=
    • 超出此限制后, 最老的日志文件将被删除, 而当前的活动日志文件则不受影响。 默认值为 100 个。

我这里给个示例

# 所有日志总大小不超过1G
SystemMaxUse=1024M
RuntimeMaxUse=1024M

# 磁盘低于15%时停止写入日志
SystemKeepFree=15%
RuntimeKeepFree=15%

# 每个日志 64M
SystemMaxFileSize=64M
RuntimeMaxFileSize=64M

# 最多保留7个日志
SystemMaxFiles=7
RuntimeMaxFiles=7

提醒下: SystemKeepFree 这个参数假如硬盘已被占满, 他是不会删除已有的日志的, 只会暂停写入

时间滚动

    1. 日志滚动的时间间隔 (每 N 个时间创建一个日志)
    • MaxFileSec=
    • 单位:
      • 1m: 1 分钟
      • 1h: 1 小时
      • 1d: 1 天
      • 1w: 1 周
      • 1y: 1 年
      • 2w 3d: 2 周+三天
    • 不推荐 使用这个基于时间的日志滚动策略, 你可以使用上面的基于大小的策略(SystemMaxFileSize)
    1. 日志文件在硬盘的最大保留期限
    • MaxRetentionSec=
    • 单位: 同上
    • 当日志文件的最后修改时间(mtime)与当前时间之差, 大于此处设置的值时,日志文件将会被删除

参考文章:

https://manpages.ubuntu.com/manpages/focal/zh_CN/man5/journald.conf.5.html

https://www.jinbuguo.com/systemd/journald.conf.html

Licensed under CC BY-NC-SA 4.0
本博客已稳定运行
发表了53篇文章 · 总计28.17k字
使用 Hugo 构建
主题 StackJimmy 设计