インフラ作業支援ラボInfra Support Lab ← ガイド一覧← 戻る

journalctlでLinuxエラーを確認する方法|前回起動・サービス・期間指定

journalctlでLinuxのエラーを調べるときに、現在・前回起動、特定サービス、期間、priorityを分けて確認する手順を整理します。

このページの目的

journalctlのオプションを暗記するのではなく、障害発生時に「どのboot・どのUnit・どの時間帯」を見るかを順番に決めます。

最初にやること

まず現在のbootをjournalctl -bで確認し、必要に応じて-u・-p・--sinceで範囲を狭めます。再起動前の障害なら-b -1を使います。

関連するLinux障害調査ガイド

このページの対象:systemd journalを使うLinuxで「どこからログを見ればよいか」を整理するページです。アプリケーション独自ログしか使わない環境や、journalが永続保存されていない環境では取得できる範囲が異なります。

最短の確認順

原因不明のLinux障害で、まずjournalを広く確認する場合は「現在の起動」「特定サービス」「前回起動」の順に範囲を狭めます。エラーだけに絞る前に、前後の文脈も確認できる状態を残します。

# 現在の起動でerr以上を確認 journalctl -b -p err # 特定サービスの現在起動ログ journalctl -u example.service -b # 前回起動でerr以上を確認 journalctl -b -1 -p err
-p errだけで原因を確定しない:priorityがwarning/infoでも原因につながる記録があります。エラー行が見つかったら、その時刻前後や対象Unitのログへ広げて確認します。

現在の起動を確認する

journalctl -b journalctl -b -p err

-bは現在のbootを対象にします。-p errを1つ指定した場合は、errとそれより重要度が高いpriorityのメッセージに絞られます。

前回起動を確認する

journalctl --list-boots journalctl -b -1 journalctl -b -1 -p err

-b -1は1つ前のbootを指定します。再起動前に障害が起きた場合の確認に向いています。ただし、journalが永続保存されていない環境では前回bootのログが残っていない場合があります。

検索データで反応が出ている確認:journalctl -b -1 -p errは「前回起動+err以上」を同時に絞るコマンドです。再起動後の事後調査では便利ですが、これだけで調査を終えず前後のログも確認します。

特定サービスを確認する

systemctl status example.service journalctl -u example.service -b journalctl -u example.service --since "2026-09-27 09:00" --until "2026-09-27 10:00"

-uは指定したsystemd Unitに関連するjournalを絞ります。サービス起動失敗なら、statusの抜粋だけでなくjournal側の前後行を確認します。

期間を絞る

journalctl --since "today" journalctl --since "1 hour ago" journalctl --since "2026-09-27 09:00" --until "2026-09-27 10:00"

--sinceと--untilで時間帯を限定できます。監視アラートやユーザー報告の発生時刻が分かる場合は、最初から期間を絞るとノイズを減らせます。

priorityを絞る

指定例使いどころ注意
-p errerr以上を素早く確認warning/infoの原因候補は除外される
-p warningwarning以上まで広げる件数が増えるのでUnit・期間と併用
-p warning..errpriority範囲を明示必要なレベルを意図して選ぶ

リアルタイムで追う

journalctl -f -u example.service

-fは新しいjournalエントリを継続表示します。再現試験と組み合わせるときに使います。本番で何度も再現操作を行う前に、操作の影響を確認してください。

ログが見えないときの注意

journalctlがない・既存syslog運用の環境

systemd-journaldを中心に使わない環境や、既存の運用手順では、テキストログを直接確認する場合があります。ディストリビューションやrsyslog/syslog-ngの設定によって保存先は異なるため、ファイルが存在することを確認してから使います。

用途journal中心の確認既存環境で見かける確認
OS・サービス全般journalctl -btail -n 200 /var/log/messages
tail -n 200 /var/log/syslog
認証・SSH周辺journalctl -u sshd -btail -n 200 /var/log/secure
tail -n 200 /var/log/auth.log
文字列で絞るjournalctl -b | grep -i errorgrep -i error /var/log/messages
ps -p 1 -o comm= command -v journalctl ls -l /var/log/messages /var/log/syslog /var/log/secure /var/log/auth.log 2>/dev/null
混在もあります:systemd環境でもrsyslog等へjournalを転送し、/var/log/messagesや/var/log/syslogを併用していることがあります。「新しいOSだからファイルログはない」と決めつけず、実環境の保存方式を確認します。

確認結果から次へ進む

見つかった内容次の確認
Unitの起動失敗systemd起動失敗ガイドでUnit・実行パス・権限を確認
cron関連の記録cronログ確認でcron固有の実行記録へ
容量不足・ENOSPCNo space left on deviceへ
時刻だけ分かるが原因不明同時刻のUnit・kernel・アプリログを相互に確認

公式・一次資料

ほかの症状も確認する

症状が異なる場合は、トラブル解決ガイド一覧から確認順を選べます。

トラブル解決一覧へ