Os logs estão ocupando muito espaço em seu servidor. Como corrigir?
A maioria dos arquivos de log são armazenados no diretório /var/log, mas não se limitam a ele. Os princípios descritos nesta seção se aplicam a todos os arquivos *.log em qualquer diretório de seu servidor.
Logs são arquivos que armazenam informações sobre eventos do servidor: atividade de aplicativos e do sistema operacional, vários erros, requisições de usuários a sites e muito mais. Com o tempo, os logs podem ocupar uma quantidade significativa de espaço em disco, especialmente sob carga pesada ou se houver erros de software.
Um aspecto crítico dos arquivos de log é que, na maioria dos casos, excluí-los pode causar problemas ao programa que os gera — seja um servidor web ou até mesmo o próprio sistema operacional.
Além disso, os logs frequentemente contêm informações de diagnóstico valiosas que podem ajudar a identificar problemas de software em seu servidor e prevenir problemas maiores. Portanto, é importante manuseá-los de forma adequada e cuidadosa.
Como identificar logs que podem ser limpos
Use ncdu para localizar logs grandes no servidor. Se um arquivo de log estiver incomumente grande, verifique suas últimas entradas:
sudo tail /path/to/log
Se não houver anomalias, verifique o início do arquivo para determinar se o log cresceu muito simplesmente devido à idade (preste atenção à data das primeiras entradas):
sudo head /path/to/log
Após isso, você pode prosseguir com a limpeza do arquivo.
Se você não tem certeza por que o arquivo de log cresceu tanto, é melhor salvá-lo e entrar em contato com a equipe de suporte do seu provedor de hospedagem para esclarecimentos.
Como limpar logs com segurança
O comando truncate limpa o conteúdo de um arquivo sem excluí-lo:
sudo truncate -s 0 /var/log/nginx/error.log
Note separadamente os arquivos que são logs, apesar da falta da extensão *.log:
/var/log/btmp/var/log/syslog/var/log/messeges/var/log/secure/var/log/maillog
Esses arquivos também podem ser limpos com segurança usando o comando truncate.
Um caso especial é o log localizado no diretório /var/log/journal. Você pode encontrar mais detalhes sobre como trabalhar com ele em um artigo separado.
Como evitar que os logs cresçam demais
Ao analisar logs, você pode notar que alguns deles têm nomes como:
syslog.1seusite.access.log.1
Isso aparece quando a rotação de log é aplicada, por exemplo, usando o programa logrotate. Arquivos antigos podem ser excluídos ou compactados durante a rotação, economizando espaço em disco.
Você pode ler mais sobre a configuração desse mecanismo em um artigo separado.