Linux – journalctl の使い方について詳しく解説

目次

概要

この記事では、journalctl コマンドの使い方について詳しく解説します。 journalctl は、ログを表示、検索、および解析するための強力なツールであり、システム管理やトラブルシューティングに役立ちます。

journalctl

journalctl コマンドを使用すると、システム全体のログを簡単に確認できます。以下に基本的なコマンドとその説明を示します。 デフォルトでは、ログの出力はページャに渡され、ページ送りしながら確認できます。

以下に追加オプションを含めたテーブルを示します:

オプション 説明
-S --since=DATE 指定した日時以降のログを表示します。
-U --until=DATE 指定した日時以前のログを表示します。
-e --pager-end ページャで即座に最後にジャンプします。
-b --boot[=ID] 現在のブートまたは指定したブートのログを表示します。
-p --priority=RANGE 指定した優先度のログを表示します。
-k --dmesg 現在のブートのカーネルメッセージを表示します。
-u --unit=UNIT 指定したユニットのログを表示します。
--system システムジャーナルを表示します。
--user 現在のユーザーのジャーナルを表示します。
-g --grep=PATTERN PATTERN に一致する MESSAGE を持つログを表示します。
--user-unit=UNIT 指定したユーザーユニットのログを表示します。
--case-sensitive[=BOOL] 大文字小文字を区別するかどうかを強制します。
-a --all 長いフィールドや印刷不可能なフィールドを含めてすべてのフィールドを表示します。
-o --output=STRING ジャーナルの出力モードを変更します (例: short, json, cat)。
-r --reverse 最新のログを最初に表示します。
-f --follow リアルタイムでログを表示します。
-n --lines[=INTEGER] 表示するジャーナルログの数を指定します。
-x --catalog 利用可能な場合にメッセージの説明を追加します。
--no-pager 出力をページャーに渡さない
--file=PATH ジャーナルファイルを表示します。
--utc 時間を協定世界時 (UTC) で表示します。
--no-full フィールドを省略します。
--no-hostname ホスト名フィールドの出力を抑制します。

基本的な使い方

  • すべてのログを表示する

    journalctl

    すべてのログメッセージを表示します。

  • 最新のログを表示する

    journalctl -e

    最新のログメッセージを表示します。ログの最後にジャンプします。

  • リアルタイムでログを表示する

    journalctl -f

    新しいログメッセージがリアルタイムで追加されるのを監視します。

  • 起動時のブートログを表示する

    journalctl -b

    現在のブートのログメッセージを表示します。前のブートのログを表示するには、-b -1 のように指定します。

  • カーネルメッセージを表示する

    journalctl -k

    カーネルメッセージを表示します。

  • システムジャーナルを表示する

    journalctl --system

    システムジャーナルを表示します。これは、システム全体のログメッセージを表示するために使用されます。

  • ユーザージャーナルを表示する

    journalctl --user

    現在のユーザーのジャーナルを表示します。

フィルタリング

  • 特定の時間範囲のログを表示する

    journalctl -S "2025-01-29 18:00:00" -U "2025-01-29 19:00:00"

    特定の時間範囲内のログメッセージを表示します。

  • 特定のユニットのログを表示する

    journalctl -u ssh.service

    特定のサービス (ユニット) のログメッセージを表示します。この例では、ssh サービスのログを表示します。 ワイルドカードが使用できるので、ssh* と指定することも可能です。

  • 特定のログレベルのログを表示する

    journalctl -p err

    特定のログレベルのログメッセージを表示します。この例では、ログレベルが err のログを表示します。 ログレベルには emerg, alert, crit, err, warning, notice, info, debug があります。

  • 特定のパターンにマッチするログを表示する

    journalctl -g "Network Manager"

    特定のパターンに一致するメッセージを表示します。正規表現を利用可能です。 --case-sensitive をつけると、大文字と小文字を区別しません。

出力形式を指定する

-o オプションで出力形式を指定できます。 これらの出力形式を使用することで、journalctl のログ表示を用途に合わせてカスタマイズできます。

journalctl -o json

以下に journalctl コマンドの -o オプションで使用できる出力形式をテーブル形式で整理しました:

タイムスタンプの表示形式

出力形式 説明
short デフォルトの形式で、タイムスタンプとメッセージを表示します 4 月 17 21:01:33
short-precise ミリ秒精度のタイムスタンプを含む短い形式 2022-04-17T21:01:33.071527+0900
short-iso ISO 8601 形式のタイムスタンプを含む短い形式 2022-04-17T21:01:33+0900
short-iso-precise ミリ秒精度の ISO 8601 形式のタイムスタンプを含む短い形式 2022-04-17T21:01:33.071533+0900
short-full フルタイムスタンプとホスト名を含む短い形式 Sun 2022-04-17 21:01:33 JST
short-monotonic モノトニックタイムスタンプを含む短い形式 [ 0.000000]
short-unix UNIX タイムスタンプを含む短い形式 1650196893.071581

コンテンツの表示形式

出力形式 説明
verbose すべてのフィールドを表示する詳細な形式
export インポート可能なバイナリ形式
json JSON 形式
json-pretty 整形された JSON 形式
json-sse サーバー送信イベント形式の JSON
json-seq JSON テキストシーケンス
cat メッセージのみを表示する形式
with-unit ユニット名を含む形式

表示に関係するオプション

オプション 説明
-r --reverse 最新のログを最初に表示します。
-n --lines[=INTEGER] 表示するジャーナルログの数を指定します。
-x --catalog 利用可能な場合にメッセージの説明を追加します。
--no-pager 出力をページャーに渡さない
--utc 時間を協定世界時 (UTC) で表示します。
--no-full フィールドを省略します。
--no-hostname ホスト名フィールドの出力を抑制します。

ログをバイナリ形式で出力する

このコマンドは、すべてのログをバイナリ形式で出力し、logs.bin というファイルに保存します。

journalctl -o export > logs.bin

バイナリ形式のログファイルを再度確認したい場合は、以下のコマンドを使用してインポートすることができます。

journalctl --file=logs.bin

コメント

コメントする

目次