Journalctl 仅显示过去一小时左右的日志

Journalctl 仅显示过去一小时左右的日志

我的日志存在问题journalctl,它不显示超过一小时的日志。

第一条日志条目来自大约一小时前,而不是所要求的两天前。

$ date -u
Wed May 13 08:59:21 UTC 2020
$ sudo journalctl --utc --since="2 days ago" -n 1 --no-pager -u [email protected]
-- Logs begin at Tue 2020-03-17 17:30:22 UTC, end at Wed 2020-05-13 09:00:10 UTC. --
May 13 08:11:03 <log content>

服务已于 5 天前开启:

$ sudo systemctl status  [email protected]
...
   Active: active (running) since Thu 2020-05-07 15:45:47 CEST; 5 days ago
...

jorunalctd.conf但看上去并没有什么可疑之处:

$ cat /etc/systemd/journald.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.

[Journal]
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#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

我看到的日志重复出现于过去一小时左右。可能是什么原因造成的?

编辑

不幸的是,这不是寻呼机大小限制的问题,正如@Peleion 提到的。

额外的限制是--until不显示任何消息(也没有-- No entries --信息)。

$ sudo journalctl --utc --since="2 days ago" --until="yesterday" -n 1 --no-pager -u [email protected]  # with additional `--until` filter no messages are shown
-- Logs begin at Tue 2020-03-17 17:30:22 UTC, end at Thu 2020-05-14 09:14:04 UTC. --
$ sudo journalctl --utc --since="2 days ago" --no-pager -u [email protected]  | wc -l  # logs more than 1k entities
17661
$ sudo journalctl -p err --utc --since="2 days ago" -n 1 --no-pager -u [email protected]  # here we have explicit info that there're no entries
-- Logs begin at Tue 2020-03-17 17:30:22 UTC, end at Thu 2020-05-14 09:14:21 UTC. --
-- No entries --

编辑2

我们最终将数据记录到单独的文件中,而不是使用 journald。

丢失日志的问题非常多,令人费解。
日志一直占用大约 2.5-3GB 的空间:

Archived and active journals take up 3.1G in the file system.

负责运行 worker 的用户的文件大小在 30 到 60MB 之间:

/var/log/journal/<hash>/user-<user id>.journal

答案1

journalctl 分页器默认显示最近的 1,000 条条目。遗憾的是,在当前 Fedora 安装中,一小时内出现此数量的条目很常见。日记条目仍然存在(直至达到最大日志文件存储量),但您一次只能看到 1,000 条。

同时使用 --since 和 --until 来指定特定的 1,000 个条目的时间块,或者使用 --user 来指定特定的用户或任何其他选项,以更大的时间片将输出限制到 1,000 个缓冲区。

Archlinux 文档有很好的引入选项

编辑:您的日志似乎也没有刷新到持久存储中。RH/Centos/Fedora#Storage=auto在 /etc/systemd/journald.conf 中具有默认设置。您可以尝试注释掉它或将其设置为自动并重新启动 systemd。

相关内容