# journald のログが大きすぎる場合: ジャーナルのサイズを確認して制限する

多くの Linux サーバーでは、systemd ジャーナルが少しずつ増え、/var 内で最も大きなデータになることがあります。サイズを確認し、一度整理してから、小さいまま保てるように上限を設定できます。他のログファイルには一切触れません。

## 1. ジャーナルの使用容量を確認する

journalctl --disk-usage を実行します。アーカイブ済みファイルとアクティブなジャーナルファイルの合計サイズが表示されます。ファイルは通常、/var/log/journal(永続保存)または /run/log/journal(メモリ上のみ)に保存されます。
/var/log/journal ディレクトリが存在しない場合、ジャーナルはメモリ上にのみ保持されている可能性があります。その場合、表示されるサイズの上限はディスクではなく RAM によって決まります。

## 2. 一度整理する

ジャーナルを指定サイズ以下に保つには、sudo journalctl --vacuum-size=500M を実行します。最近のエントリだけを残すには、sudo journalctl --vacuum-time=14d を実行します。どちらも古いアーカイブ済みジャーナルファイルを削除します。削除されたファイルに含まれていたログは、後から復元できません。
もう一度 journalctl --disk-usage を実行して確認します。vacuum はアーカイブ済みファイル単位で削除するため、結果は目標値より少し大きくなったり小さくなったりすることがあります。

## 3. 恒久的な上限を設定する

/etc/systemd/journald.conf を開き(または /etc/systemd/journald.conf.d/ にドロップインファイルを作成し)、[Journal] セクションに SystemMaxUse=500M を設定します。空き容量も確保したい場合は、SystemKeepFree=1G も使えます。SystemMaxUse は永続ジャーナルを制限し、RuntimeMaxUse はメモリ上のジャーナルに対して同じ働きをします。
sudo systemctl restart systemd-journald で設定を反映し、しばらくしてから journalctl --disk-usage を確認します。

## 4. 残しておく必要があるものを判断する

ジャーナルが小さくなると、デバッグに使える履歴は短くなります。特定のサービスの履歴をより長く残したい場合は、すべてをサーバー上に保持するのではなく、そのログを別の場所に転送してください。
どのサービスが最も多く書き込んでいるかを確認しましょう。journalctl -b -p warning --no-pager | tail で最近の警告を表示できます。1 分間に数千行ものログを出力しているサービスは、根本から対処する価値があります。

## FAQ

**journalctl --vacuum-size を実行しても安全ですか?**

システム自体には問題ありません。削除されるのは古いアーカイブ済みジャーナルファイルだけです。ただし、そのログの履歴は失われるため、調査に必要ないかを事前に確認してください。

**journald.conf を編集した後、何か再起動する必要はありますか?**

systemd-journald を再起動してください(sudo systemctl restart systemd-journald)。以降は上限が適用され、ジャーナルのローテーションに合わせて古いファイルが整理されます。

**/var/log/journal がないのはなぜですか?**

永続ストレージが無効になっているか、auto に設定されているのにディレクトリが存在しない状態です。その場合、ジャーナルはメモリ上の /run/log/journal に置かれ、再起動すると失われます。永続化したい場合にのみ、/var/log/journal を作成して journald を再起動してください。

Source: https://raincleaner.eu/ja/guides/journald-logs-too-big-limit-journal-size