Qual é a melhor estratégia para rotação de log com apache + passageiro + ruby-on-rails + mysql?

2

(Espero que eu tenha o site da SE correto para essa pergunta, caso contrário, você se desculpa.)

Eu tenho um aplicativo Ruby-on-Rails que é implantado usando o Apache + mod_rails (passageiro). Ele usa o MySQL para o backend do banco de dados. Estou usando SyslogLogger para enviar o log RoR para o syslog e usar logrotate por meio de uma tarefa cron diária para girar os logs.

O que eu descobri é que o aplicativo RoR trava se está no meio de algo quando os logs são girados. Eu tentei colocar copytruncate na configuração logrotate , mas parece que isso também afeta os apache logs (talvez porque os logs de erro RoR vão para o arquivo error.log de apache ) e - possivelmente - também os logs do MySQL (talvez - às vezes é difícil correlacionar exatamente qual log causa a falha).

Pesquisar na internet apresenta algumas soluções diferentes na rotação de log, uma é usar a tecla copytruncate , outra é usar cronolog , mas ainda não encontrei uma que resolva diretamente a questão. vendo.

Então, há uma solução conhecida para isso? Qual é o "caminho certo" para girar os logs em um aplicativo RoR (usando o apache e mod_rails para implantação)? Devo colocar apenas copytruncate em todos os arquivos de configuração logrotate que estão vagamente relacionados com a aplicação?

    
por Loop Space 22.11.2010 / 12:52

2 respostas

2

Em vez de 'copytruncate', essas linhas funcionaram para mim no arquivo logrotate do meu aplicativo rails:

  postrotate
    touch /your-rails-directory/tmp/restart.txt
  endscript
    
por 27.08.2014 / 08:24
-1

Eu não me incomodaria em enviar os logs do seu aplicativo Rails para o syslog. Você já tentou sua configuração logrotate ao deixar o Rails escrever seus próprios arquivos de log?

    
por 05.12.2010 / 03:37