0

我想通过 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

本手册也包含这样的节。

第一对默认为相应文件系统大小的 10%,第二对默认为 15%,但每个值的上限为 4G。

是不是说日志可以占用的最大空间是4Gb并且是硬编码的?

4

1 回答 1

2

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

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

由于您实际上并未为 设置自定义值SystemMaxUse=,因此它会继续将您的日志限制为最大 4 GB。

于 2018-01-20T19:06:45.027 回答