ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

Debianでのログにjournalctlを使用する方法

編集済み 2 数日前 によって ExtremeHow 編集チーム

ディストリビューション型オペレーティングシステムジャーナルctlログコマンドラインインターフェースシステム管理リナックス監視オープンソーストラブルシューティングソフトウェア

Debianでのログにjournalctlを使用する方法

翻訳が更新されました 2 数日前

Debianはその安定性と膨大なソフトウェアパッケージのリポジトリで知られています。安定して安全なシステムを維持するための重要な側面の一つは、システムログを定期的に監視することです。ログはシステム管理者がシステム内で何が起こっているのかを理解するのに役立ちます。それらは問題のトラブルシューティングやシステムのパフォーマンスを理解するための非常に貴重な情報を提供することができます。

Linuxシステムでのログ管理の伝統的な方法は、/var/logディレクトリにあるテキストファイルを使用することです。これらのログは、多くのDebianシステムでsyslog、またはより具体的にはrsyslogによって管理されています。しかし、systemdの登場により、新しいログシステムであるjournaldが使用されるようになり、従来のログ方法に比べて注目すべき改善や機能を提供しています。

このドキュメントでは、Debianでsystemdログを表示および管理するためのjournalctlコマンドの使用方法について詳しく説明します。この強力なコマンドを探り、システムログを効果的に管理する方法を学びましょう。

JournalCTLとSystemDの紹介

journalctlの使用法を議論する前に、systemdjournaldの基本的な理解を持っておくことが重要です。systemdはLinuxオペレーティングシステムのシステムおよびサービスマネージャーです。これはより良いサービス管理とブートアップパフォーマンスを提供するために設計されました。journaldsystemdのログコンポーネントで、ログを収集し保存する責任を負っています。

従来のテキストファイルとしてログを保存する方法とは異なり、journaldはログをバイナリ形式で保存し、パフォーマンスの向上、インデックス作成、フィルタリング機能の向上など、いくつかの利点を提供できます。

journalctlコマンドはこのバイナリログデータをクエリし、できるだけ多用途に使用できるように幅広いフィルタリングオプションを提供します。

journalctlの基本的な使用法

journalctlを最も簡単に使用する方法は、引数やオプションなしで実行することです。これにより、利用可能なすべてのログエントリが一番古いものから表示されます。

$ journalctl

ログは各エントリにタイムスタンプとメッセージを伴って表示されます。しかし、エントリの量が潜在的に大きいため、特に長期間稼働しているシステムでは、日常的にログを閲覧するのは実用的ではありません。

最新のログを表示する

多くの場合、古いエントリを吟味するよりも、最新のログのみを確認することに興味があるでしょう。-nフラグに続けて数値を指定することで、表示したい最近の行数を指定できます。

$ journalctl -n 50

このコマンドは最後の50のログエントリを取得します。数値を指定しないデフォルトの動作は、最後の10行を表示します。

$ journalctl -n

リアルタイムでログをフォローする

もう一つの便利な機能は、生成されるログをリアルタイムでフォローできることです。これは従来のログ用tail -fコマンドに似ています。この機能は-fフラグで実現できます。

$ journalctl -f

このコマンドは、新しいログエントリが表示されるようにします。これはトラブルシューティング時にログ出力を監視するのに特に便利です。

ログのフィルタリング

journalctlの強力な点の一つは、さまざまな基準を使用してログをフィルタリングできることです。特定のイベントやログエントリを絞り込む必要がある場合に重要です。

時間でフィルタリング

--since--untilオプションを使用して、特定の時間範囲でログを簡単にフィルタリングできます。両方のオプションは、相対時間を含むさまざまな時間形式を受け入れます。

$ journalctl --since "2023-03-01 00:00:00" --until "2023-03-01 23:59:59"

相対時間も使用できます。

$ journalctl --since "1 hour ago"

ここでは、過去1時間のログが表示されます。

ユニットでフィルタリング

journaldsystemdと密接に統合されているため、「ユニット」としてサービスを管理し、特定のサービスユニットのログをフィルタリングできます。-uフラグにユニットのnameを続けて使用します。

$ journalctl -u apache2.service

