Execute o logroate no modo de depuração e forçar. %código%. Isso mostrará as mensagens de erro em detalhes. Além disso, verifique os proprietários da pasta de log.
Pode estar relacionado com este erro: link
Estou tendo problemas nos arquivos de log do nginx.
Anteriormente, eu apenas fazia registros em arquivos,
access_log /var/log/nginx/infotrack_access.log rsyslog;
Eu adicionei o seguinte arquivo ao meu arquivo /etc/nginx/sites-available/alpha.conf
,
access_log syslog:server=localhost:514,tag=infotrack rsyslog;
Depois de adicionar essa linha, estou tendo problemas que, em vez do arquivo infotrack_access.log
, os logs estão sendo feitos no arquivo infotrack_access.log.1
.
Aqui está o arquivo /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
}
Quando eu recarregar ou reiniciar o nginx, então por um momento os logs são feitos para innfotrack_access.log
, mas depois de um momento, os logs vão novamente para infotrack_access.log.1
Por que isso está acontecendo?
Eu não fiz alterações no arquivo /etc/nginx/nginx.conf
.
Como posso resolver isso?
Execute o logroate no modo de depuração e forçar. %código%. Isso mostrará as mensagens de erro em detalhes. Além disso, verifique os proprietários da pasta de log.
Pode estar relacionado com este erro: link
Obtive a resposta no link do bug postado por Tux_DEV_NULL
.
Parece que o nginx enfrenta alguns problemas após a rotação.
Então, eu precisei fazer algumas alterações na seção pós-transação,
postrotate
#invoke-rc.d nginx rotate >/dev/null 2>&1
start-stop-daemon --stop --signal USR1 --quiet --pidfile /run/nginx.pid --name nginx
endscript
OU para alguns, isso também funciona,
postrotate
#invoke-rc.d nginx rotate >/dev/null 2>&1
nginx -s reload
endscript