CentOS7:ログの管理「journald」の設定

CentOS7では、これまでの「syslog」ベースでのログ管理から、新たなログ管理の仕組みとして「journald」が採用されています。

ここでは、journaldで最初にやっておいたほうが良い設定について紹介します。

ログが消えないようにする

journaldのログは、既定では「/run/log/journal」ディレクトリ配下に格納されています。
しかし、「/run」ディレクトリはtmpfsにマウントされているため、OSを再起動すると「/run/log/journal」ディレクトリ配下に格納されているログファイルは削除されてしまします。

そこで、OSを再起動してもログが保管されるように設定します。
設定方法は、以下の2通りあります。

  • /etc/systemd/journald.confで「Storage=persistent」を指定する
  • /var/log/journalディレクトリを作成する

どちらを実行しても結果は同じですが、ここでは設定ファイルを編集する上の手順について紹介します。

設定手順

  1. journaldの設定ファイル/etc/systemd/journald.confで「Storage=」に「persistent」を指定し、行頭のコメントアウト「#」を削除します。

    [Journal]
    Storage=persistent
    ...
  2. 設定ファイルを保存したら、journaldサービスを再起動します。

    systemctl restart systemd-journald
  3. /var/log/journal配下にディレクトリとログが作成されていることを確認します。
    ls /var/log/journal/
    7a6f961156e443bea2d16fcf3353b824
    ls -l /var/log/journal/7a6f961156e443bea2d16fcf3353b824/
    合計 8196
    -rw-r----- 1 root root 8388608 2月 24 00:42 system.journal
    ディレクトリ名には、machine-idが自動的に付けられます。

ログの容量を制限する

journaldでは既定のログ容量として、ログを保存するディレクトリがマウントされているファイルシステムの10%が割り当てられています。

ここでは、ログの容量を2GB に制限します。

手順

  1. journaldの設定ファイル/etc/systemd/journald.confで「SystemMaxUse=」に「2G」を指定し、行頭の「#」を削除します。
    [Journal]
    ...
    SystemMaxUse=2G
    ...
  2. 設定ファイルを保存したら、journaldサービスを再起動します。
    systemctl restart systemd-journald
  3. ログの容量が変更されていることを確認します。
    journalctl -u systemd-journald -l
    ...
    2月 24 00:56:11 cent74.local systemd-journal[17546]: Permanent journal is using 8.0M (max allowed 2.0G, trying to leave 4.0G free of 43.7G available → current li
    2月 24 00:56:11 cent74.local systemd-journal[17546]: Journal started
    「max allowed 2.0G」と表示されていることから、2GBに制限されていることが分かります。

まとめ

journaldが収集したログは、journalctlコマンドで整形・加工でき、従来のsyslogと比べるとより効率的に目的の情報を探せそうです。

スポンサーリンク