首页/安全/取证与溯源速查/journald 日志导出与离线分析
Linux 取证135 条

journald 日志导出与离线分析

把 journal 导出为结构化文件后可脱离主机分析:export 格式保留完整字段,json 便于脚本处理。

取证与溯源速查安全更新于 2026-10-13

journald 日志的导出与离线分析

journald 把日志以二进制形式写入 /var/log/journal,若未启用持久化则只存在于 /run/log/journal,重启即丢失。这类文件用文本工具看不到内容,需要通过 journalctl 读取。导出为 export 格式可以保留完整字段,并能在分析机上用 journalctl --file 继续检索;导出为 json 适合脚本处理与字段提取。主机即将关机、需要跨机分析或需要长期归档时,先把目标时间段导出成文件是常规做法。

基本信息

日志目录/var/log/journal(持久)或 /run/log/journal(易失)
读取命令journalctl,支持 --since / --until / -u 过滤
导出格式-o export 保留字段,-o json 便于脚本处理
离线分析journalctl --file <导出文件> 继续检索

典型使用场景

  • 主机即将关机或重建,需要先把日志带出
  • 分析机与目标主机环境不同,无法直接读取原始 journal 目录
  • 需要按时间段抽取日志做时间线,避免整机日志过于庞大
  • 把日志交给脚本做字段统计,例如按进程或来源聚合
  • 为报告留存可复算的证据副本,而不是截图

导出与离线检索

导出与离线检索
ls -l /var/log/journal/ 2>/dev/null | head          # 确认是否启用持久化
journalctl --since '2026-01-01' --until '2026-01-02' -o export > /mnt/ev/journal.export
journalctl -u ssh -o json --since today > /mnt/ev/ssh.json      # 单服务导出,便于脚本处理
journalctl -o short-iso --since '-2h' | tail -20                # 人读格式,现场快速查看
journalctl --file /mnt/ev/journal.export --since '-1h' | tail -20   # 在分析机上继续检索
sha256sum /mnt/ev/journal.export > /mnt/ev/journal.export.sha256   # 导出即记录哈希

输出格式读法

格式内容特点适用场景
short-iso带 ISO 时间戳的单行文本现场快速浏览与人工阅读
export保留完整字段的二进制文本流跨机分析、作为证据归档
json每条一行 JSON脚本提取字段与统计
verbose打印全部字段与优先级定位字段含义与来源
export 与 json 格式的体积通常明显大于纯文本,导出前先确认目标分区空间,日志量大的主机建议按时间段分批导出并逐批记录哈希。
未启用持久化的系统只在内存环形缓冲中保留日志,容量有限且重启即失,遇到这类主机应优先导出再考虑其他分析工作。
导出动作不会修改日志内容,但会更新文件访问时间;在严格保全要求下,应先对原始目录做镜像或只读挂载,再在副本上执行导出。

易错点

  • 把 /run/log/journal 当成持久日志,重启后证据全部消失
  • 导出文件未记录哈希与命令,报告中的副本无法自证
  • 只导出文本格式,字段丢失导致无法做字段级统计
  • 时间范围写错导致关键时间段未被覆盖,事后无法补做

数据来源与参考

  • systemd 官方文档(journalctl --output=export)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