SystemD-JournalD 丢失先前启动持久日志数据的跟踪

SystemD-JournalD 丢失先前启动持久日志数据的跟踪

我在定制的嵌入式 Linux 板上运行 SystemD JournalD 版本 244.3。

root@board:/var/log/journal# journalctl --version
systemd 244 (244.3+)
-PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid

我的 /etc/systemd/journald.conf 文件配置为保存持久日志:

root@board:/var/log/journal# cat /etc/systemd/journald.conf 
[Journal]
Storage=persistent
SystemMaxFileSize=10M
SystemMaxFiles=6
SystemMaxUse=64M
SystemKeepFree=64M
SyncIntervalSec=60
RateLimitBurst=0
RateLimitInterval=0s
ForwardToSyslog=no

我可以看到 JournalD 在 /var/log/jounal 下持久保存了以前的启动:

root@board:/var/log/journal# ls -rlt
total 8
drwxr-sr-x 2 root systemd-journal 1024 Jul 22 17:40 ffc9c0e961a74d3b8d19a6f32a5f62ce
drwxr-sr-x 2 root systemd-journal 1024 Jul 22 17:40 10fab8e697104bfeb2f769b11cf42473
drwxr-sr-x 2 root systemd-journal 1024 Jul 22 17:40 c9b5b0b8d10a48f68bda02db47bd3998
drwxr-sr-x 2 root systemd-journal 1024 Jul 22 20:36 0cdee57054ba49a3a75ee9f21d5afbce
drwxr-sr-x 2 root systemd-journal 1024 Jul 22 20:47 7b38f3dd12484f9f82e1d9fc686bc3fe
drwxr-sr-x 2 root systemd-journal 1024 Jul 22 22:58 3315ac28810449538f2637d56d3ff707
drwxr-sr-x 2 root systemd-journal 1024 Jul 23 13:56 d9fb69f615b04b69998bd5dc70af7b0f
drwxr-sr-x 2 root systemd-journal 1024 Jul 23 14:29 46e633c0af784239b02f8d230125ee9b

为了查看这些日志,我必须明确使用journalctl的“-D”标志:

journalctl -D /var/log/journal -m 

要首先查看最新的,请在其中添加“-r”标志

journalctl -D /var/log/journal -m -r

我看到的问题是,如果没有使用“-D”将其指向目录,journalctl 似乎不知道这些先前的启动!

root@board:/var/log/journal# journalctl --list-boots
0 7da269c106be4979bd54bf1f06e6106a Thu 2020-07-23 14:29:50 UTC—Thu 2020-07-23
 14:53:51 UTC

仅列出了 1 个引导 - 其他引导将被忽略。

此外,journalctl 不会统计先前启动所使用的磁盘空间。它只跟踪当前的启动。

root@board:/var/log/journal# journalctl --disk-usage
Archived and active journals take up 8.0M in the file system.

这是最大的问题,因为守护进程本身不会清除以前的启动数据,因为它似乎已经丢失了它的踪迹。

如何使 JournalD 考虑以前的启动数据进行日志轮换并使用“--list-boots”查看启动。谢谢。

相关内容