在 journald
之前,每个服务的日志都由自己控制,输出在松散不同的地方,这给系统管理员带来了极大的不便。查询不同的服务日志,就得知道各自服务的日志路径,再加上每个服务日志的记录格式或风格等均有不同程度的差异。
journald
的出现,就是提供一个中心化日志管理的方式,所有systemd
管理的服务日志均记录到同一个地方,以同样的二进制格式记录相似的上下文信息格式。这样的好处就是对于查询来说,只需要用同样的命令,便可以根据需求附加不同的查询条件来返回所需要的日志信息。
作为 systemd
家族的一员,journalctl
命令被用作查询日志。它对应的守护进程是 journald
,服务为 systemd-journald.service
。
一些日常使用实例
查询所有日志
# journalctl
-- Logs begin at 四 2019-07-11 11:10:15 CST, end at 二 2019-10-15 09:01:01 CST. --
10月 14 20:27:26 AliYun systemd[1]: Closed udev Kernel Socket.
10月 14 20:27:26 AliYun systemd[1]: Closed udev Control Socket.
10月 14 20:27:26 AliYun systemd[1]: Starting Cleanup udevd DB...
10月 14 20:27:26 AliYun systemd[1]: Started Cleanup udevd DB.
10月 14 20:27:26 AliYun systemd[1]: Reached target Switch Root.
10月 14 20:27:26 AliYun systemd[1]: Started Plymouth switch root service.
10月 14 20:27:26 AliYun systemd[1]: Starting Switch Root...
10月 14 20:27:26 AliYun systemd[1]: Switching root.
10月 14 20:27:26 AliYun systemd-journal[102]: Journal stopped
常用的一些选项:
空格键
: 显示下一页b
: 显示上一页向右键
: 向右滚动 (由于 journalctl 显示的日志默认格式为一行一条日志,所以要想看到日志的所有字符,通常需要横向滚动)向左键
: 向左滚动g
: 跳跃到整个日志的第一行G
: 跳跃到整个日志的最后一行q
: 退出
更多参考:如何使用Journalctl查看并操作Systemd日志
英文参考:How To Use Journalctl to View and Manipulate Systemd Logs by Justin Ellingwood
发表回复