Meu access.log tem 10,5 GB - Quais são os bons procedimentos de gerenciamento de log?

Meu access.log tem 10,5 GB - Quais são os bons procedimentos de gerenciamento de log?

Não temos nenhum gerenciamento de log além de entrar e limpá-lo de vez em quando. Temos um servidor que não recebe muito tráfego (a maioria dos logs vem do nosso chat ao vivo). Mas isso me fez pensar: que tipo de procedimentos de gerenciamento de logs deveriam ser implementados para gerenciar os logs de maneira adequada? Você configura isso para que apenas coisas específicas sejam registradas, para que os registros sejam apagados por tantos dias? Por quanto tempo os logs de acesso devem ser mantidos? Por quanto tempo os outros registros devem ser mantidos?

Responder1

Até meus arquivos de log ficam grandes por causa disso. Eu uso o logrotate padrão disponível em quase todas as distros Linux.

Eu configurei-o para rotacionar as coisas que ficam muito grandes, diariamente e outras semanalmente, e assim por diante.

De uma chance. Eu até os compactei com xz, então o arquivo é relativamente pequeno e pode ser baixado em sua caixa pessoal para análise sem muita perda de largura de banda em ambos os lados.

Consulte man logrotate e man logrotate.conf para obter mais informações.

Responder2

Primeiro, entenda que seu servidor web é anexado ao seu access.log, então você realmente deve manter seu tamanho no mínimo. Meus servidores Apache começam a carregar páginas mais lentamente quando possuem arquivos de log com mais de 4 GB (provavelmente sou o único que percebe).

Experimente o awstats. Ele criará arquivos baseados em HTML que permitirão que você obtenha ótimas visualizações do seu tráfego e também limpará o enorme arquivo access.log que você possui. A primeira vez que você executar este aplicativo, levará muito tempo, pois o access.log é muito grande.

Se awstats ou logrotate não funcionarem para você, você pode simplesmente destruir seu access.log uma vez por dia com um cron:

echo "" > access.log

Mas eu pessoalmente só uso isso quando tenho um arquivo de log enorme que preciso truncar muito rápido. É realmente um desperdício de logs truncá-los assim.

Responder3

Usarcronólogopara criar um arquivo de log por hora ou um arquivo de log diário. Veja como usá-lo.

TransferLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/access.log"
ErrorLog    "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/errors.log"

Usando a compactação cronjob acima dos logs para evitar o preenchimento do disco e manter os dados por alguns dias (pode ter um mês).

ou use logrotate para girar os logs (conforme explicado na resposta acima)

informação relacionada