Articles

Configurando o Logrotate no RedHat Linux

Posted on

Logrotate é um utilitário concebido para administradores que gerem servidores que produzem um grande volume de ficheiros de registo para os ajudar a poupar algum espaço em disco, bem como para evitar um risco potencial de tornar um sistema não responsivo devido à falta de espaço em disco. Normalmente, uma solução para evitar este tipo de problema é configurar uma partição separada ou volume lógico para um ponto de montagem /var. Contudo, o logrotate também pode ser uma solução viável para este problema, especialmente se for demasiado tarde para mover todos os logs sob partição diferente. Neste artigo falaremos sobre a utilização e configuração do logrotate no servidor RedHat / CentOS Linux.

O que é Logrotate

Logrotate permite a um administrador de sistema rodar e arquivar sistematicamente quaisquer ficheiros de log produzidos pelo sistema, reduzindo assim a necessidade de espaço em disco de um sistema operativo. Por defeito, o Logrotate é invocado uma vez por dia utilizando um cron scheduler de localização /etc/cron.daily/

# ls /etc/cron.daily/
cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch

Configurando o Logrotate

A configuração do Logrotate é feita editando dois ficheiros de configuração separados:

  • /etc/logrotate.conf
  • ficheiros de configuração específicos do serviço armazenados em /etc/logrotate.d/.

O ficheiro principal logrotate.conf contém uma configuração genérica. Aqui está um ficheiro de configuração padrão logrotate logrotate.conf:

 1 weekly 2 rotate 4 3 create 4 dateext 5 include /etc/logrotate.d 6 /var/log/wtmp { 7 monthly 8 create 0664 root utmp 9 minsize 1M 10 rotate 1 11 }
  • Linha 1 – opção de configuração semanal assegura uma rotação semanal de todos os ficheiros log definidos no ficheiro de configuração principal e no directório /etc/logrotate.d/.
  • Linha 2 – rotação 4 assegura que logrotate mantém uma cópia de segurança de 4 semanas de todos os ficheiros de logLinha 3 – criar opção instrui logrotate a criar novos ficheiros de log vazios após cada rotaçãoLinha 4 – dataextra acrescenta uma extensão a todos os ficheiros de log rodados sob a forma de data em que cada ficheiro de log em particular foi processado por logrotate

  • Linha 5 – inclui todas as outras configurações do directório /etc/logrotate.d
  • Linha 6 – 11 contém uma configuração de rotação de serviço específico de log

As opposed to logrotate.conf a directory /etc/logrotate.d/ contém um ficheiro de configuração de serviço específico utilizado por logrotate. Na secção seguinte iremos criar um exemplo de configuração de logrotate.

SUBSCRIBE NEWSLETTER & RSS
Subscrever a RSS e NEWSLETTER e receber as últimas notícias Linux, empregos, conselhos de carreira e tutoriais.

Incluindo novos registos de serviço para logrotate

Nesta secção iremos adicionar um novo ficheiro de registo numa configuração de logrotate. Digamos que temos um ficheiro de log chamado:

/var/log/linuxcareer.log

sitting no nosso directório /var/log que precisa de ser rodado diariamente. Primeiro precisamos de criar um novo ficheiro de configuração logrotate para acomodar para o nosso novo ficheiro log:

$ vi /etc/logrotate.d/linuxcareer

Inserir um texto seguinte em /etc/logrotate.d/linuxcareer:

/var/log/linuxcareer.log {
missingok
notifempty
compress
size 20k
daily
create 0600 root root
}

Aqui está uma explicação linha a linha do ficheiro de configuração de logrotate acima mencionado:

TIP: Se desejar incluir vários ficheiros de log num único ficheiro de configuração utilize um wildcard. Por exemplo /var/log/mylogs/*.log instruirá o logrotate para rodar todos os ficheiros de log localizados em /var/log/mylogs/ com extensão .log.

  • missingok – não emitir erro se o ficheiro log estiver em falta
  • notifempty – não rodar ficheiro log se estiver vazio
  • compress – versões antigas de ficheiros log são comprimidas com gzip(1) por defeito
  • tamanho – O ficheiro de log só é rodado se crescer mais de 20k
  • diariamente – assegura a rotação diária
  • criar – cria um novo ficheiro de log com permissões 600 onde o proprietário e o grupo é utilizador root

O utilitário logrotate é tão versátil quanto fornece muitas mais opções de configuração. Abaixo, vou listar algumas outras opções de configuração para rotação de log. Para obter uma lista completa, consulte a página do manual do logrotate:

$ man logrotate
  • copy – Faça uma cópia do ficheiro de log, mas não altere o original em absoluto.
  • mail <email@address> – Quando um log é rodado fora de existência, é enviado por correio para endereço.
  • olddir <directório> – Os registos são movidos para <directório> para rotação.
  • postrotate/endscript – As linhas entre postrotate e endcript são executadas após o ficheiro de log ser rodado.

Testar uma nova configuração de Logrotate

Após ter criado um novo ficheiro de configuração de Logrotate dentro de /etc/logrotate.d:

c>criar algum ficheiro de log de amostra ( se não existir ! ):

# echo "rotate my log file" > /var/log/linuxcareer.log

Após o seu ficheiro de log está no lugar forçar o logrotate a rodar todos os logs com -f option.

# logrotate -f /etc/logrotate.conf

Aviso: O comando acima irá rodar todos os seus registos definidos em /etc/logrotate.d directório.

P>Agora visite novamente o seu /var/log/directório e confirme que o seu ficheiro de registo foi rodado e foi criado um novo ficheiro de registo:

Como pode ver o novo ficheiro de registo vazio linuxcareer.log foi criado e o antigo ficheiro linuxcareer.log foi comprimido com gzip e renomeado com extensão de data.

TIP: Para ver um conteúdo do seu ficheiro de log comprimido não precisa de o descomprimir primeiro. Utilize comandos zcat ou zless que irão descomprimir o seu ficheiro de log on fly.

Conclusion

Como já foi mencionado anteriormente, a melhor maneira de evitar que o seu sistema seja entupido por ficheiros log é criar uma partição/volume lógico separado para o seu directório /var/ ou ainda melhor /var/log. Contudo, mesmo assim, o logrotate pode ajudá-lo a poupar algum espaço em disco ao comprimir os seus ficheiros de log. O logrotate pode também ajudá-lo a arquivar os seus ficheiros de log para uma referência futura, criando uma cópia extra ou enviando-lhe por e-mail quaisquer ficheiros de log recentemente rodados. Para mais informações ver a página do manual do logrotate:

$ man logrotate

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *