标签 lnav 下的文章

如果你想调试或排除任何问题,你需要一个像 lnav 这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。

lnav: 日志文件查看器

lnav 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。

在分析日志的时候,时间戳是非常重要的。所以 lnav 会根据时间戳合并多个日志,这对追踪系统问题很有帮助。

大多数重要的日志文件格式检测都是内置的,包括如下:

  • 通用网络访问日志 Common Web Access Log 格式
  • CUPS page\_log
  • Syslog
  • Glog
  • VMware ESXi/vCenter 日志
  • dpkg.log
  • uwsgi
  • “通用”:任何以时间戳开头的信息
  • Strace
  • sudo
  • GZIP、BZIP

这还不是全部,lnav 还能实现以下功能,使其成为 Linux 系统的重要应用:

  • 根据正则表达式过滤消息
  • 错误日志的时间轴视图
  • 漂亮的打印视图,这有助于重新格式化
  • 使用 SQL 查询日志
  • 在搜索时,日志会实时更新
  • 通过正则表达式高亮显示语法(比如你想在整个日志中找出一个 IP 地址)
  • 显示的日志中任何单词的 Tab 补全!!

lnav 在 ubuntu 中运行

要查看上述功能的截图和了解更多信息,请访问 本页面

如何安装

这个程序在 Ubuntu、Debian 的官方仓库中可以找到。使用以下命令安装它。

sudo apt install lnav

而对于 Fedora、RHEL 用户,使用下面的命令:

sudo dnf install lnav

另外,开发者还提供了一个离线的独立可执行文件,你不需要安装。你可以从 GitHub 发布页 下载压缩包,然后按以下方式执行:

./lnav

注意:它也可用于 macOS,你可以在上述 GitHub 页面找到。

lnav: 如何使用(基础)

简单的命令语法是:

lnav [options] [logfile1 logfile2 …]

如果你直接运行 lnav 命令,它会显示你系统中的所有日志(/var/log/messages/var/log/syslog)

lnav

要查看任何特定的日志文件,在命令行中输入:

lnav /var/log/syslog

使用 -t 参数在你的日志输出中添加时间戳:

lnav -t /var/log/syslog

以下是 lnav 的一些关键开关:

  • -d file:将调试信息写入给定的文件。
  • -a:加载所有最新的日志文件类型。
  • -r:也加载较早的轮转的日志文件。
  • -t:在标准输入中读入的数据行上预加时间戳。
  • -w file:将标准输入的内容写入该文件。
  • -c cmd:在文件加载后执行命令。
  • -f path:执行给定文件中的命令。
  • -n:不使用 curses UI 运行(无头模式)。

lnav 在 Ubuntu 22.04 中运行

要进一步阅读和探索,请访问 官方文档


via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

服务器日志是一个由服务器创建并经常更新、用于抓取特定服务和应用的所有活动信息的日志文件。当你的应用或者服务出现问题时这个文件就会非常有用。从日志文件中你可以获取所有关于该问题的信息,例如基于警告或者错误信息它什么时候开始表现不正常。

LNAV(Log file Navigator)是 Linux 下一个基于控制台的高级日志文件查看器。它和其它文件查看器,例如 cat、more、tail 等,完成相同的任务,但有很多普通文件查看器没有的增强功能(尤其是它自带多种颜色和易于阅读的格式)。

它能在解压多个压缩日志文件(zip、gzip、bzip)的同时把它们合并到一起进行导航。基于消息的时间戳,lnav 能把多个日志文件合并到一个视图(Single Log Review),从而避免打开多个窗口。左边的颜色栏帮助显示消息所属的文件。

警告和错误的数量以(黄色和红色)高亮显示,因此我们能够很轻易地看到问题出现在哪里。它会自动加载新的日志行。

它按照消息时间戳排序显示所有文件的日志消息。顶部和底部的状态栏会告诉你位于哪个日志文件。如果你想按特定的模式查找,只需要在搜索弹窗中输入就会即时显示。

内建的日志消息解析器会自动从每一行中发现和提取详细信息。

