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
logrotate
O serviço logrotate
/etc/logrotate.conf
logrotate
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.
: indica que os arquivos de log devem ser criados semanalmente.weekly
: 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.rotate 4
: o arquivo antigo é salvo com um novo nome e um novo arquivo é criado.create
: compacta os arquivos de logs antigos.compress
: adiciona ao arquivo de configuração a configuração de arquivos e pastas especificados. Por padrão, inclui o conteúdo do diretórioinclude
. Neste diretório existem arquivos que definem como tratar alguns arquivos de logs específicos./etc/logrotate.d
O diretório /etc/logrotate.d
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
/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
rotate 4
: não rotaciona o arquivo de log se estiver vazio.notifempty
: se o arquivo de log não existir, passa para o próximo sem gerar mensagem de erro.missingok
: define comandos que devem ser executados após opostrotate
processar o arquivo.logrotate
: define o fim do bloco de comandos.endscript
É importante notar que é possível criar arquivos logrotate