CentOS7のログ管理「journald」を適切に設定する

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ディレクトリを作成する

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

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

# vi /etc/systemd/journald.conf
[Journal]
Storage=persistent
...

設定ファイルを保存したら、journaldサービスを再起動します。

# systemctl restart systemd-journald

/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の固定サイズに制限する方法を紹介します。

まず、journaldの設定ファイル/etc/systemd/journald.confで「SystemMaxUse=」に「2G」を指定し、行頭の「#」を削除します。

# vi /etc/systemd/journald.conf
[Journal]
...
SystemMaxUse=2G
...

設定ファイルを保存したら、journaldサービスを再起動します。

# systemctl restart systemd-journald

ログの容量が変更されていることを確認します。

# 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と比べるとより効率的に目的の情報を探せそうです。

記事が役立ったらシェアしてくれるとうれしいです。

あなたにおすすめのコンテンツ