lnav: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 仓库

 
  1. [在 Debian/Ubuntu/LinuxMint 上安装 lnav]
  2. $ sudo apt-get install lnav
  3. [在 RHEL/CentOS 上安装 lnav]
  4. $ sudo yum install lnav
  5. [在 Fedora 上安装 lnav]
  6. $ sudo dnf install lnav
  7. [在 openSUSE 上安装 lnav]
  8. $ sudo zypper install lnav
  9. [在 Mageia 上安装 lnav]
  10. $ sudo urpmi lnav
  11. [在基于 Arch Linux 的系统上安装 lnav]
  12. $ yaourt -S lnav

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

 
  1. [在 Debian/Ubuntu/LinuxMint 上安装 lnav]
  2. $ sudo wget https://github.com/tstack/lnav/releases/download/v0.8.1/lnav_0.8.1_amd64.deb
  3. $ sudo dpkg -i lnav_0.8.1_amd64.deb
  4. [在 RHEL/CentOS 上安装 lnav]
  5. $ sudo yum install https://github.com/tstack/lnav/releases/download/v0.8.1/lnav-0.8.1-1.x86_64.rpm
  6. [在 Fedora 上安装 lnav]
  7. $ sudo dnf install https://github.com/tstack/lnav/releases/download/v0.8.1/lnav-0.8.1-1.x86_64.rpm
  8. [在 openSUSE 上安装 lnav]
  9. $ sudo zypper install https://github.com/tstack/lnav/releases/download/v0.8.1/lnav-0.8.1-1.x86_64.rpm
  10. [在 Mageia 上安装 lnav]
  11. $ sudo rpm -ivh https://github.com/tstack/lnav/releases/download/v0.8.1/lnav-0.8.1-1.x86_64.rpm

不带参数运行 lnav

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

 
  1. # lnav

使用 lnav 查看特定日志文件

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

 
  1. # lnav /var/log/dpkg.log

用 lnav 查看多个日志文件

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

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

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

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

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

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

直方图视图

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

查看日志解析器结果

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

语法高亮

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

Tab 补全

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


原文发布时间为:2017-04-21

本文来自云栖社区合作伙伴“Linux中国”

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
24天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
28 0
|
24天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
43 0
|
4月前
|
Linux Shell PHP
linux(十五)文件和目录相关命令-控制台输出命令echo和重定向
linux(十五)文件和目录相关命令-控制台输出命令echo和重定向
48 0
|
5月前
|
存储 JavaScript 前端开发
基于inquirer封装一个控制台文件选择器
基于inquirer封装一个控制台文件选择器
90 0
|
6月前
|
安全 Linux 应用服务中间件
Linux 查看日志文件
1、messages:另一个常见的系统日志文件,记录了系统级事件,通常包括与 /var/log/syslog 相似的信息。通常位于 /var/log/messages。 2、boot.log:记录了系统启动过程中的事件和消息。通常位于 /var/log/boot.log。 3、secure:安全日志,用于记录与系统和网络安全相关的事件,如入侵尝试、漏洞扫描等。通常位于 /var/log/secure。 4、cron:定时任务日志,记录了定时任务(cron任务)的执行情况,包括任务的启动和完成时间。通常位于 /var/log/cron。 5、httpd(或apache2):Apa
85 1
|
24天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 实时监控日志文件 swatch命令 使用指南
【Shell 命令集合 系统管理 】Linux 实时监控日志文件 swatch命令 使用指南
33 1
|
6月前
|
Linux
百度搜索:蓝易云 ,Linux系统定时清空日志内容和删除日志文件教程。
通过以上步骤,您可以在Linux系统中设置cron作业来定期清空日志内容和删除日志文件。请确保在编辑cron作业之前,您具有足够的权限来访问和修改日志文件。
36 0
|
3月前
|
Shell Linux Perl
Shell基础学习---3、Read读取控制台输入、函数、综合应用案例:归档文件、正则表达式入门(第二天学习)
Shell基础学习---3、Read读取控制台输入、函数、综合应用案例:归档文件、正则表达式入门
54 1
|
9月前
|
Linux Shell Docker
chatgpt Linux 定时任务 清理rancher pod启动服务的日志文件 脚本
chatgpt Linux 定时任务 清理rancher pod启动服务的日志文件 脚本
|
6月前
|
Linux
Linux不停止服务快速清空日志文件(包含所有文件,不光是日志)
Linux不停止服务快速清空日志文件(包含所有文件,不光是日志)