LNAVは、Lateral Navigationも無料でオープンソースの拡張ログファイルビューアであり、タイムスタンプやログレベルとともに表示されているファイルの情報を検索するために使用できます。 LNAVは、小規模なソリューション向けに構築されたコマンドラインログファイルビューアです。シンプルで使いやすく、カスタマイズ可能です。 LNAVは、LinuxおよびMacオペレーティングシステムで実行される完全にフリーウェアのアプリケーションです。これにより、ユーザーは1つのウィンドウに複数のファイルのログを表示でき、これらのログのライブ更新を確認することもできます。
LNAVには多くの機能があり、そのうちのいくつかを以下に示します。
- SQLを介してログをクエリできます。
- 複数のログ形式からログを検出して読み取る機能。
- ユーザーが情報、警告、エラーの違いを簡単に識別できるようにするカラーライトニング機能を備えています。
- gzipやbzip2などの圧縮ファイルからデータを自動的に抽出します。
- 入力時にログを検索する機能。新しいログ行は、追加されると自動的に読み込まれ、検索されます。
このチュートリアルでは、Ubuntu16.04サーバーにlnavをインストールして使用する方法を説明します。
- Ubuntu16.04を実行しているサーバー。
- sudo権限を持つroot以外のユーザー。
Lnavをインストール
デフォルトでは、lnavはUbuntu16.04のデフォルトリポジトリで利用できます。したがって、次のコマンドを実行するだけでインストールできます。
sudo apt-get install lnav -y
lnavをインストールした後、次のコマンドを実行してlnavのバージョンを表示できます。
lnav -V
次の出力が表示されます。
lnav 0.6.2
Lnavの操作
次のコマンドを使用して、lnavのすべてのオプションを表示できます。
lnav -h
次の出力が表示されます。
usage: lnav [-hVsar] [logfile1 logfile2 ...] A curses-based log file viewer that indexes log messages by type and time to make it easier to navigate through files quickly. Key bindings: ? View/leave the online help text. q Quit the program. Options: -h Print this message, then exit. -C Check configuration and then exit. -d file Write debug messages to the given file. -V Print version information. -s Load the most recent syslog messages file. -a Load all of the most recent log file types. -r Load older rotated log files as well. -t Prepend timestamps to the lines of data being read in on the standard input. -w file Write the contents of the standard input to this file. Optional arguments: logfile1 The log files or directories to view. If a directory is given, all of the files in the directory will be loaded. Examples: To load and follow the syslog file: $ lnav -s To load all of the files in /var/log: $ lnav /var/log To watch the output of make with timestamps prepended: $ make 2>&1 | lnav -t Version: lnav 0.6.2
それでは、lnavコマンドの実行を開始して、すべてのログファイルの最新のタイムスタンプに基づいてリアルタイム情報を確認しましょう。このコマンドは、/ var/logディレクトリ内のすべてのファイルからログを収集します。
sudo lnav
次の出力が表示されます。
Jan 28 16:56:01 icingaclient wpa_supplicant[926]: wlan0: CTRL-EVENT-SCAN-STARTED Jan 28 16:59:46 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 16:59:46 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 16:59:46 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 273 seconds. Jan 28 16:59:46 icingaclient NetworkManager[865]:(wlan0): DHCPv4 state changed reboot -> renew Jan 28 16:59:46 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 16:59:46 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 16:59:46 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 16:59:46 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 16:59:46 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 16:59:46 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 16:59:46 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:04:19 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:04:19 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:04:20 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 226 seconds. Jan 28 17:04:20 icingaclient NetworkManager[865]: (wlan0): DHCPv4 state changed renew -> renew Jan 28 17:04:20 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:04:20 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:04:20 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:04:20 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:04:20 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:04:20 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:04:20 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:05:01 icingaclient CRON[3964]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1) Jan 28 17:08:06 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds. Jan 28 17:08:06 icingaclient NetworkManager[865]: (wlan0): DHCPv4 state changed renew -> renew Jan 28 17:08:06 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:08:06 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:08:06 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:08:06 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:08:06 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
/ var / log / apache2ディレクトリのログを表示する場合は、次のコマンドを実行します。
sudo lnav /var/log/apache2
最新の情報が最新のファイルで利用できない場合があります。したがって、 -r を使用して、古いログファイルの情報を表示できます。 オプション:
sudo lnav -r
次の出力が表示されます。
Jan 28 17:04:20 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 226 seconds. Jan 28 17:04:20 icingaclient NetworkManager[865]:(wlan0): DHCPv4 state changed renew -> renew Jan 28 17:04:20 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:04:20 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:04:20 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:04:20 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:04:20 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:04:20 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:04:20 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:05:01 icingaclient CRON[3964]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1) Jan 28 17:08:06 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds. Jan 28 17:08:06 icingaclient NetworkManager[865]: (wlan0): DHCPv4 state changed renew -> renew Jan 28 17:08:06 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:08:06 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:08:06 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:08:06 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:08:06 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:12:47 icingaclient dnsmasq[1174]: nameserver 192.168.137.1 refused to do a recursive query Jan 28 17:13:03 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:13:03 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:13:03 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 291 seconds.
-t
を使用して、タイムスタンプオプションを含むログファイルを表示することもできます。 オプション:
sudo lnav -t
次の出力が表示されます。
Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds. Jan 28 17:08:06 icingaclient NetworkManager[865]:(wlan0): DHCPv4 state changed renew -> renew Jan 28 17:08:06 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:08:06 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:08:06 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:08:06 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:08:06 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:12:47 icingaclient dnsmasq[1174]: nameserver 192.168.137.1 refused to do a recursive query Jan 28 17:13:03 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:13:03 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:13:03 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 291 seconds. Jan 28 17:13:03 icingaclient NetworkManager[865]: (wlan0): DHCPv4 state changed renew -> renew Jan 28 17:13:03 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:13:03 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:13:03 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:13:03 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:13:03 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:13:03 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:13:03 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
最新のログファイルタイプをすべて読み込むには、次のコマンドを実行します。
sudo lnav -a
Lnavでホットキーを使用する
さまざまなホットキーオプションを使用して、lnavコマンドの出力をナビゲートすることもできます。
まず、lnavコマンドを実行します:
sudo lnav
次の出力が表示されます。
ここで、 i
を使用します 以下に示すように、キーボードからキーを押してlnav出力をヒストグラムビューに切り替えます。
次に、 p
を使用します 以下に示すように、ログパーサーの結果を表示するためのキー:
次に、 m
を使用します 以下に示すように、上位のログファイルをマークするためのキー:
lnavを使用して問題を簡単に特定できるようになったことを願っています。詳細については、公式サイトを参照することもできます。ご不明な点がございましたら、お気軽にコメントしてください。