Quais são os prós e os contras de logrotate vs rotatelogs com o Apache?

9

O Apache fornece uma ferramenta chamada rotatelogs, que tem o benefício de não reiniciar o apache ao girar logs, o que acontece com o logrotate. Eu não tenho experiência suficiente para falar se este é um critério suficiente para usar rotatelogs sobre logrotate.

Minhas perguntas são: alguém tem experiência de vida real usando uma ou duas dessas ferramentas e qual seria sua contribuição?

O que você recomendaria e por quê?

    
por Mohan Gulati 08.03.2010 / 19:26

2 respostas

6

Eu recomendaria o logrotate para a maioria das pessoas, já que é isso que vai rodar todos os outros logs (KISS: Keep it Simple Stupid). O Logrotate não reinicia todo o Apache, apenas envia um sinal que diz para reabrir todos os seus arquivos de log e reiniciar os filhos. Esse sinal pode ser SIGHUP, o que faz com que os filhos sejam reiniciados imediatamente (o que interromperá os downloads) ou o SIGUSR1, que faz uma reinicialização normal. Com o SIGUSR1, você precisa atrasar o processamento do registro até achar que todas as crianças teriam morrido naturalmente. De qualquer forma, você provavelmente deseja analisar seus registros e programá-los para o período de tráfego mais baixo do dia ou da semana.

Troncos canalizados parecem ser a solução mais poderosa. Uma grande vantagem é que ele permitirá que você use um sistema de registro centralizado e leve o próprio servidor web. O manual em si diz:

As with conditional logging, piped logs are a very powerful tool, but they should not be used where a simpler solution like off-line post-processing is available.

Portanto, aparentemente, não use o log piped se você não precisar . Eu usei o log canalizado no passado como uma maneira hacky de filtrar logs e não tive nenhum problema.

    
por 08.03.2010 / 19:29
1

Eu usei os dois antes. Descobri que o uso de rotatelogs é uma ferramenta muito útil no gerenciamento de logs de acesso e se você não deseja o tempo de inatividade do apache. Em um site de alto volume, eu recomendaria isso, a única questão que descobri foi que, se você quiser gerenciar os logs, precisará ter um script de script separado para limpar ou mover os logs para um servidor de backup. depende da exigência. Com o logrotate você tem mais opções com a forma como os arquivos de log são manipulados, o único problema é quando o logrotate é executado como explicado na resposta anterior, você precisará reiniciar o apache.

Basicamente tudo se resume a escolha, se você precisa do apache para rodar sem interrupções, então rotatelogs com um script cron externo para gerenciar, senão logrotate será suficiente. Apenas certifique-se de configurar o cron do logrotate para não girar os logs quando houver muito tráfego.

Por último, se você quiser ter o log do apache no seu syslog, você sempre pode usar o comando logger que está nos linuxes baseados no Redhat.

    
por 25.02.2013 / 07:27