Pular para o conteúdo principal

Como configurar o logrotate para arquivamento automático de logs e economia de espaço em disco

· Leitura de 2 minutos
Customer Care Engineer

Gerenciar logs é uma parte crucial do trabalho de qualquer administrador de servidor. Logs que não são rotacionados podem rapidamente ocupar todo o espaço em disco disponível, desacelerar o servidor e causar erros imprevisíveis. Neste artigo, explicaremos como configurar e usar o logrotate para limpeza e rotação automática de logs em um servidor.


O que é logrotate e por que é importante usá-lo?

O logrotate é uma ferramenta projetada para o gerenciamento automático de logs. Ele ajuda a:

  • Limpar logs antigos — exclui ou arquiva automaticamente arquivos de log antigos.
  • Economizar espaço em disco — comprime e remove logs desnecessários.

A rotação de logs impede que os logs se acumulem e causem transbordamento do disco, o que poderia resultar em falhas e perda de dados. O logrotate arquiva automaticamente logs antigos e libera espaço para novos dados.


Como funciona o logrotate?

Quando o logrotate está ativo, ele executa automaticamente os seguintes passos:

  1. Rotação de logs — logs antigos são renomeados e armazenados, enquanto novos arquivos são criados em seus lugares.
  2. Compressão — logs antigos podem ser comprimidos para o formato .gz para economizar espaço.
  3. Exclusão — logs desatualizados podem ser excluídos se não forem mais necessários.

Exemplo: Um arquivo de log chamado access.log pode ser transformado em access.log.1, depois comprimido em access.log.1.gz, e eventualmente excluído após um período de retenção especificado.

---

Como configurar o logrotate

1. Instalando o logrotate

Na maioria dos sistemas Linux, o logrotate já vem pré-instalado. Para verificar se o logrotate está instalado, execute o comando:

sudo logrotate --version

Se o logrotate não estiver instalado, é possível instalá-lo através de um gerenciador de pacotes.

  • Para Debian/Ubuntu:
sudo apt update && sudo apt install logrotate
  • Para CentOS/RockyLinux/AlmaLinux:
sudo yum install logrotate

2. Configurando o logrotate

A configuração do logrotate geralmente é armazenada em /etc/logrotate.conf. Este arquivo contém parâmetros gerais para todos os logs no servidor. Para configurar a rotação de logs individuais, você pode criar arquivos de configuração separados para diferentes serviços no diretório /etc/logrotate.d/.

Exemplo de uma configuração padrão do Nginx:

/var/log/nginx/*.log {
daily          # Logs são rotacionados diariamente
missingok      # Não exibe erro se o log estiver ausente
rotate 7       # Mantém 7 arquivos arquivados
compress       # Comprime logs antigos
delaycompress  # Atrasa a compressão até a próxima rotação
notifempty     # Não rotaciona arquivos vazios
create 0640 www-data adm  # Cria novos logs com permissões específicas
}

3. Parâmetros chave de configuração

  • daily/weekly/monthly — define com que frequência o arquivo de log será rotacionado (diariamente, semanalmente ou mensalmente).
  • rotate [N] — especifica o número de logs arquivados a serem retidos.
  • compress — habilita a compressão do arquivo de log (geralmente em .gz).
  • missingok — evita erros se um arquivo de log estiver ausente.
  • notifempty — ignora a rotação de arquivos vazios.
  • create — cria novos logs com as permissões especificadas.

4. Executando o logrotate

O logrotate geralmente é executado automaticamente via cron. No entanto, você pode executá-lo manualmente se precisar verificar a configuração ou realizar uma rotação imediatamente:

sudo logrotate -f /etc/logrotate.conf

5. Verificando a operação do logrotate

Para garantir que o logrotate esteja funcionando corretamente, você pode verificar as entradas mais recentes em seu log de serviço:

sudo journalctl -u logrotate -n 10