AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

systemd-journald のログ上限を変更しておく

ずっと /dev/log/ を rsyslog と journald は直接見ていると思っていました。 /dev/log/ -> journald ( -> rsyslog ) 実際は、こうだったんすね……?

journald のログサイズ

デフォルトの動作は、ルートデバイスの 10% のはずです(だいたい記述されてる所、マウントされたストレージの 10% みたいな書き方してるので自信ないので、そのうち調べておきます)。 EC2 なんかで EBS 30GiB マウントするやつだと 3GiB ですね、こういうの。

[root@uncchi ~]# journalctl -u systemd-journald -l
Permanent journal is using 2.0G (max allowed 2.9G, trying to leave 4.0G free of 540.0K available → current limit 2.0G).

これは空き容量がなくなって死んだ直近のログです、かなしいなあ。

journald が利用しているログサイズの確認

以下で確認できます。

[root@uncchi ~]# journalctl --disk-usage

ログを削除する

以下のコマンドを利用すると、何はさておき journald のログを指定したサイズまで減らして(削除して)くれます。 以下は 100M を指定しています。

journalctl --vacuum-size=100M

ログサイズの上限を変更する

SystemMaxUse を変更すれば、とりあえずそれっぽくなります。

[root@uncchi ~]# cd /etc/systemd/
[root@uncchi ~]# cp ./journald.conf ./journald.conf.org
[root@uncchi ~]# vi ./journald.conf
[root@uncchi ~]# systemctl restart systemd-journald

/etc/systemd/journald.conf

デフォルトだと記述されている項目すべてコメントアウトされているはずなので、以下だけ有効化しておく。

SystemMaxUse=100m

どのくらいのサイズを割りあてておけばいいのか

ルートデバイスのサイズに余裕があるならデフォルト設定のままで良いと思います( 10% )。

が、上記の EBS 30GiB などの場合は、全体サイズの 0.5 〜 1% ほどに割り切って設定してしまうと良いのでは? と思います。