我想通过 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
答案1
我认为你必须增加SystemMaxUse=
从https://www.freedesktop.org/software/systemd/man/journald.conf.html
SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, SystemMaxFiles=, RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize=, RuntimeMaxFiles=
第一对默认为相应文件系统大小的 10%,第二对默认为 15%,但每个值的上限为 4G。
答案2
这个问题可能很棘手,因为设置了许多默认值。要解决我的问题,了解两种类型的参数很重要。那些限制全球的日志大小和限制日志大小的个人日志文件。各个日志文件的默认值为1/8全局日志大小的大小。因此,如果您想确保您的日志确实可以增长到全局限制,您还必须将文件大小限制设置为相同的值:
SystemMaxUse=10G
SystemMaxFileSize=10GB