Linux / コマンド / journalctl - systemd システム・サービスログの表示

journalctlはsystemdジャーナルに保存されたシステム・サービスのログを検索して読み取ります。特定のユニットの最近のエラーや現在の起動時のメッセージに範囲を絞ることができます。

systemdジャーナルは、サービスの出力やカーネルメッセージなどを収集・保存するログの仕組みです。引数なしのjournalctlは、読み取り権限のある保存済みの項目を時刻順に表示します。-uはユニット、-bは特定の起動、-pは重要度で対象を絞ります。システム全体のログが必要な場合は、運用方針に従って閲覧権限を確認してください。

基本的な文法

journalctl [オプション] [フィルター]

インストールされている実装とオプションは、配布版によって異なる場合があります。man journalctlで現在のシステムの説明を確認してください。

使用例

現在の起動時のエラーを見る

現在の起動でエラー以上のレベルのメッセージを確認します。

journalctl -b -p err

サービスログを見る

systemctlで確認した実際のサービス名に置き換えて、最近の100件を読みます。1件が複数行になることもあるため、画面上の100行と同じとは限りません。

journalctl -u sshd.service -n 100

サービスログを追跡する

-fは既定で直近の項目も表示した後、新着ログを追跡します。表示済みのログが最初に出ても、障害が再発したとは限りません。Ctrl+Cで終了します。

journalctl -u sshd.service -f

サービスログを1行読む

journalctlはsystemdジャーナルに収集されたログを条件ごとに検索します。次は特定のサービスの最近の3件をページなしで表示します。

journalctl -u sshd.service -n 3 --no-pager

例示出力の一部(時間・ホスト・メッセージはシステムごとに異なります):

Sep 28 09:00:00 web01 sshd[1234]: Server listening on 0.0.0.0 port 22.

-uでユニットを指定して範囲を絞り、-nで項目数を制限します。権限のため、他のユーザーのログが見えないことがあります。前回の起動を調査する場合は-b -1を使用しますが、ジャーナルが永続的に保存されないシステムでは前回の起動ログがないことがあります。

時間範囲を絞るには--since '2026-09-28 09:00'または--untilを使用します。システムのタイムゾーンとログが記録された時間の差を考慮し、問題発生直前・直後を一緒に確認することで原因と後続のエラーを区別できます。ログにはトークンやユーザー情報が含まれる場合があるため、共有前に機密情報を隠してください。

主なオプションと形式

オプション・形式 説明
-u ユニット 指定したユニットのログに限定します。
-b 現在の起動のログを選択します。
-n N 最近の N 件の項目のみを表示します。
-f 新しいログを引き続き出力します。
-p レベル 指定した重要度以上のメッセージを選択します。
--since 時間 指定した時間以降のログを選択します。

使用する際の注意点

ログにはユーザー情報・パス・トークンなどの機密内容が含まれる可能性があるため、共有前に確認してください。以前の起動ログは永続ジャーナル保存設定がない場合、残っていないことがあります。--vacuum-*は保存されたログを削除するため、単なる閲覧中には使用しないでください。現在のカーネルのリングバッファを直接見る方法は、dmesgによるカーネルメッセージの確認で説明しています。

よくある質問

以前の起動ログが表示されない理由は?

ジャーナルが永続的に保存されていないか、既にローテーション・削除されている可能性があります。journalctl --list-boots で保存された起動回を確認してください。

公式ドキュメント

オプションの正確な動作や実装ごとの差異は、journalctl 関連の公式ドキュメントで確認できます。