CentOS7でログ容量制限を設定する方法|journaldのSystemMaxUse設定と容量確認


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)CentOS7, Linuxtips, システム管理, ログ管理 > CentOS7でログ容量制限を設定する方法|journaldのSystemMaxUse設定と容量確認
「ログが増えすぎてディスクがいっぱいになった」「journaldの容量制限ってどう設定するの?」
そんな悩みを持つエンジニアは多いです。

CentOS7から採用されたjournaldは、デフォルトでファイルシステムの10%をログ領域として確保します。
放置すると気づかないうちにディスクを圧迫し、サービス停止につながることがあります。

この記事では、journaldのログ容量制限の設定方法と、現在のログ使用量の確認コマンドを解説します。
【この記事でわかること】
・journaldとは?CentOS7のログ管理の仕組み
・journaldのログ容量制限を設定する方法
・その他の容量制限パラメータ
・古いログを手動で削除する方法

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

journaldとは?CentOS7のログ管理の仕組み

CentOS7から、ログ管理はsyslogからjournaldへと移行しました。
journaldはsystemdの一部として動作し、カーネルログ・サービスログ・アプリケーションログを一元管理します。

journaldの主な特徴は以下の通りです。

自動ログローテート:指定した最大容量を超えた古いログを自動削除します
syslogとの連携:従来のrsyslogにログを転送する機能を持ちます
カーネルログのサポート:カーネルバッファ(kmsg)からのログも統合管理します

デフォルトの容量制限はファイルシステムの10%ですが、
本番サーバーでは明示的に上限を設定しておくことが鉄則です。

journaldのログ容量制限を設定する方法

ログ容量の制限は、/etc/systemd/journald.confSystemMaxUse パラメータで設定します。

1. journald.confを編集する

viまたはnanoで設定ファイルを開きます。

# vi /etc/systemd/journald.conf

ファイル内の [Journal] セクションに、以下の行を追加または変更します。

[Journal] Storage=persistent SystemMaxUse=256M

Storage=persistent は、ログをディスク(/var/log/journal/)に永続保存する設定です。
デフォルトの auto だと、ディレクトリが存在しない場合はメモリ上にしか保存されません。

容量の単位はK(キロバイト)、M(メガバイト)、G(ギガバイト)が使用できます。
編集が完了したら :wq で保存します。

2. journaldサービスを再起動する

設定を反映させるには、journaldサービスを再起動します。

# systemctl restart systemd-journald.service

再起動中も既存のログは失われません。安全に実行できます。

3. 設定が反映されたか確認する

# journalctl --disk-usage Journals take up 24.0M on disk.

現在のログ使用量が表示されます。
設定した256Mを超えることはなく、古いログから自動的に削除されます。

その他の容量制限パラメータ

journald.confには、SystemMaxUse 以外にも関連する設定があります。

パラメータ 説明 デフォルト
SystemMaxUse ディスク上のジャーナル最大容量 ファイルシステムの10%
SystemKeepFree ディスクに残す最小空き容量 ファイルシステムの15%
SystemMaxFileSize 個々のジャーナルファイルの最大サイズ SystemMaxUseの1/8
RuntimeMaxUse メモリ上のジャーナル最大容量(tmpfs) 物理メモリの10%

実務では SystemMaxUseSystemKeepFree をセットで設定することで、
ディスク空き容量を安全に確保できます。

古いログを手動で削除する方法

容量制限の設定とは別に、journalctl コマンドで古いログを手動削除できます。

# 2週間以上前のログを削除する # journalctl --vacuum-time=2weeks # 100MB以上のログを削除する # journalctl --vacuum-size=100M

緊急でディスクを確保したい場合に覚えておくと便利なコマンドです。

本記事のまとめ

やりたいこと コマンド/設定
ログ容量制限を設定する /etc/systemd/journald.conf の SystemMaxUse=256M
journaldを再起動する systemctl restart systemd-journald.service
現在のログ使用量を確認する journalctl --disk-usage
古いログを期間で削除する journalctl --vacuum-time=2weeks
古いログを容量で削除する journalctl --vacuum-size=100M

journaldの設定、これで終わりにしていませんか?

ログ管理は「設定して終わり」ではなく、定期的な確認と見直しが必要です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。