在 Ubuntu 中查看和监控错误日志的完整指南
当您想要排除错误时,系统日志是您最好的朋友。以下是您需要了解的有关在 Ubuntu 上监控日志的所有信息。
当您的计算机无法正常工作且您不知道原因时,这是非常令人沮丧的。虽然对于您在 Ubuntu 中可能遇到的每个问题都没有简单的解决方案,但您可以使用 Ubuntu 错误日志等资源来排除和诊断您的 PC 问题。
什么是 Ubuntu 日志?
Ubuntu 日志是综合文件,存储计算机上发生的所有事件的记录。它包括有关您的硬件、操作系统甚至某些软件的记录信息。
这些日志对于故障排除和诊断过程非常宝贵。它们提供时间戳、上下文以及有关系统中发生的事件的详细信息等信息。要使用这些日志,您必须首先了解最重要的类型。
Ubuntu 日志的类型
Ubuntu 不是将每一点信息都写入一个日志,而是将信息记录在专为不同目的而设计的单独日志中。虽然日志太多无法列出,但在尝试使用它们进行故障排除之前,您应该了解一些重要的日志(和日志类型)。
也许所有日志中最突出的是 systemd 日志。 systemd 是 Linux 中不可或缺的服务管理器。因此,许多不同操作系统服务的问题都会记录在 systemd 日志中。您可以使用journalctl命令浏览此日志。
系统日志也非常重要。这些日志直接与 Ubuntu 的不同部分相关,并且可能包括系统消息等内容。一些系统日志包括:
授权日志:任何需要授权的过程,例如 sudo 命令或用户登录,都将记录在此日志中。
守护进程日志:此日志与任何后台服务(或守护进程)有关,例如蓝牙和 SSH。
调试日志:此日志提供系统以及记录到 syslogd 的应用程序提供的调试信息。
内核日志:此日志包含涉及 Linux 内核的活动记录。
系统日志:此日志存储的记录包括系统上大多数类型的全局活动。
失败日志:此日志存储失败登录的记录,这对于检查是否有人试图闯入您的系统特别有用。
您的计算机还可能在 /var/log 目录中存储有应用程序日志(例如 Apache 日志文件或 MySQL 日志文件)。您可以使用 ls 命令查看当前存储在计算机上的所有日志文件:
ls /var/log
如何在 Ubuntu 上读取日志
现在您已经熟悉了系统上不同类型的日志,您就可以深入研究它们存储的信息了。在开始之前,请务必注意并非所有系统日志都以相同的方式写入。
一些日志存储为纯文本文件,而其他日志存储为二进制文件。如果您想有效地解析系统上的记录,您需要熟悉这两种类型的文件以及它们所配对的命令行工具。
纯文本文件日志使用称为 RSYSLOG_TraditionalFileFormat 的模板,并包括四个基本字段:时间戳、主机名、应用程序和消息。例如,内核日志使用此模板:
与纯文本日志不同,二进制文件日志无法轻松读取。您将需要使用 who、last 和 lastb 等命令行实用程序来分别读取 utmp、wtmp 和 btmp 等日志。用于 utmp 变体的 utmpdump 和用于 Journald 的 systemctl 等命令也被设计为以可读格式打印二进制日志信息。
在大多数情况下,了解如何在终端中有效地解析这些日志非常重要。您可以使用 grep 和 tail 等命令来提取特定信息,而无需费力地阅读整个系统日志。
您可以使用的一些最佳命令包括:
grep: 搜索文件中的字符串
tail: 从文件末尾开始打印 10 行
head:从文件开头打印 10 行
排序:打印按照您的规格重新组织的文件
utmpdump 和 systemctl 等命令行工具也有一些有用的标志,在终端中工作时应牢记这些标志。这些标志将允许您修改命令并增强对终端中打印内容的控制。
Journalctl 命令的一些特别有用的标志是:
-b:导致journalctl仅返回上次重新启动后收集的条目
--since“YYYY-MM-DD HH:MM:SS”--until“YYYY-MM-DD HH:MM:SS”:指示journalctl仅返回之前和/或之后的条目指定日期
-p NUM:按系统日志优先级过滤条目(范围从 0/emerg 到 7/debug)
使用 Ubuntu 日志排除错误
现在您已经熟悉了不同类型的系统日志并知道如何有效地阅读它们,剩下要做的就是将收集到的信息应用到故障排除过程中。这个过程通常需要一些创造力。
最好首先考虑您正在处理的问题的突出特征来进行故障排除。当您打开某个应用程序时是否会出现此问题?每次出现问题时您的系统都会崩溃并重新启动吗?
当您考虑问题的特征时,它自然会引导您找到一些用于收集相关信息的最佳日志。例如,如果您的系统在引导过程中出现问题,您可以通过引用日志中的引导条目来获取一些有用的信息。
输入以下命令以打印日志中记录的所有启动:
journalctl --list-boots
终端会打印记录的开机列表;最新的靴子可以在列表底部找到。查看每次启动记录的日期和时间,直到能够找到发生错误的记录启动。
将最左边一列的数字作为 NUM 并输入以下命令以获取有关启动的更多信息:
journalctl -b -NUM -n
将显示有关启动信息的全面记录。如果在启动过程中发生任何异常错误,您可以使用此记录中的信息进一步排除故障。
同样的原则也适用于许多其他问题。但是,如果您不太了解计算机遇到的问题,可能很难知道从哪里开始。有一些日志对于解决 Ubuntu 系统的各种问题特别有帮助。
syslog 是故障排除过程中最好的起始日志。由于它实际上是一个全局日志,因此它很可能包含有关您正在处理的问题的一些信息。如果您遇到身份验证问题(例如 sudo 密码不起作用错误)或启动问题,请检查 auth.log 或 boot.log。
使用与您的问题相关的关键字搜索最相关的日志。例如,如果您在身份验证时遇到问题,可以使用以下命令从 auth.log 中提取记录:
cat /var/log/auth.log | grep 'Authentication failure'
最终,您一定会找到提供出色洞察力的信息。当您将错误日志中的信息与网络上的研究结合起来时,您很可能找到可以帮助您立即解决系统问题的资源。
参考在线资源来排除 Linux 错误
您不必单独完成故障排除过程。当您收集有关计算机问题的信息时,您应该使用 Ask Ubuntu 等在线资源以及 PCPC.me 上的详细指南,以更接近最终诊断和修复您的电脑。