本文为摘录,原文为: https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs

1 Basic Log Viewing

要查看 journald 守护程序收集的日志,请使用 journalctl 命令。

当单独使用时,系统中的每个日志条目都会在翻页器(通常是 less)中显示,供您浏览。最旧的条 目将显示在顶部:

journalctl

Output
-- Logs begin at Tue 2015-02-03 21:48:52 UTC, end at Tue 2015-02-03 22:29:38 UTC. --
Feb 03 21:48:52 localhost.localdomain systemd-journal[243]: Runtime journal is using 6.2M (max allowed 49.
Feb 03 21:48:52 localhost.localdomain systemd-journal[243]: Runtime journal is using 6.2M (max allowed 49.
Feb 03 21:48:52 localhost.localdomain systemd-journald[139]: Received SIGTERM from PID 1 (systemd).
Feb 03 21:48:52 localhost.localdomain kernel: audit: type=1404 audit(1423000132.274:2): enforcing=1 old_en
Feb 03 21:48:52 localhost.localdomain kernel: SELinux: 2048 avtab hash slots, 104131 rules.
Feb 03 21:48:52 localhost.localdomain kernel: SELinux: 2048 avtab hash slots, 104131 rules.
Feb 03 21:48:52 localhost.localdomain kernel: input: ImExPS/2 Generic Explorer Mouse as /devices/platform/
Feb 03 21:48:52 localhost.localdomain kernel: SELinux:  8 users, 102 roles, 4976 types, 294 bools, 1 sens,
Feb 03 21:48:52 localhost.localdomain kernel: SELinux:  83 classes, 104131 rules

. . .

你可能会注意到,当前显示的时间戳都是使用本地时间。现在我们已经在系统上正确地设置了本地时 间,因此每条日志条目都可以使用本地时间显示。所有日志都使用这些新信息进行显示。

如果你想显示 UTC 时间戳,可以使用–utc 标志: journalctl --utc

1.0.1 Displaying Kernel Messages

内核消息通常可以在 dmesg 输出中找到,并且也可以从日志中检索。

要仅显示这些消息,我们可以在命令中添加 -k=或 =--dmesg 标志:

journalctl -k

默认情况下,这将显示当前启动的内核消息。您可以使用先前讨论过的正常引导选择标志指定其他引导。例如,要获取五个启动前的消息,您可以键入:

journalctl -k -b -5

2 Journal Filtering by Time

2.1 Displaying Logs from the Current Boot

  • journalctl -b
  • journalctl –list-boots
  • journalctl -b -1

2.1.1 Time Windows

  • journalctl –since “2015-01-10 17:15:00”
  • journalctl –since “2015-01-10” –until “2015-01-11 03:00”

2.2 Filtering by Message Interest

2.2.1 By Unit

  • journalctl -u nginx.service
  • journalctl -u nginx.service –since today
  • journalctl -u nginx.service -u php-fpm.service –since today

2.2.2 By Process, User, or Group ID

内核消息通常在 dmesg 的输出中找到,也可以从日志中检索出来。

要仅显示这些消息,我们可以在命令中添加-k 或–dmesg 标志:

journalctl -k

默认情况下,这将显示来自当前启动的内核消息。您可以使用之前讨论的标准启动选择标志指定替代启动。例如,要获取五个启动前的消息,可以键入:

journalctl -k -b -5

2.2.3 By Priority

系统管理员经常感兴趣的一个过滤器是消息优先级。虽然记录详细信息通常很有用,但在实际处理可 用信息时,低优先级的日志可能会分散注意力,使人感到困惑。您可以使用 journalctl 命令使用-p 选 项仅显示指定优先级或更高优先级的消息。这允许您过滤掉较低优先级的消息。例如,您可以键入以 下内容仅显示在错误级别或更高级别记录的条目:

journalctl -p err -b

这将向您显示所有标记为错误、关键、警报或紧急的消息。journal 实现了标准的 syslog 消息级别。您可以使用优先级名称或其相应的数字值。按照从最高到最低优先级的顺序,它们是:

– 0:emerg – 1:alert – 2:crit – 3:err – 4:warning – 5:notice – 6:info – 7:debug

上述数字或名称可以在-p 选项中互换使用。选择一个优先级将显示标记为指定级别及其以上级别的消息。