Linux中國

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 倉庫

[在 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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國