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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive