Atualmente, estamos atualizando do Ubuntu 12.04 LTS para 14.04 LTS em nossos servidores de aplicativos ruby on rails e percebemos que os arquivos de log não estão mais girando.
Nas duas máquinas, temos um arquivo de /var/app-name/config/logrotate
propriedade de nosso usuário unix, deployer
que contém um arquivo de logrotate válido da seguinte maneira:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
Isso é vinculado ao /etc/logrotate.d/
diretório comoapp-name
No nosso servidor Ubuntu 12.04, temos o logrotate 3.7.8, que roda muito bem. Ele entra no var/app-name/log/
diretório e gira todos os arquivos de log de saída
Mas no servidor Ubuntu 14.04, temos o logrotate 3.8.7, que não gira os arquivos de log para o nosso aplicativo.
Quando depuro isso via sudo logrotate -d -f /etc/logrotate/.conf
, recebo a seguinte saída:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
Perseguindo isso no código, parece que essa alteração foi adicionada ao fluxo de versão 3.8.x: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
Se eu alterar a propriedade do arquivo com o link simbólico /var/app-name/config/logrotate
para root
, ele começará a funcionar novamente. Mas, como esse arquivo faz parte do meu aplicativo e criado pela estrutura de implantação capistrano que usamos neste estado, prefiro não precisar alterar sua propriedade, quando costumava funcionar bem.
Então, os arquivos de configuração com link simbólico são recomendados / suportados pelo logrotate?
E, nesse caso, a recusa de usar meu arquivo (de propriedade de deployer
), que está vinculado ao /etc/logrotate.d
diretório, deve ser visto como um bug?
Ou existe outra abordagem recomendada para a rotação de logs específica do aplicativo?
(também solicitado no StackExchange unix )