测试过程中发现一段时间后根目录的磁盘容易占满。经过排查发现是/var/log/journal路径下的日志文件不断增大

在 Ubuntu 中,/var/log/journal 路径是用于存储 systemd 日志的目录。具体来说,systemd 是现代 Linux 系统(包括 Ubuntu)用来管理系统服务、进程和日志记录的初始化系统,它会将系统和服务的日志信息记录到这个目录中。
主要特点:
1、日志存储方式:/var/log/journal 存储的是二进制格式的日志文件,而不像传统的文本日志(例如 /var/log/syslog)那样是可直接查看的文本文件。二进制格式提供了更高效的存储和检索方式。
2、日志文件的管理:这些日志文件是由 systemd-journald 服务管理的。它会自动根据配置来控制日志的大小和存储周期。
3、目录内容:在 /var/log/journal 中,你会看到一系列以 数字 命名的子目录,这些目录包含了按时间分隔的日志文件。每个日志文件通常有一个 .journal 扩展名。
4、日志查看工具:由于日志是以二进制格式存储的,你不能直接用普通文本编辑器查看它们。要查看这些日志,需要使用 journalctl 命令。比如:
bash
journalctl
这会显示系统日志的内容,按时间顺序排列。你还可以通过一些选项来过滤日志,查看特定服务的日志,或者只查看最新的日志
5、日志的存储管理:systemd-journald 会根据配置文件(/etc/systemd/journald.conf)中的设置来管理日志文件的存储。例如,你可以设置最大日志文件大小、日志保留期限等。常见的配置项包括:
SystemMaxUse:日志最大使用空间。
SystemKeepFree:系统保留空间,确保不被日志占满。
MaxRetentionSec:日志的最大保留时间。
6、持久化与临时日志:
如果 /var/log/journal 目录存在,日志会被持久化存储。
如果该目录不存在,systemd 会默认将日志存储在内存中,重启后日志会丢失。
将/var/log/journal 目录下恶日志文件以可读的方式导出
bash
sudo journalctl > all_logs.txt
这会将系统中的所有日志(包括 /var/log/journal 中的内容)导出到 all_logs.txt 文件中
治标不治本的方法:编辑/etc/systemd/journald.conf文件,修改日志最大使用空间的大小
bash
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
SystemMaxUse=300M #journal 最大占用空间
#SystemKeepFree=
SystemMaxFileSize=10M #单个 journal 文件最大大小
#SystemMaxFiles=100