首页/系统/信创系统运维速查/journal 日志持久化配置
服务与运维65 条

journal 日志持久化配置

默认日志可能只存内存(重启丢失):创建 /var/log/journal 目录并设置 Storage=persistent 后落盘,重启后仍可回溯上一次会话。

信创系统运维速查系统更新于 2026-10-13

为什么要做日志持久化

系统日志服务默认可能把日志放在内存文件系统里,机器一重启记录就没了。平时不容易察觉,等到事故回溯时才发现「重启前那段时间的日志查不到」,损失的机会成本远高于当初配置的成本。持久化的做法很简单:让日志目录存在并显式声明存储策略,日志就会落到磁盘,重启后仍能查看上一次启动的完整记录。是否落盘、落多少、保留多久,都应作为交付基线的一部分明确下来。

基本信息

默认行为存储策略为自动时,日志目录存在则落盘,否则只存内存
存储策略可设置为仅内存、持久化、自动或不保存
日志目录磁盘上的日志目录承载历史归档
配置文件日志服务主配置或配置目录下的片段
容量上限可限制总占用与保留周期
生效方式重启日志服务即可,无需重启系统

典型使用场景

  • 交付基线:新机上电即开启持久化,避免事故时无迹可查
  • 事故回溯:重启后仍需查看上一次启动期间的日志
  • 容量控制:限制日志总占用,防止挤占系统盘空间
  • 合规留存:按留存要求设定保留周期与容量上限
  • 排障核对:确认日志确实落盘并保留到预期时间范围
  • 迁移与取证:把历史日志目录整体打包,交付给分析方

开启持久化

开启持久化
mkdir -p /var/log/journal                        # 建立磁盘日志目录
systemd-tmpfiles --create --prefix /var/log/journal  # 设置正确的属主与权限
# 在日志服务配置中显式声明(主配置或配置目录下的片段)
# Storage=persistent                             # 明确落盘
# SystemMaxUse=2G                                # 限制总占用
systemctl restart systemd-journald               # 重启日志服务生效
journalctl --disk-usage                          # 确认已在使用磁盘空间
journalctl -b -1 --no-pager | tail -20           # 重启后仍能查看上一次启动

存储策略取值

取值含义适用场景
仅内存只写内存文件系统,重启丢失临时环境,不推荐生产
持久化写入磁盘日志目录生产默认选择
自动日志目录存在则落盘默认行为,结果依赖目录状态
不保存完全不保留日志极少使用,等同于放弃排障依据
存储策略为自动时,行为取决于日志目录是否存在:目录在就落盘,不在就只存内存。这种「隐式行为」容易在镜像与自动化部署之间产生差异,因此生产环境建议显式声明策略,而不是依赖默认推断。
落盘前先评估承载目录的可用容量并设定占用上限:日志增长不受限时会挤占系统盘,反过来引发更严重的问题。把日志目录纳入监控,与容量告警一起管理。

易错点

  • 以为日志默认就会落盘,事故回溯时才发现重启前的记录已经丢失
  • 只建目录不改配置,行为依赖默认推断,不同镜像上表现不一致
  • 开启持久化但不设容量上限,日志持续增长把系统盘写满
  • 改完配置不重启日志服务也不验证,实际仍是旧策略,等到需要日志时才发现

数据来源与参考

  • man 5 journald.conf(Storage)
  • 银河麒麟知识库:journald 日志持久化
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