Nginxログファイルに問題があります。
以前は、ファイルにログを作成するだけでしたが、
access_log /var/log/nginx/infotrack_access.log rsyslog;
次のファイルを/etc/nginx/sites-available/alpha.conf
ファイルに追加しました。
access_log syslog:server=localhost:514,tag=infotrack rsyslog;
この行を追加した後、ファイルinfotrack_access.log
の代わりに、ファイルinfotrack_access.log.1
にログが作成されるという問題が発生しています。
これが/etc/logrotate.d/nginxファイルです。
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
Nginxをリロードまたは再起動すると、しばらくの間、ログはinnfotrack_access.log
に作成されますが、しばらくすると、ログは再びinfotrack_access.log.1
に移動します。
なんでこんなことが起こっているの ? /etc/nginx/nginx.conf
ファイルに変更を加えていません。
どうすれば解決できますか?
Logroateをデバッグおよび強制モードで実行します。 logrotate --force -d /etc/logrotate.d/nginx
。これにより、エラーメッセージが詳細に表示されます。ログフォルダの所有者も確認してください。
このバグに関連している可能性があります: https://bugs.launchpad.net/nginx/+bug/145077
Tux_DEV_NULL
によって投稿されたバグリンクで答えを得ました。
Nginxはローテーション後にいくつかの問題に直面しているようです。
そのため、回転後のセクションにいくつかの変更を加える必要がありました。
postrotate
#invoke-rc.d nginx rotate >/dev/null 2>&1
start-stop-daemon --stop --signal USR1 --quiet --pidfile /run/nginx.pid --name nginx
endscript
または、一部の人にとっては、これも機能します、
postrotate
#invoke-rc.d nginx rotate >/dev/null 2>&1
nginx -s reload
endscript