当你用一个普通文件查看器打开一个日志文件时,它会用纯文本格式显示所有信息(如果用更直白的话说的话:纯白——黑底白字),这样很难去发现和理解哪里有警告或错误信息。为了克服这种情况,快速找到警告和错误信息来解决问题, lnav 是一个入手可用的更好的解决方案。

大部分常见的 Linux 日志文件都放在 /var/log/

lnav 自动检测以下日志格式

  • Common Web Access Log format(普通 web 访问日志格式)
  • CUPS page\_log
  • Syslog
  • Glog
  • VMware ESXi/vCenter 日志
  • dpkg.log
  • uwsgi
  • “Generic” – 以时间戳开始的任何消息
  • Strace
  • sudo
  • gzib & bizp

lnav 高级功能

  • 单一日志视图 - 基于消息时间戳,所有日志文件内容都会被合并到一个单一视图
  • 自动日志格式检测 - lnav 支持大部分日志格式
  • 过滤器 - 能进行基于正则表达式的过滤
  • 时间线视图
  • 适宜打印视图(Pretty-Print)
  • 使用 SQL 查询日志
  • 自动数据抽取
  • 实时操作
  • 语法高亮
  • Tab 补全
  • 当你查看相同文件集时可以自动保存和恢复会话信息。
  • Headless 模式

如何在 Linux 中安装 lnav

大部分发行版(Debian、Ubuntu、Mint、Fedora、suse、openSUSE、Arch Linux、Manjaro、Mageia 等等)默认都有 lnav 软件包,在软件包管理器的帮助下,我们可以很轻易地从发行版官方仓库中安装它。对于 CentOS/RHEL 我们需要启用 EPEL 仓库

[在 Debian/Ubuntu/LinuxMint 上安装 lnav]
$ sudo apt-get install lnav

[在 RHEL/CentOS 上安装 lnav]
$ sudo yum install lnav

[在 Fedora 上安装 lnav]
$ sudo dnf install lnav

[在 openSUSE 上安装 lnav]
$ sudo zypper install lnav

[在 Mageia 上安装 lnav]
$ sudo urpmi lnav

[在基于 Arch Linux 的系统上安装 lnav]
$ yaourt -S lnav

如果你的发行版没有 lnav 软件包,别担心,开发者提供了 .rpm.deb 安装包,因此我们可以轻易安装。确保你从 开发者 github 页面 下载最新版本的安装包。

[在 Debian/Ubuntu/LinuxMint 上安装 lnav]
$ sudo wget https://github.com/tstack/lnav/releases/download/v0.8.1/lnav_0.8.1_amd64.deb
$ sudo dpkg -i lnav_0.8.1_amd64.deb

[在 RHEL/CentOS 上安装 lnav]
$ sudo yum install https://github.com/tstack/lnav/releases/download/v0.8.1/lnav-0.8.1-1.x86_64.rpm

[在 Fedora 上安装 lnav]
$ sudo dnf install https://github.com/tstack/lnav/releases/download/v0.8.1/lnav-0.8.1-1.x86_64.rpm

[在 openSUSE 上安装 lnav]
$ sudo zypper install https://github.com/tstack/lnav/releases/download/v0.8.1/lnav-0.8.1-1.x86_64.rpm

[在 Mageia 上安装 lnav]
$ sudo rpm -ivh https://github.com/tstack/lnav/releases/download/v0.8.1/lnav-0.8.1-1.x86_64.rpm

不带参数运行 lnav

默认情况下你不带参数运行 lnav 时它会打开 syslog 文件。

# lnav

使用 lnav 查看特定日志文件

要用 lnav 查看特定的日志文件,在 lnav 命令后面添加日志文件路径。例如我们想看 /var/log/dpkg.log 日志文件。

# lnav /var/log/dpkg.log

用 lnav 查看多个日志文件

要用 lnav 查看多个日志文件,在 lnav 命令后面逐个添加日志文件路径,用一个空格隔开。例如我们想查看 /var/log/dpkg.log/var/log/kern.log 日志文件。

