如何更好地理解Linux和Mac上的日志文件

当Linux出现问题时,进行故障排除可能是一场噩梦。当您面临的问题是间歇性的,并且您不知道是什么原因造成的时,与此相关的固有挑战会加倍。

我想您可以花几个小时仔细查看Stack Overflow,然后向Reddit寻求帮助。或者,您也可以自己掌握一切,并深入研究系统的日志文件,以找出问题所在。

什么是日志文件?

许多程序(适用于Windows,Mac或Linux)-随时生成日志文件。甚至Android也会生成它们。这些是纯文本文件,包含有关程序运行方式的信息。每个事件都将在其自己的行上加上时间戳,以秒为单位。

尽管并非所有应用程序都普遍适用,但日志文件通常倾向于在/ var / log目录中找到。

绝大多数情况下,这些文件中的数据将是普通的。它不一定表示存在问题。 这只是该程序在给定时间的最新动态。

但是,如果出现问题,您可以保证有关该信息的信息将包含在日志文件中。此信息可用于补救,或问一个可能认识的人的描述性问题。

因此,在处理日志文件时,如何将自己关心的信息与自己不了解的东西区分开't?

使用标准Linux实用程序

就像我们之前提到的那样,日志文件并不是任何一个平台所独有的。尽管如此,本文重点还是放在Linux和OS X上,因为这两个操作系统附带了必需的UNIX命令行工具来解析它们。

由于日志文件是纯文本的,因此文件,您可以使用任何用于查看此类文件的工具。其中,grep可能是最难学的,但也是最有用的。它允许您搜索特定文件中的特定短语和术语。语法为 grep [term] [filename]

最高级的是,您可以使用正则表达式(RegEx)用激光搜索术语和项目-焦点。尽管RegEx通常看起来像巫术,但实际上却很简单。

然后有“ head"和“ tail"命令。没有任何猜测这些是做什么的。它们分别显示文件的前十行和后十行。因此,如果要查看日志文件中的最新项目,请运行“ tail filename"。

您可以使用“ -n"触发器来更改显示的行数。因此,如果您想查看文件的前20行,请运行

head -n 20 [文件名]

如果要查看全部内容的文件,您可以使用“猫"实用程序。不过,这可能有点笨拙,因为日志文件通常可以测量数十万行。一个更好的主意是将其通过管道传递给less实用程序,这样您就可以一次查看一页。为此,请运行

cat [filename] | less

或者,您可以使用sed和awk。这两个实用程序使您可以编写用于处理文本文件的简单脚本。

最后,如果您对此有信心,则可能还需要尝试vim文本编辑器。它具有许多内置命令,可以轻松地通过日志文件进行解析。 vim的32位版本最大文件大小为2 GB,尽管出于性能原因我不建议您在较大的文件上使用它。

使用日志管理软件

如果这听起来太辛苦了,或者您想使用更直观的内容,则可能需要考虑使用日志管理应用程序(通常与SIEM或安全信息和事件管理相混淆)。

这些功能的优点在于,它们为您完成了许多艰苦的工作。他们中的许多人可以查看日志并自动识别问题。他们还可以可视化各种令人愉悦的图形和图表中的日志,使您可以更好地了解应用程序的执行可靠性。

最著名的日志管理程序之一称为Splunk。该日志管理工具使您可以使用Web界面遍历文件。它甚至拥有自己强大而通用的搜索处理语言,可让您以编程方式对结果进行追溯。

Splunk被无数大型企业使用。适用于Mac,Windows和Linux。但是它也有一个免费版本,可供家庭和小型企业用户使用以管理他们的日志。

此版本称为Splunk Light,与企业版有很多共同之处。它可以浏览日志,监视文件中的问题,并在出现问题时发出警报。

说过,Splunk Light有一些限制,这是很合理的。首先,它每天可以消耗的数据量限制为500 MB。如果这还不够,您可以升级到Splunk Light的付费版本,该版本每天可能消耗20 GB的日志。但是实际上,大多数用户不会在附近找到任何地方

它还仅支持五个用户,这对大多数人来说不是问题,尤其是在

Splunk提供了一个云版本,对于不希望在其计算机上安装整个客户端的用户或具有许多远程服务器的用户而言,Splunk是理想的选择。不利的一面是所涉及的巨大成本。最便宜的Splunk计划每月收费$ 125.00。 #

这是很多钱。

您如何处理日志文件?

因此,我们研究了可以查询日志文件的方法并亲自或在远程协助下查找需​​要解决的信息。但是您知道更好的方法吗?您使用的是日志管理软件还是标准的Linux实用程序?

我想听听它。在下面的评论中让我知道。

标签: Linux 故障排除