基於消息的時間戳,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 查看特定日誌文件
要用 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[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/