/var/logの見方に続き、この記事ではsystemdのログ管理システム「journald」をjournalctlで使いこなす方法を深掘りします。
journaldとは
journaldはsystemdの一部として動作するログ管理デーモンです。バイナリ形式でログを保存するため、高速な検索・フィルタリングが可能です。/var/log/journal/ または /run/log/journal/ に保存されます(設定による)。
journalctlの基本から応用まで
# 全ログを表示(新しい順)
$ journalctl -r
# 特定サービスのログ
$ journalctl -u nginx
$ journalctl -u nginx -u mysql # 複数サービス
# リアルタイム追跡
$ journalctl -u nginx -f
# 最新N行だけ表示
$ journalctl -u nginx -n 50
# エラーレベル以上のみ表示
$ journalctl -p err # err/warning/notice/info/debug
$ journalctl -p 0..3 # 数値指定(0=emerg, 3=err)
# 今回の起動分のみ
$ journalctl -b
$ journalctl -b -1 # 1回前の起動分
時刻・日時によるフィルタリング
# 期間指定
$ journalctl --since "2026-03-15 10:00:00"
$ journalctl --until "2026-03-15 12:00:00"
$ journalctl --since "2026-03-15 10:00" --until "2026-03-15 12:00"
# 相対時刻
$ journalctl --since "1 hour ago"
$ journalctl --since "yesterday"
$ journalctl --since "today"
ログの永続化設定
デフォルトでは再起動後にログが消える場合があります。永続化するには以下の設定が必要です。
# /etc/systemd/journald.conf を編集
[Journal]
Storage=persistent # auto(デフォルト)→ persistent に変更
SystemMaxUse=500M # ログの最大使用量
SystemKeepFree=100M # ディスクの最低空き容量
MaxRetentionSec=1month # 保持期間
# 設定反映
$ sudo systemctl restart systemd-journald
# /var/log/journal/ ディレクトリを作成(永続化に必要)
$ sudo mkdir -p /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal
ログのサイズ管理
# 現在のジャーナルサイズを確認
$ journalctl --disk-usage
# サイズを500MB以下に削減
$ sudo journalctl --vacuum-size=500M
# 1ヶ月以上前のログを削除
$ sudo journalctl --vacuum-time=1month
# 世代数を指定して削除
$ sudo journalctl --vacuum-files=5
まとめ
journalctl -u サービス名 -fでサービスのログをリアルタイム追跡-p errでエラー以上のログのみ表示--since/--untilで障害発生時刻のログを絞り込む- 永続化には
Storage=persistentを設定して/var/log/journal/を作成 --vacuum-size=500Mでログサイズを定期的に削減
📋 Linuxサーバー運用・管理チェックリスト完全版でPhase 2の全要点を確認できます。



コメント