journalctl と systemd ジャーナル
journalctl は、ほとんどの最新の Linux ディストリビューションで使用されているバイナリログストアである systemd ジャーナルを読み取るためのコマンドです。サービス、起動時、時間、優先度ごとにメッセージをフィルタリングできるほか、/var/log/journal 内で数ギガバイトにまで肥大化しがちなジャーナルのディスク使用量を報告および制限することも可能です。
1ログの読み取り
journalctl -u nginx.service は特定のユニットのメッセージを表示します。-b は出力を現在の起動時に限定し、-b -1 は前回の起動時に限定します。-p err はエラー以上の重要度のメッセージのみを表示します。'--since "1 hour ago"' は時間で制限し、-f は新しいメッセージをリアルタイムで追跡します。
2ディスク使用量
journalctl --disk-usage は、アクティブおよびアーカイブされたジャーナルファイルの合計サイズを表示します。
--vacuum-size=、--vacuum-time=、および --vacuum-files= は、制限に達するまでアーカイブされたジャーナルファイルを削除します。これらはアクティブなファイルには影響しません。
3永続的な制限
制限は /etc/systemd/journald.conf で設定します(例: SystemMaxUse=500M)。その後、systemctl restart systemd-journald で適用します。設定がない場合、journald はデフォルトでファイルシステムサイズの 10% 以内(最大 4 GB)にジャーナルを保持します。
ジャーナルの縮小方法
- サイズの確認:
journalctl --disk-usage - アクティブなファイルをローテーションして削除可能にする:
sudo journalctl --rotate - 2週間分のみ保持する:
sudo journalctl --vacuum-time=2weeks - または最大 500 MB に制限する:
sudo journalctl --vacuum-size=500M - 永続的に設定するには、
/etc/systemd/journald.confに SystemMaxUse=500M を設定し、以下を実行します:sudo systemctl restart systemd-journald
注意点
- 削除されたログは復元できません。問題調査に必要な履歴は保持してください。
- journald の実行中に
/var/log/journal内のファイルを直接削除しないでください。
関連記事
- logrotatelogrotateの機能、/etc/logrotate.confおよび/etc/logrotate.dでの設定方法、ルールを安全にテストする方法について解説します。
- du および ncdu を使用したディスク使用量の確認Linux ディスクを圧迫している原因を、du および対話型の ncdu を使用して特定する方法を解説します。同一ファイルシステム内に留まるオプションについても説明します。
- df (disk free)dfコマンドの出力の読み方、一般ユーザーにおいてAvailがゼロになる前にUse%が100%に達する理由、およびdf -iを使用してinodeを確認する方法について解説します。
出典
- journalctl(1) man7.org
- journald.conf(5) man7.org
補足: RainServer は Linux サーバーの監視と安全なクリーンアップを提供します。変更内容を表示し、実行前に確認を求めます。
最終確認: