Serviço logrotate e Rotação de Logs - Linux

Se o sistema grava muitos arquivos de logs, encontrar a informação necessária pode se tornar bastante problemático. Para resolver este problema, é possível configurar o serviço logrotate. O serviço logrotate é executado como uma tarefa cron uma vez por dia e verifica os arquivos de configuração para determinar se é necessário realizar a rotação. Nestes arquivos de configuração, você pode definir quando um novo arquivo de log deve ser aberto e o que deve acontecer com o arquivo antigo: por exemplo, se ele deve ser compactado ou simplesmente deletado e, se for compactado, quantas versões do arquivo antigo devem ser mantidas.

O serviço logrotate trabalha com dois tipos diferentes de arquivos de configuração. O arquivo principal de configuração é /etc/logrotate.conf. Este arquivo define as configurações gerais de como o logrotate deve executar suas tarefas:

programicio@Programicio:~$ cat /etc/logrotate.conf
# veja "man logrotate" para mais detalhes

# opções globais não afetam diretivas de inclusão precedentes

# rotaciona arquivos de log semanalmente
weekly

# usa o grupo adm por padrão, já que este é o grupo proprietário
# de /var/log/.
su root adm

# mantém 4 semanas de logs antigos
rotate 4

# cria novos arquivos de log (vazios) após rotacionar os antigos
create

# usa a data como sufixo do arquivo rotacionado
#dateext

# descomente esta linha se quiser que seus arquivos de log sejam compactados
#compress

# pacotes colocam informações de rotação de logs neste diretório
include /etc/logrotate.d

# logs específicos do sistema também podem ser configurados aqui.
  • weekly: indica que os arquivos de log devem ser criados semanalmente.

  • rotate 4: garante a manutenção de quatro versões antigas do arquivo. Se esta opção não for usada, os arquivos antigos são deletados.

  • create: o arquivo antigo é salvo com um novo nome e um novo arquivo é criado.

  • compress: compacta os arquivos de logs antigos.

  • include: adiciona ao arquivo de configuração a configuração de arquivos e pastas especificados. Por padrão, inclui o conteúdo do diretório /etc/logrotate.d. Neste diretório existem arquivos que definem como tratar alguns arquivos de logs específicos.

O diretório /etc/logrotate.d contém configurações de gerenciamento de logs específicas para vários serviços. Por exemplo:

programicio@Programicio:~$ ls -l /etc/logrotate.d
total 68
-rw-r--r-- 1 root root 120 Jul  7  2023 alternatives
-rw-r--r-- 1 root root 397 Jul 21  2023 apache2
-rw-r--r-- 1 root root 126 Oct  9 16:45 apport
-rw-r--r-- 1 root root 173 Aug  2  2023 apt
-rw-r--r-- 1 root root  91 Mar 24  2023 bootlog
-rw-r--r-- 1 root root 130 Oct 14  2019 btmp
-rw-r--r-- 1 root root 181 Mar 26  2023 cups-daemon
-rw-r--r-- 1 root root 112 Jul  7  2023 dpkg
-rw-r--r-- 1 root root  94 Aug 18  2022 ppp
-rw-r--r-- 1 root root 248 Sep  4  2023 rsyslog
-rw-r--r-- 1 root root 132 Sep 10  2020 sane-utils
-rw-r--r-- 1 root root 174 May 18  2022 sssd-common
-rw-r--r-- 1 root root 209 May 16  2023 ufw
-rw-r--r-- 1 root root 145 Oct 14  2019 wtmp

Por exemplo, vejamos o arquivo /etc/logrotate.d/rsyslog, que define a configuração para os logs do serviço rsyslog:

/var/log/syslog
/var/log/mail.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/cron.log
{
    rotate 4
    weekly
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

Aqui vemos que as regras de rotação de logs são definidas para um conjunto de arquivos. As opções utilizadas incluem weekly e rotate 4, além de outras específicas:

  • notifempty: não rotaciona o arquivo de log se estiver vazio.

  • missingok: se o arquivo de log não existir, passa para o próximo sem gerar mensagem de erro.

  • postrotate: define comandos que devem ser executados após o logrotate processar o arquivo.

  • endscript: define o fim do bloco de comandos.

É importante notar que é possível criar arquivos logrotate para arquivos que não são arquivos de log e configurá-los da mesma forma para rotação.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com