編集済み 2 数日前 によって ExtremeHow 編集チーム
ディストリビューション型オペレーティングシステムジャーナルctlログコマンドラインインターフェースシステム管理リナックス監視オープンソーストラブルシューティングソフトウェア
翻訳が更新されました 2 数日前
Debianはその安定性と膨大なソフトウェアパッケージのリポジトリで知られています。安定して安全なシステムを維持するための重要な側面の一つは、システムログを定期的に監視することです。ログはシステム管理者がシステム内で何が起こっているのかを理解するのに役立ちます。それらは問題のトラブルシューティングやシステムのパフォーマンスを理解するための非常に貴重な情報を提供することができます。
Linuxシステムでのログ管理の伝統的な方法は、/var/log
ディレクトリにあるテキストファイルを使用することです。これらのログは、多くのDebianシステムでsyslog
、またはより具体的にはrsyslog
によって管理されています。しかし、systemd
の登場により、新しいログシステムであるjournald
が使用されるようになり、従来のログ方法に比べて注目すべき改善や機能を提供しています。
このドキュメントでは、Debianでsystemd
ログを表示および管理するためのjournalctl
コマンドの使用方法について詳しく説明します。この強力なコマンドを探り、システムログを効果的に管理する方法を学びましょう。
journalctl
の使用法を議論する前に、systemd
とjournald
の基本的な理解を持っておくことが重要です。systemd
はLinuxオペレーティングシステムのシステムおよびサービスマネージャーです。これはより良いサービス管理とブートアップパフォーマンスを提供するために設計されました。journald
はsystemd
のログコンポーネントで、ログを収集し保存する責任を負っています。
従来のテキストファイルとしてログを保存する方法とは異なり、journald
はログをバイナリ形式で保存し、パフォーマンスの向上、インデックス作成、フィルタリング機能の向上など、いくつかの利点を提供できます。
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時間のログが表示されます。
journald
はsystemd
と密接に統合されているため、「ユニット」としてサービスを管理し、特定のサービスユニットのログをフィルタリングできます。-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形式でログを出力するには、-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
を活用する方法を理解することで、システムイベントの監視が向上し、トラブルシューティングが迅速になり、最終的にはスムーズなオペレーティング環境を維持するのに貢献します。
記事の内容に誤りがある場合, あなたは