Systemd Journald基础
默认情况下,Systemd将系统日志存储在/run/log/journal目录中,正如我们在了解Linux文件系统层次结构中所说的(参考:介绍Red Hat Enterprise Linux(RHEL) 8的文件系统目录/层次结构),/run目录中的所有内容都将被清除,并在重新引导时重新创建内容,这意味着在系统重新引导时将清除日志。
默认情况下并不会持久化保存日志,只会保留一个月的日志。可以通过配置MaxRetentionSec=365d 设置为保留1年。
我们可以在/etc/systemd/journald.conf文件中调整systemd-journald服务的配置设置,以使日志在重新引导后仍然存在,打开文件以查看其内容:
$ sudo vim /etc/systemd/journald.conf
这些是可以配置的常用选项,大多数系统中的大多数选项都会被注释掉,以便您进行相应调整:
[Journal]#Storage=auto#Compress=yes#Seal=yes#SplitMode=uid#SyncIntervalSec=5m#RateLimitInterval=30s#RateLimitBurst=1000#SystemMaxUse=#SystemKeepFree=#SystemMaxFileSize=#RuntimeMaxUse=#RuntimeKeepFree=#RuntimeMaxFileSize=#MaxRetentionSec=#MaxFileSec=1month#ForwardToSyslog=yes#ForwardToKMsg=no#ForwardToConsole=no#ForwardToWall=yes#TTYPath=/dev/console#MaxLevelStore=debug#MaxLevelSyslog=debug#MaxLevelKMsg=notice#MaxLevelConsole=info#MaxLevelWall=emerg#LineMax=48K
配置Systemd Journald
要将systemd-journald服务配置为在重新启动后永久保留系统日志,您需要将Storage设置为persistent。
可以为Storage参数设置的其他值是:[1]、persistent:将日志存储在/var/log/journal目录中,该目录在重新启动后仍然存在。[2]、volatile:将日记存储在volatile/run/log/journal目录中,这不会导致系统重启。[3]、auto:rsyslog将确定使用持久性存储(persistent)还是易失性存储(volatile),如果存在/var/log/journal目录,则rsyslog使用持久性存储,否则使用易失性存储。
对于永久存储,请将其设置为:
[Journal]Storage=persistent
提交更改后,请重新启动systemd-journald服务以使配置更改生效:
sudo systemctl restart systemd-journald
应该创建/var/log/journal目录:
$ ls /var/log/journal
65113b1a0d2f6087d515e6a8cd0ee7ef
/var/log/journal下的子目录的长名称中包含十六进制字符,并且包含*.journal文件:
$ ls /var/log/journal/65113b1a0d2f6087d515e6a8cd0ee7ef/
system.journal
*.journal文件是存储结构化和索引日记帐分录的二进制文件。
调整日记的最大存储使用量
您可以通过取消注释和更改以下内容来设置永久日志的最大大小:
SystemMaxUse=500M
默认大小限制设置为基础文件系统大小的10%,但上限为4GiB:
sudo systemctl restart systemd-journald
下一篇:SpringCloud微服务