journal 是 systemd 的一个组件,由 journald 处理。捕获系统日志信息、内核日志信息,以及来自原始 RAM 磁盘的信息,早期启动信息以及所有服务中写入 STDOUT 和 STDERR 数据流的信息。可以说是为 Linux 服务器打造的一种新系统日志方式,该日志服务仅仅把日志集中保存在单一结构的日志文件 /run/log
中,由于日志是经历过压缩和格式化的二进制数据,所以在查看和定位的时候很迅速。
默认情况下并不会持久化保存日志,只会保留一个月的日志。另外,一些 rsyslog 无法收集的日志也会被 journal 记录到。
查看占用
在 /var/log
目录下执行 du --max-depth=1 -h
,可以看到有很多历史累积的日志,其中 /var/log/journal
占用了数G空间。
34M ./audit
40K ./anaconda
4.0K ./qemu-ga
44K ./zabbix
4.0K ./ntpstats
4.0K ./chrony
4.1G ./journal
4.0K ./rhsm
12K ./tuned
4.1G .
清理日志
检查当前journal使用磁盘量
journalctl --disk-usage
手动清理方式
清理方法可以采用按照日期清理,或者按照允许保留的容量清理,只保存2天的日志,最大500Mjournalctl --vacuum-time=2d journalctl --vacuum-size=500M
限制日志持久化,达到自动清理
要启用日志限制持久化配置,可以修改/etc/systemd/journald.conf
SystemMaxUse=100M
然后重启 journal 服务
systemctl restart systemd-journald.service
检查 journal 是否运行正常以及日志文件是否完整无损坏
journalctl --verify