WebサーバーやDBサーバーなどが書き出すログファイルを閲覧する際、「tail -f」を使って監視しているという方は多いかもしれません。
「tail -f」はログをリアルタイムに監視することができる軽量かつシンプルな方法ですが、機能は多くありませんです。本日紹介する「lnav」はこれを置き換えることができる効率的なログ閲覧・解析ツールです。
lnavはターミナルから使用することができ、次のような特徴を持っています。
- 複数ログファイルの統合ビュー: 複数のログファイルをタイムスタンプ順に統合して表示することができる。
- 自動ログフォーマット検出: Apache、Nginx、syslog、JSON形式など、一般的なログ形式を自動で認識。カスタムログ形式も設定可能。
- リアルタイム更新: ファイルが更新されると自動的に反映されるので、リアルタイムモニタリングが可能。
- インタラクティブなインターフェイス: vim風のキーバインドで操作可能。
- 強力なフィルタリングと検索機能: 正規表現やキーワードでログを検索。特定の条件でフィルタリングも可能。
- SQLクエリ機能: SQLiteを使ってログデータに直接SQLクエリを実行可能。
- タイムスタンプの正規化: 異なるログファイルのタイムゾーンうやフォーマットを正規化できる。
- クロスプラットフォーム対応: Linux、macOS、FreeBSDなど、Unix系システムで動作。
以下使用方法を説明します。
目次
lnavの使用方法
lnavはUNIX系OSで実行することができ、さまざまな方法でインストールすることができます。
Linux:
# snapでインストール sudo snap install lnav # yumでインストール curl -s https://packagecloud.io/install/repositories/tstack/lnav/script.rpm.sh | sudo bash sudo yum install lnav
macOS:
# Homebrewでインストール brew install lnav # MacPortsでインストール sudo port install lnav
ソースコードからインストールすることもできます。詳細はこちらで確認可能です。
インストールが完了したらlnav ログファイル名
と実行します。ログファイル名を指定しない場合はsyslogが開かれます。
▲ログファイルがシンタックスハイライトされて分かりやすく表示されます。表示はリアルタイムで更新されていきますが、j
、k
、g
、G
などのvim風のキーを使ってロファイルをナビゲートすることができます。/
を使って検索したり、e
やw
でエラーや警告を探すこともできます。
その他にもさまざまな便利機能を利用することができ、詳細は公式ドキュメントで確認可能です。
なお、lnavにはオンラインデモが存在し、インストールしなくてもsshがあれば動作を確認することができます。
ssh playground@demo.lnav.org
チュートリアルもあります。
ssh tutorial1@demo.lnav.org
まとめ
lnavを利用すればログファイルを効率的にナビゲートすることができます。「tail -f」に不満を持っていた方は試してみてはいかがでしょうか。
タイトル | lnav | |
---|---|---|
公式サイト | https://lnav.org/ | |
ソフトアンテナ | https://softantenna.com/softwares/7800-lnav | |
説明 | ログファイルを効率的に監視・ナビゲートすることができるユーティリティ。 |