一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Journalctl 日志持久化设置:怎样配置存储策略与容量限制

时间:2026-07-26 08:28:58 编辑:袖梨 来源:一聚教程网

关键在两步:一是创建/var/log/journal目录并设为root:systemd-journal归属和2755权限,二是配置journald.conf中Storage=persistent、SystemMaxUse=2G、MaxRetentionSec=2week等参数,重启服务后通过journalctl --disk-usage和--list-boots验证落盘与跨重启可用。

要让 journalctl 日志重启不丢、长期可用,又不把磁盘撑爆,关键在两步:一是启用持久化存储路径,二是设好容量和时间上限。光改配置文件不够,目录权限和生效验证缺一不可。

创建并初始化持久化日志目录

systemd-journald 不会自动创建 /var/log/journal,必须手动建立并赋予正确权限,否则服务会静默退回到内存模式(/run/log/journal),导致重启后日志消失。

  • 创建目录:sudo mkdir -p /var/log/journal
  • 设置归属组(必须是 systemd-journal):sudo chown root:systemd-journal /var/log/journal
  • 设置 setgid 权限(确保新生成的子目录继承组):sudo chmod 2755 /var/log/journal
  • 用 systemd-tmpfiles 补全权限策略(更稳妥):sudo systemd-tmpfiles --create --prefix /var/log/journal

配置 journald.conf 存储策略

编辑 /etc/systemd/journald.conf,在 [Journal] 小节中明确启用持久化并开启压缩:

  • Storage=persistent(不要依赖 auto,避免目录误删后降级)
  • Compress=yes(默认用 LZ4,节省约 70% 空间)
  • ForwardToSyslog=no(除非你真需要转发到 rsyslog,否则关掉减少冗余)

保存后重启服务:sudo systemctl restart systemd-journald

设置磁盘空间与保留周期限制

持久化后日志会持续增长,必须限制总量、单文件大小和保留时长。推荐组合使用以下参数(全部加在 [Journal] 下):

  • SystemMaxUse=2G:所有持久化日志总大小上限(建议 1–4G)
  • SystemKeepFree=3G:强制保留至少 3G 空闲空间,防系统卡死
  • MaxRetentionSec=2week:日志最长保留 2 周(支持 1d30d6months 等)
  • MaxFileSec=1d:单个日志文件最多存 1 天(利于轮转和清理)
  • SystemMaxFileSize=100M:单个文件最大 100MB,防单文件过大难处理

改完配置同样需执行 sudo systemctl restart systemd-journald 生效。

验证是否真正生效

别只看配置文件,要确认日志已落盘且跨重启可用:

  • 查用量:journalctl --disk-usage —— 输出应显示 “in the file system”,且路径含 /var/log/journal
  • 查启动记录:journalctl --list-boots —— 应列出多个 boot ID,说明历史周期日志已保存
  • 查物理文件:ls -lh /var/log/journal/*/system.journal —— 应看到非空的二进制 .journal 文件
  • 写测试日志后重启:logger "test-persist-$(date)"; sudo reboot,重启后运行 journalctl -n 5 确认该条存在

热门栏目