如何使用 journalctl 查看和分析 Linux 上的日志

日志消息对于审计和维护健康的 Linux 系统很重要。 每台 Linux 计算机都存储不同服务或作业的日志消息。 本指南将探讨如何使用 日志控制一个命令行工具,用于读取由 日记.

什么是日记?

Journald 是一种系统日志服务,可将日志消息聚合到日志中。 它是 systemd 守护进程的一部分,负责 Linux 中的事件日志记录。 日志只是一个二进制文件,用于存储由 journald 生成的日志消息。

日志日志消息不是持久的,因为它们存储在 RAM 中,这是一种易失的存储形式。 默认情况下,只要您的 PC 重新启动或断电,日志记录就会丢失或擦除。 Linux 为日志日志分配固定数量的 RAM,以避免堵塞系统内存。

如何使用 journalctl 命令

您可以使用 journalctl 查询 systemd 日志或 journald 日志。 系统对所有日志日志进行索引,以提高从日志中读取日志消息的效率。

笔记:本指南使用 sudo 使用提升的权限运行命令,因为当您以普通 Linux 用户身份运行时,journalctl 命令不会列出所有日志消息。

查看所有日志消息

要查看所有日志日志,只需运行不带任何参数的 journalctl 命令:

sudo journalctl

journalctl 命令将按时间顺序列出系统上的所有日志日志。 该命令使用 较少的 在后台,它为您提供与使用 less 命令相同的导航能力。 为了 example,您可以使用 F 键盘上的键。

如果要更改系统输出日志的顺序,即先显示最新的,可以使用 -r 用命令标记。 这 -r 标志代表 逆转.

sudo journalctl -r

查看内核日志记录

内核日志在 Linux 上非常重要,因为它们包含与系统启动时相关的信息。 要仅查看内核日志,请指定 -k 使用 journalctl 命令标记:

sudo journalctl -k

输出还将列出一些内核信息,例如内核版本及其名称。

按特定程序过滤日志日志

您还可以使用 journalctl 查看与特定程序或服务相关的日志。 为了 example查看与 cron 服务,运行以下命令:

sudo journalctl -u cron

实时查看日志消息

有时您可能希望在记录日志时实时查看日志。 为此,发出以下命令:

sudo journalctl -f

使用 Ctrl + C 退出实时视图的键盘快捷键。

按日期获取日志消息

您可以使用 journalctl 使用时间戳过滤和分析日志。 为了 example显示从昨天到现在的日志:

sudo journalctl --since=yesterday

您可以使用详细的“since”和“until”时间戳更具体,如下所示:

sudo journalctl --since="2021-07-17 12:00:00" --until="2021-07-17 15:00:00"

Journalctl 将仅显示指定时间段的日志消息。

按 UID 或 PID 查看日志消息

您还可以使用用户 ID (UID) 或进程 ID (PID) 过滤日志记录。 基本语法是:

sudo journalctl _UID=0

…其中 0 是 root 帐户的 UID。 您还可以将上述命令中的 UID 替换为 PID 或 GID(组 ID)。

格式化 journalctl 输出

要使用特定的输出格式查看 journalctl 日志,您应该使用 journalctl -o 命令后跟您的首选格式。 为了 example,要以漂亮的 JSON 格式显示日志,请运行以下命令:

sudo journalctl -o json-pretty

输出:

在 Linux 上配置日志

本指南向您展示了如何使用 journalctl 命令在 Linux 上查看和分析日志日志消息。 这 /var/log/日志 目录存储所有日志记录。 请注意,并非所有 Linux 发行版都默认启用了日志功能。

您可以使用 /etc/systemd/journald.conf 文件以配置或更改 PC 上的日志配置。 除了有效的日志服务之外,如果您认真对待 Linux 服务器的安全性,还有其他一些工具是必须的。