Armadilloフォーラム

コンテナ内でlog出力のファイル容量制限について

m.yoshida

2024年5月15日 13時39分

お世話になります。
コンテナ内でlog出力のファイル容量制限について質問があります。

rsyslogをインストールしてlogrotetion.d/rsyslog.dにsize 10Mを追記してみましたが、logrotetionがdairy起動のため
ファイル超える懸念を解消する方法がわかりませんでした。
その他にもbusybox syslogdのlog出力する方法も考えましたが、こちらはファイル制限を入れる項目がありませんでした。

logのファイル制限をする手法として参考に教えていただけないでしょうか?
イメージファイルは”docker.io/arm32v7/debian:bullseye”

コメント

at_makoto.sato

2024年5月15日 17時45分

佐藤です。

> rsyslogをインストールしてlogrotetion.d/rsyslog.dにsize 10Mを追記してみましたが、logrotetionがdairy起動のため
> ファイル超える懸念を解消する方法がわかりませんでした。
> その他にもbusybox syslogdのlog出力する方法も考えましたが、こちらはファイル制限を入れる項目がありませんでした。
man logrotate で size の説明を見る限りですと、
指定したサイズ(今回であれば10M)を超えたタイミングでローテートされるようですが、
それでは不十分ということでしょうか。

m.yoshida

2024年5月17日 9時10分

佐藤さん

回答ありがとうございます。
> man logrotate で size の説明を見る限りですと、
> 指定したサイズ(今回であれば10M)を超えたタイミングでローテートされるようですが、
> それでは不十分ということでしょうか。

指定したサイズでローテされるかと思いましたが、されませんでした。。。。
原因として、logrotateがdairy起動でなのかなと。。。
https://qiita.com/shu_ss/items/11f8cfebaedb1b127084
強制的にlogrotateを起動すれば設定されたファイルサイズが超えたら、ローテすること確認しました

at_makoto.sato

2024年5月17日 19時19分

佐藤です。

> 指定したサイズでローテされるかと思いましたが、されませんでした。。。。
> 原因として、logrotateがdairy起動でなのかなと。。。
「ファイルサイズが10Mを超えた瞬間にそれを検知して即座にローテートしたい」ということでしょうか。
もしそうであれば、そういった機能はlogrotateにはありません。
時間間隔を最短のhourlyにして、minsize=10Mとすれば、1時間毎かつ10Mを超えていたらローテートするようになると思います。

m.yoshida

2024年5月20日 9時18分

佐藤さん
回答ありがとうございます。

> 「ファイルサイズが10Mを超えた瞬間にそれを検知して即座にローテートしたい」ということでしょうか。
→そうですね。可能であればこちらをできる機能はないかと。。。

> もしそうであれば、そういった機能はlogrotateにはありません。
> 時間間隔を最短のhourlyにして、minsize=10Mとすれば、1時間毎かつ10Mを超えていたらローテートするようになると思います。
→そうですね。さいやくこれかなと、、、