如何让journald增加日志存储容量?

How to make journald increase logs storage capacity?

我想通过 journald 获得持久日志。我创建了 /var/log/journal 并重新加载了服务。现在日志保存在磁盘上。但是日志大小限制很低。

我加了/etc/systemd/journald.conf。 (Storage=persistent/auto 没关系,我都试过了)。

[Journal]
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
SystemKeepFree=10G
SystemMaxFileSize=1G
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg

如您所见,我只将每个日志文件的大小更改为 1Gb,并告知我需要磁盘上的 10Gb 空闲空间。

但是journald告诉我他只有4Gb的日志存储容量。

$ sudo systemctl status systemd-journald
...
jan 20 15:44:26 host systemd-journald[1218]: System journal (/var/log/journal/) is 4.5G, max 4.0G, 0B free.
jan 20 15:44:26 host systemd-journald[1218]: Journal started

我错过了什么?

$ systemctl --version
systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

This manual也有这样的节。

The first pair defaults to 10% and the second to 15% of the size of the respective file system, but each value is capped to 4G.

是不是说日志最大space可以占用是4Gb而且是硬编码的?

只有满足所有限制——时间和space,日志消息才会被保留。提高单个限制不会自动覆盖其他限制。

如文档中所述,SystemMaxUse= 默认为文件系统的 10%, 默认值 上限为 4 GB(不是 Gb!)。必须手动提升。

由于您实际上没有为 SystemMaxUse= 设置自定义值,它会继续将您的日志限制为总计最大 4 GB。