lnav:Linux 下一個基於控制檯的高級日誌文件查看器

Linux GitHub CentOS RHEL Linux技術 2017-04-21

lnav:Linux 下一個基於控制檯的高級日誌文件查看器

基於消息的時間戳,lnav 能把多個日誌文件合併到一個視圖,從而避免打開多個窗口。左邊的顏色欄幫助顯示消息所屬的文件。警告和錯誤的數量以(黃色和紅色)高亮顯示,因此我們能夠很輕易地看到問題出現在哪裡。它會自動加載新的日誌行。 -- Magesh Maruthamuthu

本文導航
  • -如何在 Linux 中安裝 lnav …… 34%

  • -不帶參數運行 lnav …… 56%

  • -使用 lnav 查看特定日誌文件 …… 60%

  • -用 lnav 查看多個日誌文件 …… 65%

  • -使用 lnav 查看壓縮的日誌文件 …… 75%

  • -直方圖視圖 …… 79%

  • -查看日誌解析器結果 …… 82%

  • -語法高亮 …… 85%

  • -Tab 補全 …… 89%

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

作者: Magesh Maruthamuthu

譯者: ictlyh

服務器日誌是一個由服務器創建並經常更新、用於抓取特定服務和應用的所有活動信息的日誌文件。當你的應用或者服務出現問題時這個文件就會非常有用。從日誌文件中你可以獲取所有關於該問題的信息,例如基於警告或者錯誤信息它什麼時候開始表現不正常。

LNAV[1](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 倉庫[2]。

[在 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 頁面[3] 下載最新版本的安裝包。

[在 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:Linux 下一個基於控制檯的高級日誌文件查看器

使用 lnav 查看特定日誌文件

要用 lnav 查看特定的日誌文件,在 lnav 命令後面添加日誌文件路徑。例如我們想看 /var/log/dpkg.log 日誌文件。

# lnav /var/log/dpkg.log

lnav:Linux 下一個基於控制檯的高級日誌文件查看器

用 lnav 查看多個日誌文件

要用 lnav 查看多個日誌文件,在 lnav 命令後面逐個添加日誌文件路徑,用一個空格隔開。例如我們想查看 /var/log/dpkg.log 和 /var/log/kern.log 日誌文件。

左邊的顏色欄幫助顯示消息所屬的文件。另外頂部狀態欄還會顯示當前日誌文件的名稱。為了顯示多個日誌文件,大部分應用經常會打開多個窗口、或者在窗口中水平或豎直切分,但 lnav 使用不同的方式(它基於日期組合在同一個窗口顯示多個日誌文件)。

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

lnav:Linux 下一個基於控制檯的高級日誌文件查看器

使用 lnav 查看壓縮的日誌文件

要查看並同時解壓被壓縮的日誌文件(zip、gzip、bzip),在 lnav 命令後面添加 -r 選項。

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

lnav:Linux 下一個基於控制檯的高級日誌文件查看器

直方圖視圖

首先運行 lnav 然後按 i 鍵切換到/出直方圖視圖。

lnav:Linux 下一個基於控制檯的高級日誌文件查看器

查看日誌解析器結果

首先運行 lnav 然後按 p 鍵打開顯示日誌解析器結果。

lnav:Linux 下一個基於控制檯的高級日誌文件查看器

語法高亮

你可以搜索任何給定的字符串,它會在屏幕上高亮顯示。首先運行 lnav 然後按 / 鍵並輸入你想查找的字符串。為了測試,我搜索字符串 Default,看下面的截圖。

lnav:Linux 下一個基於控制檯的高級日誌文件查看器

Tab 補全

命令窗口支持大部分操作的 tab 補全。例如,在進行搜索時,你可以使用 tab 補全屏幕上顯示的單詞,而不需要複製粘貼。為了測試,我搜索字符串 /var/log/Xorg,看下面的截圖。

lnav:Linux 下一個基於控制檯的高級日誌文件查看器


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

作者:Magesh Maruthamuthu[4] 譯者:ictlyh 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

  • [1]: LNAV - http://lnav.org/

  • [2]: EPEL 倉庫 - http://www.2daygeek.com/install-enable-epel-repository-on-rhel-centos-scientific-linux-oracle-linux/

  • [3]: 開發者 github 頁面 - https://github.com/tstack/lnav/releases

  • [4]: Magesh Maruthamuthu - http://www.2daygeek.com/author/magesh/

相關推薦

推薦中...