Linux journald 日志保留策略:为什么磁盘总被日志打满?
systemd-journald 默认策略不一定适合生产服务器,本文介绍日志占用、保留、清理和持久化配置的运维要点。
服务器磁盘被日志打满,是 Linux 运维里非常常见的问题。很多人会直接删除 /var/log 下的大文件,但如果问题来自 systemd-journald,只删普通日志未必有效。
journald 会收集内核、服务和系统日志。默认情况下,它可能使用内存日志,也可能持久化到 /var/log/journal。如果没有合理限制,在异常服务疯狂输出日志时,磁盘空间会快速下降。
先看日志占用
journalctl --disk-usage
这条命令能看到 journald 当前占用空间。再结合:
journalctl -p err -b
journalctl -u nginx --since today
可以判断是系统级错误还是某个服务刷屏。
常用清理方式
按大小清理:
journalctl --vacuum-size=1G
按时间清理:
journalctl --vacuum-time=14d
这类命令适合临时止血,但不能替代配置治理。
配置保留策略
生产环境建议检查 /etc/systemd/journald.conf,重点关注:
SystemMaxUseSystemKeepFreeMaxRetentionSecRateLimitIntervalSecRateLimitBurst
日志保留要和磁盘大小、合规要求、集中日志系统一起设计。如果已经接入 Loki、Elasticsearch 或其它日志平台,本机日志可以保留短一些;如果没有集中日志,本机日志至少要能覆盖常见故障追溯窗口。
关键提醒
日志被打满不是单纯的空间问题,背后常常是应用异常、探针失败、权限错误或网络重试。清理空间后,一定要找到日志增长源头。
