默认情况下,我的系统最大大小约为 500MB,其中包含大约 1 个月的日志。
System Journal (/var/log/journal/dd35c7606a5645c5acc9908470c45159) is 483.2M, max 491.5M, 8.2M free.
不知道 491.5M 限制是如何决定的。我更改了以下设置并重新启动了系统
└──> grep SystemMaxUse /etc/systemd/journald.conf
SystemMaxUse=25G
现在最大日志大小为 1.0G。为什么不是25G?
System Journal (/var/log/journal/dd35c7606a5645c5acc9908470c45159) is 568.6M, max 1.0G, 455.3M free.
我的磁盘有足够的可用空间 (94%)
└──> df -h /var/log/journal
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 885G 50G 791G 6% /var
如何进一步增加最大日志大小?
如果可能的话,我想将默认限制保留 1 个月,但不要删除旧的日志文件,而是将其保存在可以按需查询的地方。
更新:
澄清一下,我的日志文件现在在 500MB 上限后被删除,我想将限制增加到 25G。即使设置后SystemMaxUse=25G
,限制也不会增加到超过 1GB。
答案1
systemd-journald 选项的完整记录位于自由桌面网
在这种情况下,您要查找的选项是:SystemMaxUse、SystemKeepFree、SystemMaxFileSize 和 SystemMaxFiles。您已设置 SystemMaxUse,这是持久性日志的总限制包括跨靴子的旋转。您的问题是您的正常运行时间太长,超出了单个期刊的限制。因此,您也应该将 SystemMaxFileSize 设置为 25GB,以便允许非常大的单个日志。
此外,您应该将 SystemMaxFiles 设置为较大的值,例如 1000,这样您可以每天重置近 3 次,并且仍然不会删除一年中第一天的日志,除非您用完分配的空间。
此外,您应该将 MaxRetentionSec 设置为 31536000 以获得 365 天的保留,如上所述。
本质上,日志保留的条件必须全部组合在一起才能保留日志,以便应用并需要设置任何适用的规则。因此,即使这个答案也可能是不完整的。
答案2
文件中有完全需要的选项journald.conf
。
从手册页[1]:
MaxFileSec=
The maximum time to store entries in a single
journal file before rotating to the next one.
[...]
This setting takes time values which may be
suffixed with the units "year", [...]
[1] https://www.freedesktop.org/software/systemd/man/journald.conf.html#MaxFileSec=
答案3
设置一个定期运行的 cronjob,例如,对于您的用例,每天运行:
$ journalctl --vacuum-time=1y
参考文献:
答案4
不知道 491.5M 限制是如何决定的。我更改了以下设置并重新启动了系统
和:
默认情况下,我的系统最大大小约为 500MB,其中包含大约 1 个月的日志。
和:
现在最大日志大小为 1.0G。为什么不是25G?
也回答这些问题:
赖因特·范·舒文 2015-11-05 20:42:54 CET
问题描述:我收到有关根分区上磁盘空间的警告。原因是 /var/log/journal 包含千兆字节的日志。
/etc/systemd/journald.conf 中的所有选项都被注释掉,因此journalctl 不会保留特定的最大大小。我们应该对此更加聪明,这样日志就不会填满根分区。
和:
大卫·沃尔泽 2015-11-06 15:18:21 CET
我认为 systemd 只允许它使用其分区上一定百分比的磁盘空间。如果真的无界的话,那就有问题了。
和:
科林·格思里 2015-11-09 10:44:45 CET
因此,为了进一步调查此问题,我需要有关您的系统的信息。您的分区大小是多少,可用空间是多少等。 /var/log/journal 中的文件和文件夹列表也很有用(包括它们的完整路径、日期和大小)。还有“journalctl --disk-usage”(作为 root)的输出和“journalctl -b MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6”(也作为 root)的输出。
来源:
https://bugs.mageia.org/show_bug。
也回答一下:
如何进一步增加最大日志大小?
使用持久存储进行 Systemd 日志记录
在 RHEL7 中配置 systemd 日志以实现持久性
在 RHEL7 中配置 systemd 日志以实现持久性 默认情况下,日志不会将日志文件存储在磁盘上,仅存储在内存或 /run/log/journal 目录中。这对于最近的日志历史记录(使用日志)来说已经足够了,但如果您决定仅使用日志而不使用任何其他系统日志解决方案,则对于长期日志保留来说就不够了。
来源3:
或者
管理期刊大小
默认情况下,systemd-journald
确保删除较旧的日志记录或日志文件,以保留一定量的可用磁盘空间。在使用 Systemd 进行 Linux 日志记录部分中,我们解释了如何使用配置参数控制删除旧日志数据的阈值。我们还可以使用journalctl
它来管理 的大小journal
,我们将在本节中更详细地解释。
要检查日志当前占用了多少磁盘空间,请使用 –disk-usage 参数:
$ journalctl --disk-usage
根据 的版本journalctl
,输出可能类似于以下内容:
归档日志和活动日志占用磁盘上的 96.0M 空间。
或者:
日志在磁盘上占用 248.0M。
systemd
您还可以通过微调这些配置参数来管理日志占用的磁盘空间:
COMPRESS
SYSTEMKEEPFREE
RUNTIMEKEEPFREE
SYSTEMMAXFILESIZE
RUNTIMEMAXFILESIZE
MAXRETENTIONSEC
MAXFILESEC
来源: