在本文中,我们将研究如何将系统日志记录(Systemd Journald Log)持久保存在Linux服务器上。当问题不断发生时,保留系统日志对您的服务进行故障排除很有用,在本文的结尾,您应该能够配置系统日志以在重新引导服务器时保留事件记录。
Systemd Journald基础 默认情况下,Systemd将系统日志存储在/run/log/journal目录中,正如我们在了解Linux文件系统层次结构中所说的(参考:介绍Red Hat Enterprise Linux(RHEL) 8的文件系统目录/层次结构),/run目录中的所有内容都将被清除,并在重新引导时重新创建内容,这意味着在系统重新引导时将清除日志。 我们可以在/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 确认服务已重新启动并正在运行: $ systemctl status 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
相关主题 |