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年ぐらいでサーバーを引越しするので、他はログローテーションしなくても大丈夫そう。


▼ 関連記事