Linux 在运行的过程中会产生很多日志文件,一般存放在 /var/log
目录下,而其中 journal
目录中存放的是 journald
daemon 程序生成的日志,其中包括了所有 kernel, initrd, services 等等产生的日志。这些日志在系统发生状况排查问题的时候非常有用。
jounrnald
daemon 程序会收集系统运行的日志并存储到二进制文件中。为了查看这些二进制文件通常会使用到 journalctl
命令。但是默认情况下这些日志文件会占用磁盘空间的 10%,而大部分情况下这些日志文件是不需要查看的。所以可以配置减小一些 journal 日志的占用。
默认的日志文件保存在 /var/log/journal
下,可以使用 du
查看。不过我个人推荐使用可视化的 gdu
来 查看 。
du -sh /var/log/journal
查看占用磁盘空间
查看 journal 日志占用大小
可以使用 journalctl
命令查看日志占用:
sudo journalctl --disk-usage
手动清理 journal 日志
如果要去清理 journal 日志,可以先执行 rotate
命令:
journalctl --rotate && \
systemctl restart systemd-journald
删除两天前的日志:
journalctl --vacuum-time=2days
删除两个礼拜前的日志:
journalctl --vacuum-time=2weeks
或者删除超出文件大小的日志:
journalctl --vacuum-size=20M
journalctl --disk-usage
# OR
du -sh /run/log/journal
journalctl --verify
ls -l /run/log/journal/*
systemctl status systemd-journald
修改配置文件限制 journal 日志最大占用
修改配置文件:
sudo vi /etc/systemd/journald.conf
修改其中的两项:
SystemMaxUse=100M
RuntimeMaxUse=100M
SystemMaxUse 设置 /var/log/journal
RuntimeMaxUse 设置 /run/log/journal
然后使设置生效:
sudo systemctl daemon-reload
journal 日志过大可能产生的问题
问题
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
原因是:
the disk usage of the log files for journald
journal 日志空间达到了上限