O que exatamente o logrotate faz para os arquivos de log do apache? (apache 2.4 - ubuntu 14.04)

1

Diferente de alguns VHOSTs básicos, eu tenho a configuração padrão de log do apache e do apache. Sempre que tento visualizar meus arquivos de log do apache (error.log, access.log), vejo que esses arquivos continuam sendo reordenados e reorganizados regularmente. Infelizmente, não entendo qual é a razão ou a metodologia disso.

Pelo que eu li esta manipulação de arquivo de log é realizada por um utilitário chamado "logrotate".
com uma descrição da manpage

logrotate is designed to ease administration of systems that generate large numbers of log files. It allows automatic rotation, compression, removal, and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large.

Li os seguintes recursos:

Os recursos acima fornecem uma boa explicação técnica de como você configura logrotate, mas eu não estou conseguindo obter uma explicação de senso comum sobre o ponto de rotação do log e, portanto, algumas dicas sobre como funciona. Eu posso ver que ele executa compressão em alguns arquivos, o benefício disso é óbvio.

Eu entendo que logrotate é um utilitário genérico que processa arquivos de log para muitos serviços - e, portanto, sua função muda por cada configuração - mas, no contexto do apache 2.4 no Ubuntu 14.04 o que "logrotate" faz?

    
por Michael Coleman 07.03.2015 / 18:13

2 respostas

3

A idéia é que você sempre tenha um arquivo principal relativamente novo (como access_log ou error_log) que contém as entradas mais recentes. Como o log se torna muito antigo ou muito grande, o logrotate cria arquivos arquivados para que nenhuma informação seja descartada (algo como access_log-YYYYMMDD).

Portanto, logs mais antigos ainda podem ser acessados sem que o arquivo de log principal fique fora de controle em relação ao tamanho. Arquivos menores com menos informações são mais fáceis de ler e depurar - especialmente em servidores ocupados, onde esses logs podem crescer para vários GB.

No CentOS, por exemplo, os logs do Apache são rotacionados a cada 7 dias.

Você pode excluir os arquivos mortos quando quiser ou deixar o logrotate manipular a exclusão também.

Confira o man logrotate para mais detalhes.

    
por 07.03.2015 / 21:07
0

O ponto de logrotate é que, se um aplicativo tiver permissão para gravar indefinidamente em um arquivo de log,

  • você ficará sem espaço em disco e
  • os arquivos ficarão muito grandes para serem visualizados (algumas pessoas usam vi em arquivos de log de 100MB ...)

Então o que isso faz é

  • fornece uma maneira configurável de renomear o arquivo atualmente ativo para uma cópia salva,
  • notifica o serviço que está gravando no arquivo de log para informar que ele inicie um novo arquivo e
  • fornece uma maneira configurável de informar quanto espaço em disco é permitido para cópias salvas

Apenas renomear o arquivo de log não funcionará, já que muitos programas mantêm o arquivo aberto. Se ele for renomeado, o programa continuará sendo gravado - no arquivo renomeado.

Os programas projetados para uso no registro geralmente são projetados para responder a um sinal. Se não, ( logrotate é configurável), os serviços podem ser reiniciados à medida que os arquivos de log aumentam de tamanho.

Leitura adicional:

por 13.08.2016 / 18:52