Tenho usado logrotation há anos e nunca pensei muito que isso fosse um problema até que me deparei com uma pergunta sobre stackoverflow (https://stackoverflow.com/questions/1508734/disable-java-log-rotation/) onde alguém deseja desabilitar a rotação de log.
Para mim, com experiência em ter servidores de construção e até servidores de produção limpos manualmente porque os logs não são girados e os discos estão acabando e de repente as máquinas param, tudo parece uma loucura, mas me ocorreu que talvez não seja tão óbvio depois todos.
Então, quais são os benefícios da rotação de logs? E quais são as desvantagens (por exemplo, talvez mais difícil de depurar/analisar)? Quais ferramentas você considera úteis para trabalhar com arquivos de log girados? Splunk, presumo, mas o que mais?
Responder1
Acho que os benefícios da rotação de logs são claros:
- Você obtém arquivos de log menores facilmente gerenciados, em vez de um arquivo de log enorme.
- Você não ficará sem espaço em disco repentinamente se configurá-lo adequadamente de acordo com seus limites de capacidade. (
size
opção) - Arquivos de log mais antigos podem ser compactados para que os arquivos de log fiquem ainda menores e, assim, economizando mais espaço em disco. (
compress
opção). - Você pode girar os arquivos de uma maneira/tempo específico. Por exemplo, cada arquivo de log contém apenas informações relacionadas a um dia específico. Isso facilitará a busca, pois você sabe a data. Quando você não sabe a data, basta pesquisar todos os arquivos ou um subconjunto deles. (
daily
,monthly
, etc). - Você se livra automaticamente de arquivos muito antigos. Por exemplo, você pode manter no máximo 30 arquivos. (
rotate 30
). - Você pode adicionar a extensão que desejar, como data de rotação. (
dateext
). - Você pode executar scripts específicos antes/depois da rotação. (
prerotate
,postrotate
).
EDITAR:Adicionei mais itens à lista e incluí as opções quando aplicável. Para mais detalhes, man logrotate
pode ser consultado.
Responder2
Benefícios:
- se os arquivos de log forem grandes, você pode compactar ou excluir dados antigos para evitar encher o disco
- se você sabe quando algo aconteceu, será mais rápido acessar o arquivo de log de um único dia do que um único arquivo de log perpétuo
Desvantagens:
- se quiser processar todo o histórico, você terá que especificar vários nomes de arquivo
- alguns programas não suportam rotação, e se você girá-lo usando um utilitário como logrotate, há alguns casos extremos a serem observados (por exemplo, você tem que usar a opção truncar, o que eu acho que significa que você corre o risco de perder uma pequena quantidade de dados )
Responder3
Se você pensar sobre para que usa os logs, os benefícios ficam ainda mais claros. Deixando de lado os pontos óbvios mencionados por outros e por você mesmo. Para mim, o grande benefício é poder controlar como os logs são inseridos nas ferramentas de análise offline.
Eu tenho uma variedade de scripts caseiros que uso para analisar logs - mas, AFAIK, splunk e as várias ferramentas de análise de webloog são as únicas ferramentas 'padrão' disponíveis no mercado. (sem contar os analisadores de arquivos de log em tempo real como o fail2ban).