如何让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。
我想通过 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。