Linux でログ ファイルをリアルタイムで監視する方法 [デスクトップおよびサーバー]
このチュートリアルでは、診断とトラブルシューティングを目的として、Linux ログ ファイル (デスクトップ、サーバー、またはアプリケーション) をリアルタイムで監視する方法について説明します。
Linux デスクトップ、サーバー、またはその他のアプリケーションで問題が発生した場合は、まず別のログ ファイルを調べます。ログ ファイルは通常、テキスト ストリームと、タイムスタンプが付いたアプリケーションからのメッセージです。これは、特定のインスタンスを絞り込み、問題の原因を見つけるのに役立ちます。ウェブからサポートを受けることもできます。
通常、すべてのログ ファイルは /var/log
にあります。このディレクトリには、特定のアプリケーションおよびサービスの拡張子 .log
を持つログ ファイルが含まれており、また、それらのログ ファイルを含む別の他のディレクトリも含まれています。
var-log 内のログ ファイル
したがって、多数のログ ファイルまたは特定のログ ファイルを監視したい場合は、次の方法で実行できます。
ログ ファイルをリアルタイムで監視する - Linux
tailコマンドの使用
tail
コマンドは、ログ ファイルをリアルタイムで追跡する最も基本的な方法です。特に、端末のみを備え、GUI を持たないサーバーを使用している場合は特にそうです。これはとても役に立ちます。
例:
基本的な構文
tail /path/to/log/file
使用法
末尾経由で複数のログ ファイルを監視する
スイッチ -f
を使用して、リアルタイムで更新されるログ ファイルを追跡します。たとえば、syslog を追跡したい場合は、次のコマンドを使用できます。
tail -f /var/log/syslog
次のコマンドを使用して、単一のコマンドを使用して複数のログ ファイルを監視できます。
tail -f /var/log/syslog /var/log/dmesg
HTTP、SFTP、または任意のサーバーを監視する場合は、このコマンドでそれぞれのログ ファイルを使用できます。
上記のコマンドには管理者権限が必要であることに注意してください。
lnav (ログファイルナビゲータ) の使用
lnav 実行中
lnav は、色分けされたメッセージを使用して、より構造化された方法でログ ファイルを監視するために使用できる優れたユーティリティです。これは、Linux システムにはデフォルトではインストールされません。以下のコマンドを使用してインストールできます。
sudo apt install lnav (Ubuntu)
sudo dnf install lnav (Fedora)
lnav の良い点は、インストールしたくない場合でも、コンパイル済みの実行可能ファイルをダウンロードして、どこでも (USB スティックからでも) 実行できることです。セットアップは不要で、さらに機能が満載です。 lnav を使用すると、SQL 経由でログ ファイルにクエリを実行できます。そのほかにも、公式 Web サイトで学ぶことができる優れた機能があります。
インストールすると、管理者権限を持つターミナルから lnav を実行できます。デフォルトで /var/log
のすべてのログが表示され、リアルタイムで監視が開始されます。
systemdのjournalctlに関するメモ
現在、最新の Linux ディストリビューションはすべて、主に systemd を使用しています。 systemd は、一般に Linux オペレーティング システムを実行する基本的なフレームワークとコンポーネントを提供します。 systemd は、journalctl 経由でジャーナル サービスを提供します。これは、すべての systemd サービスからのログの管理に役立ちます。次のコマンドを使用して、それぞれの systemd サービスとログをリアルタイムで監視することもできます。
journalctl -f
ここでは、さまざまな場合に使用できる具体的なjournalctlコマンドをいくつか紹介します。これらを上記の -f スイッチと組み合わせて、リアルタイムで監視を開始できます。
- 緊急システム メッセージの場合は、次を使用します。
journalctl -p 0
- エラーを説明付きで表示します。
journalctl -xb -p 3
- 時間コントロールを使用して以下をフィルタリングします。
journalctl --since "2022-12-04 06:00:00"
journalctl --since "2022-12-03" --until "2022-12-05 03:00:00"
journalctl --since yesterday
journalctl --since 09:00 --until "1 hour ago"
journalctl についてさらに詳しく知りたい場合は、ここにガイドを書きました。
終わりのメモ
これらのコマンドとテクニックが、デスクトップまたはサーバーの問題やエラーの根本原因を見つけるのに役立つことを願っています。詳細については、いつでもマニュアル ページを参照し、さまざまなスイッチを試してみてください。この記事についてコメントやご意見がございましたら、下のコメント ボックスを使用してお知らせください。