Logrotate: como configurar e gerenciar arquivos de log no Linux

Os logs de sistema são como marcadores que ajudam a rastrear o uso ou solucionar os problemas de uma aplicação. Entretanto, conforme mais informações são registradas, esses arquivos ocupam mais espaço em disco fazendo com que, em um momento específico, a depender da capacidade de armazenamento do sistema, o tamanho desse espaço em disco se torna difícil de administrar.

logrotate

Quando você não tem espaço em disco suficiente o seu sistema é subutilizado. Esse problema pode atrasar o processo de redimensionamento e até backups feitos no servidor. Além disso, dificulta a navegabilidade em sites, a rastreabilidade de eventos e as soluções de problemas: imagine precisar verificar milhões de entradas de log para encontrar um erro.

Por isso, o logrotate é a melhor solução para a manutenção desse espaço de armazenamento, uma vez que o utilitário faz a compactação de arquivos de log mantendo-os em um tamanho gerenciável ou os remove quando obsoletos para dar lugar a novos logs.

Essa “rotação de logs” confere o nome ao utilitário, que também é chamado de Log Rotate. Sistemas geralmente executam o logrotate uma vez por dia e, durante o processo, verificam quais condições programadas são atendidas, uma vez que é possível personalizar essa operação por diretório ou por tipo de log. Neste artigo falamos um pouco mais sobre o logrotate. Veja a seguir!

    Faça o download deste post inserindo seu e-mail abaixo

    Não se preocupe, não fazemos spam.

    O que é logrotate?

    A maioria das operações é gravada em um arquivo inserido em um diretório ou subdiretório. Esses arquivos são conhecidos como logs e são a chave para examinar operações do sistema, tanto de processos recentes quanto históricos, assim como fornecem informações relevantes para a solução de problemas.

    Para isso, o logrotate renomeia e compacta o log principal, conforme a condição determinada para que essa ação seja atendida. Conforme já falamos, esse processo libera espaço para que um novo evento seja registrado em um arquivo vazio. Além disso, o administrador do sistema pode usar o utilitário logrotate para configurar um script a ser executado automaticamente.

    Qual a sua função e por que eles são tão importantes? 

    Com o logrotate, o usuário obtém arquivos de log menores e facilmente gerenciáveis em vez de um arquivo de log grande que ocupa espaço desnecessário no equipamento. Assim, evita ficar sem espaço em disco quando menos se espera, basta realizar uma configuração adequada aos limites de capacidade do sistema (funçãosize).

    Outra função importante do logrotate é a compactação de arquivos de log mais antigos, ação que economiza espaço em disco e libera memória para novas informações (funçãocompress).

    O usuário pode filtrar os arquivos de log por meio de referências de pesquisa como data e mês de ocorrência, basta pesquisar todos os arquivos ou um subconjunto deles por meio da funçãodaily, monthly, etc. Além disso, pode fazer uma configuração de supressão automática para arquivos muito antigos, mantendo uma quantidade específica de logs no sistema, por exemplo (funçãorotate 30).

    Ao analisar uma falha, sabendo quando o evento ocorreu, fica fácil buscar um arquivo de log diário em vez de precisar consultar todos eles. O único problema é que, se você quiser processar todo o histórico, terá que especificar vários nomes de arquivo.

    Separamos aqui alguns artigos relacionados ao tema que podem te interessar:

    Como configurar e executar o logrotate?

    O arquivo de configuração principal do logrotate está localizado em /etc/logrotate.conf, que contém os parâmetros padrão usados pelo logrotate para reciclar os logs. O arquivo é compactado, logo o usuário pode verificar a configuração e os comandos do logrotate.

    Esse diretório abrange a maior parte dos arquivos de configuração específicos do logrotate:

    include /etc/logrotate.d 
    

    Depois, use o seguinte comando para listar o conteúdo do diretório onde as configurações de log foram armazenadas:

    ls /etc/logrotate.d 
    

    Em geral, os aplicativos instalados por meio do gerenciador de pacotes também criarão um arquivo de configuração em: 

    /etc/logrotate.d
    

    Entretanto, nas versões de sistemas operacionais Ubuntu, não existe uma entrada para um serviço syslog. Antes dessa versão, os logs do sistema eram alternados por um savelog, um comando executado a partir do script/etc/cron.daily/sysklogd 

    Comandos

    Você pode obter uma lista completa de comandos usados em arquivos de configuração logrotate verificando a página principal em:

    man logrotate 
    

    Alguns, sobre os quais, veremos a seguir.

    Log files

    Um arquivo de log e seu comportamento de rotação são definidos por meio do nome do arquivo de log (ou arquivos) seguido por um conjunto de comandos entre colchetes.

    Você pode listar mais de um arquivo de log para um bloco por meio de espaços. Por exemplo, para especificar todos os arquivos no diretório /var/foo que terminam em .loge o arquivo /var/bar/log.txt, você configuraria o bloco da seguinte forma:

     /var/foo/*.log /var/bar/log.txt { rotate 14 daily compress delaycompress sharedscripts postrotate /usr/sbin/apachectl graceful > /dev/null Endscript } 
    

    Rotate count

    O comando rotate determina quanto arquivos de logs retornam antes de o logrotate começar a deletar os mais antigos:

    rotate 4 
    

    Size

    Você pode usar o comando size para especificar um tamanho de arquivo que o logrotate fará em sua rotação. O formato do comando informa ao logrotate quais unidades serão usadas para especificar esse tamanho:

    size 100k size 100M size 100G 
    

    Compression

    Se você quer compactar (ou não) os arquivos no formato gzip, escreva os seguintes comandos em/etc/logrotate.conf:

    compress 
    nocompress 
    

    Você ainda poderá criar um comando para compactar os logs arquivados, mas com um pouco de atraso: na próxima rotação, por exemplo:

    delaycompress 
    

    Conforme os arquivos de log ficam maiores e mais pesados, interferindo significativamente no desempenho do sistema, é essencial dispor de uma ferramenta capaz de gerenciar esses arquivos de informações. O logrotate é, portanto, um utilitário cuja função é limpar os logs mantidos no sistema de arquivos periodicamente ou no momento em que o arquivo atinge um determinado tamanho.

    Agora que você sabe que o logrotate remove os arquivos de log mais antigos para manter a capacidade do sistema operacional, que tal descobrir como usar o comando Chmod no Linux para editar, ler ou executar as tarefas em um documento?

    Compartilhe
    facebook
    linkedin
    twitter
    mail

    Inscreva-se em nosso blog

    Acesse, em primeira mão, nossos principais posts diretamente em seu email

    Posts Relacionados

    Quer receber mais conteúdos brilhantes como esse de graça?

    Inscreva-se para receber nossos conteúdos por email e participe da comunidade da Rock Content!