Webアクセスログのローテーションの仕組みがどうなってるのか確認します。
0.環境
項目 | バージョン |
---|---|
CentOS | 7.7.1908 (Core) |
Apache | 2.4.6 |
ちなみにデフォルトだとこんな感じで大体1週間ごとにファイルが分かれて1ヶ月間保存されています。
1.httpd.conf
Apacheのログを吐く設定がどうなってるのか確認。
<IfModule log_config_module> 〜略〜 CustomLog "logs/access_log" combined 〜略〜 </IfModule>
「ServerRoot」配下の「logs/access_log」にログ出力しています。
「ServerRoot」配下の「logs」ディレクトリは別のディレクトリにシンボリックリンクされている場合があります。
2.ローテーション設定
/etc/cron.daily/logrotate で、毎日自動でlogrotateコマンドが実行されています。
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
3.logrotate.conf
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 〜略〜 # RPM packages drop log rotation information into this directory include /etc/logrotate.d
「weekly」で週1でファイルを切り替え、「rotate 4」で4ファイルでローテーションするという設定になっています。
個別に設定をいじるときは「/etc/logrotate.d」をincludeしてるので、「/etc/logrotate.d/httpd」に設定します。
/etc/logrotate.d/httpdのデフォルト:
/var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript }