FreeBSDのログローテーションnewsyslog
Nginxのaccess.logのファイル容量が巨大になっていたので、logrotateはどうなっている?と調査したときの覚書。
環境: FreeBSD 14.1
有効なサービス一覧
# service -e
newsyslogがログローテーションのサービス。
動いているか確認。
# service newsyslog status
newsyslog is not running.
調べたらnewsyslogはcronで起動されるからこれで大丈夫みたい。
読み込んでいる設定ファイルを確認。
# less /etc/rc.d/newsyslog
設定ファイルを確認。
# less /etc/newsyslog.conf
設定ファイル置き場を確認。
# ls /etc/newsyslog.conf.d/
# ls /usr/local/etc/newsyslog.conf.d/
nginx用の設定ファイルを追加してみる。
参考: FreeBSD の newsyslog で楽々ログローテーション #nginx - Qiita
# vim /etc/newsyslog.conf.d/nginx.conf
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]/var/log/nginx/*.log root:wheel 644 12 * $M1D0 JG /var/run/nginx.pid 30
毎月初めに実行して12個保存するようにしてみた(1年間ログ保存)。
設定の詳細は公式マニュアルを参考に。
参考: newsyslog.conf
定期実行するためにcrontabに記述されている。
毎時0分に実行されている。
# less /etc/crontab
実行されたらどうなるか下記コマンドで確認できる。
# newsyslog -nv
/var/log/nginx/access.log <12J>: --> will trim at Tue Apr 1 00:00:00 2025/var/log/nginx/error.log <12J>: --> will trim at Tue Apr 1 00:00:00 2025
来月頭に実行されているか確認する。
2年ぐらいでサーバーを引越しするので、他はログローテーションしなくても大丈夫そう。