journalctlとは何か
journalctlは、Linux のシステムログを閲覧・管理するためのコマンドラインユーティリティです。systemd が提供する systemd-journald デーモンが蓄積したログデータを、統一されたフォーマットで取得できます。
主な特徴
- タイムスタンプやプロセス ID、サービス名など、豊富なメタデータと共にログを表示
- フィルタリング機能が充実しており、日時・ユニット・優先度などで絞り込みが可能
- バイナリ形式のジャーナルを高速に検索・表示できる
- 永続化設定により、再起動後も過去のログを保持できる
基本的な使い方
以下に代表的なコマンド例を示します。
# 最新のログをリアルタイムで表示
journalctl -f
# 指定したサービス(例: nginx)のログだけ表示
journalctl -u nginx.service
# 特定の日時以降のログを取得
journalctl --since "2024-08-01 00:00:00"
# エラーレベル以上(priority >= 3)のログだけ表示
journalctl -p err..alert
オプションのポイント
- -f :
tail -fと同様にリアルタイムで追跡 - -u : systemd ユニット名でフィルタリング
- –since / –until : 時間範囲で絞り込み
- -p : ログの重要度(priority)を指定
永続化とログローテーション
デフォルトでは /run/log/journal に一時的に保存されますが、/etc/systemd/journald.conf の Storage=persistent 設定を有効にすると /var/log/journal に永続化され、再起動後もログが失われません。
まとめ
journalctl は systemd 環境での標準的なログ閲覧ツールとして、豊富なフィルタリングと高速検索を提供します。システムトラブルの原因究明や運用監査に欠かせないコマンドですので、基本的なオプションはぜひ覚えておきましょう。