Appearance
lnav — 日誌檢視工具
終端機中的互動式日誌導覽工具,支援多格式解析、關鍵字高亮、SQL 查詢與自訂主題;適合在 Docker 容器環境中安裝供除錯使用。
概述
lnav(Log File Navigator) 是一款功能豐富的 CLI 日誌檢視器,相較於 tail -f 或 grep,lnav 提供即時高亮、多檔案合併時間線、正規表達式過濾與 SQL 語法查詢等進階功能,顯著提升在終端機中閱讀和分析日誌的效率。
在 Docker 容器化環境中,lnav 通常以 Dockerfile RUN 指令安裝,搭配自訂主題(JSON 設定檔)調整視覺風格。由於 lnav 官方提供靜態連結的 Linux musl 執行檔,安裝時只需下載單一 zip 檔,無需處理動態函式庫相依性。
核心內容
Dockerfile 安裝模式
lnav 的 Dockerfile 安裝遵循「下載 → 解壓 → 清理」三步驟:
- 安裝工具:
wget下載 zip,unzip解壓 - 下載執行檔:從 GitHub Releases 取得對應版本的
linux-musl-x86_64靜態執行檔 - 清理:移除臨時檔案並以
apt-get purge移除安裝工具,確保映像層精簡
透過 ENV LNAV_VERSION 定義版本號,方便未來升級時只改一處。
自訂主題
lnav 透過放置在 /etc/lnav/formats/local/ 目錄下的 JSON 設定檔載入主題。設定檔只需指定 ui.theme 欄位即可切換內建主題(如 night-owl、monocai 等)。自訂主題設定檔通常在 Dockerfile 中以 COPY 指令複製進容器。
關鍵要點
- 使用
linux-musl-x86_64靜態執行檔,無動態函式庫相依,適合各種 Linux 基礎映像 - 版本透過
ENV LNAV_VERSION管理,升級只需修改一個值 - 清理步驟(purge wget/unzip + apt clean)可有效控制映像層大小
- 自訂主題設定檔路徑:
/etc/lnav/formats/local/config.theme.json
實際應用
在需要即時觀察應用程式日誌的除錯場景中,於容器映像中預裝 lnav,開發者進入容器後即可直接執行 lnav /var/log/app.log 進行互動式日誌分析,相較於 kubectl logs 的純文字輸出體驗更佳。
部署設定參考
以下為實際部署時使用的完整設定,供日後查詢與複製使用。
環境參數
| 項目 | 值 |
|---|---|
| lnav 版本 | 0.13.2 |
| 執行檔來源 | GitHub Releases(linux-musl-x86_64) |
| 安裝路徑 | /usr/local/bin/lnav |
| 主題設定路徑 | /etc/lnav/formats/local/config.theme.json |
| 使用主題 | night-owl |
Dockerfile 安裝段落
dockerfile
ENV LNAV_VERSION=0.13.2
RUN set -ex \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
wget \
unzip \
&& echo "Downloading lnav version ${LNAV_VERSION}..." \
&& wget -O /tmp/lnav.zip "https://github.com/tstack/lnav/releases/download/v${LNAV_VERSION}/lnav-${LNAV_VERSION}-linux-musl-x86_64.zip" \
&& unzip /tmp/lnav.zip -d /tmp \
&& mv /tmp/lnav-${LNAV_VERSION}/lnav /usr/local/bin/lnav \
&& chmod +x /usr/local/bin/lnav \
&& rm -rf /tmp/lnav* \
&& apt-get purge -y --auto-remove wget unzip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /etc/lnav/formats/local
COPY lnav/config.theme.json /etc/lnav/formats/local/config.theme.json主題設定檔(config.theme.json)
json
{
"ui": {
"theme": "night-owl"
}
}相關概念
- WSL2 Terminal 美化與功能強化 — 提升終端機使用體驗的相關工具組合