これにより、Apache Web Serverサービスに関連するログのみが表示されます。これは特定のサービスに関連する問題を診断するのに役立ちます。

優先度でフィルタリング

systemdのログには異なる優先度があります。より深刻なログメッセージにのみ関心がある場合、これらの優先度に従ってログをフィルタリングできます。

$ journalctl -p err

このコマンドは、「エラー」やそれ以上の優先度レベルのログエントリのみを表示しますが、「クリティカル」、「警告」、および「緊急」メッセージも含まれます。

フィルターの組み合わせ

異なるフィルターを組み合わせてより正確にログを絞り込むことができます。たとえば、過去1時間のApache2サービスのエラーメッセージを取得したい場合:

$ journalctl -u apache2.service -p err --since "1 hour ago"

この柔軟性により、関心のあるログに迅速に焦点を合わせることができます。

永続的なログ

デフォルトでは、一部のシステムでjournaldは再起動間で永続的なログを保存しない場合があります。これは再起動後にログを確認することで確認できます。永続的なログを有効にしたい場合は、ディレクトリ/var/log/journalが存在することを確認してください。それがない場合は、作成します:

$ sudo mkdir -p /var/log/journal $ sudo systemctl restart systemd-journald

これにより、journaldがバイナリジャーナル形式で再起動間のログを永続的に保存するように構成されます。

ジャーナルログのクリアと管理

時間が経つにつれて、ジャーナルログは蓄積し、多くのディスクスペースを占有する可能性があります。journalctlコマンドを使用してディスクスペースの使用を管理できます。

ジャーナルログのディスク使用量を確認する

--disk-usageオプションを使用して、ジャーナルログがどれだけのスペースを占めているかを確認できます。

$ journalctl --disk-usage

このコマンドは、ジャーナルログによって使用される合計スペースを表示します。

古いログを削除する

--vacuum-time--vacuum-size、または--vacuum-filesオプションを使用して古いログを削除できます。たとえば、2週間以上前のログを削除したい場合は、次のコマンドを使用します:

$ sudo journalctl --vacuum-time=2weeks

ログを一定のメガバイト数(たとえば、500MB)のみに保持するには、次を使用します:

$ sudo journalctl --vacuum-size=500M

上記の方法では、ジャーナルログに指定されたスペースまでのディスク使用が許可されます。

ログのエクスポートと保存

ジャーナル環境の外でログを共有または検査する必要がある場合があります。journalctlでは、さまざまな形式でログをエクスポートできます。

テキストファイルへのエクスポート

ジャーナルログ出力をプレーンテキストファイルにリダイレクトして、簡単に共有またはアーカイブすることができます。

$ journalctl > /path/to/your/output.txt

このコマンドは、ログ全体をテキストファイルにコピーします。必要に応じてフィルターを適用して出力を制限できます。

JSONへのエクスポート

プログラムでさまざまなツールによって解析可能なJSON形式でログを出力するには、-o jsonオプションを使用します。

$ journalctl -o json-pretty > /path/to/your/output.json

このコマンドは、ログのJSON表現を生成し、プログラムでログデータを解剖することが容易になります。

バイナリジャーナルバックアップの作成

すべての追加メタデータを含むバイナリバックアップを作成したい場合、--output-exportオプションを使用します。

$ journalctl --output-export > /path/to/backup.journal

これにより、systemd-journalにバックアップファイルを使用して簡単に再インポートできる形式で、すべてのジャーナル固有の情報を保存できます。

結論

journalctlコマンドは、journaldを通じてログを管理するsystemdが使用されているDebianシステムでの強力なツールです。これにより、システムログを表示、フィルタリング、および管理するための堅牢な機能が提供され、柔軟性と効率性の点で従来のログ形式に比べて大幅に優れています。

簡単なコマンドを通じて、journalctlはログを時系列で表示し、リアルタイムでフォローし、さまざまな条件でフィルターし、システムに保存されたログデータを管理できます。システム管理者とユーザーにとって、journalctlを活用する方法を理解することで、システムイベントの監視が向上し、トラブルシューティングが迅速になり、最終的にはスムーズなオペレーティング環境を維持するのに貢献します。

記事の内容に誤りがある場合, あなたは


コメント