技术博客

Linux journald 日志保留策略:为什么磁盘总被日志打满?

systemd-journald 默认策略不一定适合生产服务器,本文介绍日志占用、保留、清理和持久化配置的运维要点。

Linux日志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,重点关注:

日志保留要和磁盘大小、合规要求、集中日志系统一起设计。如果已经接入 Loki、Elasticsearch 或其它日志平台,本机日志可以保留短一些;如果没有集中日志,本机日志至少要能覆盖常见故障追溯窗口。

关键提醒

日志被打满不是单纯的空间问题,背后常常是应用异常、探针失败、权限错误或网络重试。清理空间后,一定要找到日志增长源头。

参考资料