左边的颜色栏帮助显示消息所属的文件。另外顶部状态栏还会显示当前日志文件的名称。为了显示多个日志文件,大部分应用经常会打开多个窗口、或者在窗口中水平或竖直切分,但 lnav 使用不同的方式(它基于日期组合在同一个窗口显示多个日志文件)。

# lnav /var/log/dpkg.log /var/log/kern.log

使用 lnav 查看压缩的日志文件

要查看并同时解压被压缩的日志文件(zip、gzip、bzip),在 lnav 命令后面添加 -r 选项。

# lnav -r /var/log/Xorg.0.log.old.gz

直方图视图

首先运行 lnav 然后按 i 键切换到/出直方图视图。

查看日志解析器结果

首先运行 lnav 然后按 p 键打开显示日志解析器结果。

语法高亮

你可以搜索任何给定的字符串,它会在屏幕上高亮显示。首先运行 lnav 然后按 / 键并输入你想查找的字符串。为了测试,我搜索字符串 Default,看下面的截图。

Tab 补全

命令窗口支持大部分操作的 tab 补全。例如,在进行搜索时,你可以使用 tab 补全屏幕上显示的单词,而不需要复制粘贴。为了测试,我搜索字符串 /var/log/Xorg,看下面的截图。


via: http://www.2daygeek.com/install-and-use-advanced-log-file-viewer-navigator-lnav-in-linux/

作者:Magesh Maruthamuthu 译者:ictlyh 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

日志文件导航器(Logfile Navigator,简称 lnav),是一个基于 curses 的,用于查看和分析日志文件的工具。和文本阅读器/编辑器相比, lnav 的好处是它充分利用了可以从日志文件中获取的语义信息,例如时间戳和日志等级。利用这些额外的语义信息, lnav 可以处理像这样的事情:来自不同文件的交错的信息;按照时间生成信息直方图;支持在文件中导航的快捷键。它希望使用这些功能可以使得用户可以快速有效地定位和解决问题。

lnav 功能

支持以下日志文件格式:

Syslog、Apache 访问日志、strace、tcsh 历史以及常见的带时间戳的日志文件。读入文件的时候回自动检测文件格式。

直方图视图:

以时间区划来显示日志信息数量。这对于大概了解在一长段时间内发生了什么非常有用。

过滤器:

只显示那些匹配或不匹配一些正则表达式的行。对于移除大量你不感兴趣的日志行非常有用。

即时操作:

在你输入到时候会同时完成检索;当添加了新日志行的时候会自动加载和搜索;加载行的时候会应用过滤器;另外,还会在你输入 SQL 查询的时候检查其正确性。

自动显示后文:

日志文件视图会自动往下滚动到新添加到文件中的行。只需要向上滚动就可以锁定当前视图,然后向下滚动到底部恢复显示后文。

按照日期顺序排序行:

从所有文件中加载的日志行会按照日期进行排序。使得你不需要手动从不同文件中收集日志信息。

语法高亮:

错误和警告会用红色和黄色显示。高亮还可用于: SQL 关键字、XML 标签、Java 文件行号和括起来的字符串。

导航:

有快捷键用于跳转到下一个或上一个错误或警告,按照指定的时间向后或向前翻页。

用 SQL 查询日志:

每个日志文件行都相当于数据库中的一行,可以使用 SQL 进行查询。可以使用的列取决于查看的日志文件类型。

命令和搜索历史:

会自动保存你之前输入的命令和搜素,因此你可以在会话之间使用它们。

 压缩文件:

会实时自动检测和解压压缩的日志文件。

在 ubuntu 15.10 上安装 lnav

打开终端运行下面的命令

sudo apt-get install lnav

使用 lnav

如果你想使用 lnav 查看日志,你可以使用下面的命令,默认它会显示 syslogs

lnav

如果你想查看特定的日志,那么需要指定路径。如果你想看 CPU 日志,在你的终端里运行下面的命令

lnav /var/log/cups


via: http://www.ubuntugeek.com/lnav-ncurses-based-log-file-viewer.html

作者:ruchi 译者:ictlyh 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出