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

如何让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=100G例如

答案2

来自男人页:

SystemMaxUse=、SystemKeepFree=、SystemMaxFileSize=、SystemMaxFiles=、RuntimeMaxUse=、RuntimeKeepFree=、RuntimeMaxFileSize=、RuntimeMaxFiles=

[...]

第一对默认为各自文件系统大小的 10%,第二对默认为 15%,但每个值的上限为 4G。如果文件系统几乎已满,并且在启动 systemd-journald 时违反了 SystemKeepFree= 或 RuntimeKeepFree= 的规定,则限制将提高到实际空闲的百分比。这意味着,如果在创建日志文件之前有足够的可用空间,并且随后其他原因导致文件系统填满,则日志将停止使用更多空间,但它也不会删除现有文件以再次减少占用空间。

所以是的,它的最大值为4G然而,以下内容对您的情况很有趣:

journalctl 和 systemd-journald 会忽略所有名称不以“.journal”或“.journal~”结尾的文件,因此在计算当前磁盘使用情况时,只考虑位于适当目录中的此类文件。

因此,定期移动日志文件可以让您规避限制。注意然后必须确保日志不会以某种方式填满您的文件系统,删除旧的日志文件!您可以假设有 1 个文件最大 1G,然后定期检查并将文件移动到1-9 的${filename}.n位置n,从而最大为 10G ...只要您在文件1G大小达到最旧时移动文件${filename}.n。要阅读日志,您可以忽略名字,只考虑最年长到最小的......

答案3

您可能还需要提高,因为 systemd 将在达到限制之前SystemMaxFiles开始从文件夹中删除日志文件,因为日志文件的数量已用完。/var/log/journal/*/System{MaxUse/KeepFree}

在我的系统上,每个文件的/var/log/journal/*/systemd@*.journal上限为129Mb100,默认限制仅为 100 ,尽管设置为 ,SystemMaxFiles但存储的日志量实际上上限为 ~13Gb 。SystemMaxUse50G

相关内容