首页/安全/应急响应速查/journal 持久化配置与断档检查

journal 持久化配置与断档检查

排查前先确认 journal 是否落盘:volatile 模式重启即失;已落盘也要看是否被清理、替换导致断档。

应急响应速查安全更新于 2026-10-13

journal 持久化为什么要先查

排查前先确认 journal 到底有没有落盘:Storage=volatile 时日志只存在内存里,主机一重启就没了;即使已落盘,也要看是否被清理或替换导致断档。这一步直接决定你能拿到多长的日志,以及要不要转向 rsyslog 落盘文件或上游日志采集平台。

基本信息

配置项/etc/systemd/journald.conf 的 Storage=persistent/volatile/auto
落盘位置/var/log/journal/<machine-id>/
配额SystemMaxUse、MaxRetentionSec 控制保留量
断档判断时间戳跳变、目录被清空、只剩本次启动
默认行为auto:只要 /var/log/journal 存在就持久化
补救方向上游日志采集平台与 rsyslog 落盘文件

典型使用场景

  • 排查开始前确认可用的日志范围
  • 事件后主机重启过,判断日志是否还在
  • 评估是否需要调整日志持久化配置
  • 分析断档到底是清理、轮转还是人为造成
  • 生产环境加固:确认日志已持久化
  • 与其他日志源交叉验证事件时间线

检查落盘与历史启动

检查落盘与历史启动
grep -E '^Storage|^SystemMaxUse|^MaxRetentionSec' /etc/systemd/journald.conf   # 持久化与配额
ls -la --time-style=long-iso /var/log/journal/*/ | head          # 落盘目录是否存在及体积
journalctl --list-boots --no-pager | tail -n 10                  # 可见的历史启动记录
journalctl --disk-usage                                          # 当前占用情况
journalctl -b -1 --no-pager | head -n 20 2>/dev/null             # 上一次启动的日志还在不在

配置与现象判读

配置或现象含义如何判断
Storage=persistent固定落盘日志可跨重启保留
Storage=volatile只存内存重启后丢失,需转向其他日志源
Storage=auto有 /var/log/journal 就落盘先看目录再下结论
SystemMaxUse占用上限达到上限后旧日志被自动清理
journal 目录时间戳最后写入时间与启动时间不连续即存在断档
默认值 auto 不等于关闭:只要 /var/log/journal 目录存在,就是持久化模式,判断前先看目录本身,不要凭默认值猜测。
事件后若发现 Storage=volatile,关键日志已随内存消失:此时必须转向 rsyslog 落盘文件与上游采集平台,别在这台机器上继续找。
journalctl --list-boots 是最快的断档探针:如果只能看到本次启动,要么此前日志已被清理,要么主机确实是第一次在这台设备上运行。

易错点

  • 看到默认 auto 就当没落盘:/var/log/journal 存在即持久化,先看目录再下结论
  • 只看 journalctl 输出不查配置:解释不了「为什么会丢日志」
  • 以为日志被清就是攻击:配额上限与轮转同样会清掉旧记录
  • 不查上游采集平台:本机日志没了不等于全丢了,采集平台往往还有副本
  • 发现断档就断言被清除:先分清楚是配额清理、轮转还是人为,再下结论

数据来源与参考

  • man 5 journald.conf
  • systemd 官方文档:Journal 持久化存储

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