Introdução

1.1 O que é Logrotate?

O Logrotate é uma ferramenta essencial no gerenciamento de logs em sistemas Unix-like, como o Red Hat Enterprise Linux (RHEL). Ele automatiza o processo de rotação, compressão e remoção de logs, ajudando a manter a integridade e a performance do sistema.

1.2 Importância do Gerenciamento de Logs

A gestão de logs é crucial para o monitoramento, auditoria e resolução de problemas em servidores e aplicações. Logs acumulados sem gerenciamento adequado podem consumir grandes quantidades de espaço em disco, afetando a performance e a estabilidade do sistema.

1.3 Objetivos do Guia

Este guia pretende:

  • Explicar os conceitos fundamentais do Logrotate.
  • Descrever como instalar e configurar o Logrotate no RHEL.
  • Fornecer exemplos práticos para ajudar na implementação.

Conceitos Básicos

2.1 Logs no RHEL: Visão Geral

No RHEL, os arquivos de log são essenciais para a administração do sistema. Eles são armazenados principalmente no diretório /var/log e podem incluir registros do sistema, serviços e aplicações.

2.2 Funcionamento do Logrotate

O Logrotate funciona com base em configurações definidas pelo usuário. Ele checa periodicamente os arquivos de log e aplica ações como rotação, compressão e exclusão, conforme especificado no arquivo de configuração.

2.3 Vantagens do Uso do Logrotate

Utilizar o Logrotate apresenta várias vantagens:

  • Manutenção da performance do sistema.
  • Automatização da limpeza de logs antigos.
  • Facilidade de configuração e uso.

Configuração Inicial

3.1 Instalando o Logrotate

No RHEL, o Logrotate geralmente já está instalado por padrão. Você pode verificar isso usando o seguinte comando:

rpm -q logrotate

Se não estiver instalado, você pode instalá-lo com:

sudo yum install logrotate

3.2 Verificando a Instalação

Para verificar se o Logrotate está instalado corretamente, execute:

logrotate --version

3.3 Localização dos Arquivos de Configuração

Os arquivos de configuração do Logrotate estão localizados em /etc/logrotate.conf e no diretório /etc/logrotate.d/.

Arquivo de Configuração Principal

4.1 Estrutura do Arquivo /etc/logrotate.conf

O arquivo /etc/logrotate.conf define o comportamento global do Logrotate. Um exemplo de configuração básica:

# see "man logrotate" for details
# global options do not affect preceding include directives

weekly
rotate 4
create

include /etc/logrotate.d

4.2 Diretiva include e Arquivos Adicionais

A diretiva include permite que o Logrotate leia configurações adicionais de outros arquivos, como os presentes em /etc/logrotate.d/.

4.3 Parâmetros Comuns e Seus Usos

Alguns parâmetros comuns incluem:

  • weekly: Define a rotação semanal dos logs.
  • rotate: Define o número de arquivos de log antigos a serem mantidos.
  • compress: Comprime arquivos de log durante a rotação.

Configurando Rotação de Logs

5.1 Criando Configurações Básicas

Para criar uma configuração básica de rotação de log, adicione entradas no arquivo de configuração. Exemplo:

/var/log/messages {
    weekly
    rotate 4
    compress
    missingok
    notifempty
}        

5.2 Exemplo de Configuração para Logs de Sistema

Uma configuração típica para logs do sistema pode ser:

/var/log/syslog {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}        

5.3 Configurando Logs de Aplicativos Específicos

Para aplicações específicas, crie um arquivo de configuração em /etc/logrotate.d/. Exemplo para Apache:

/var/log/httpd/*log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        /usr/bin/systemctl reload httpd.service > /dev/null
    endscript
}        

Personalizando a Rotação de Logs

6.1 Definindo Períodos de Rotação: Diária, Semanal, Mensal

Você pode definir a frequência da rotação de logs usando as diretivas daily, weekly e monthly.

6.2 Limitando Tamanho dos Arquivos de Log

Para rotacionar logs com base no tamanho, utilize a diretiva size. Exemplo:

/var/log/myapp.log {
    size 100M
    rotate 5
    compress
    missingok
    notifempty
}     

6.3 Comprimindo Arquivos de Log Antigos

Para reduzir o espaço em disco, use a diretiva compress. Arquivos de log antigos serão comprimidos em gzip.

Automação e Manutenção

7.1 Agendamento de Tarefas com cron

O Logrotate geralmente é executado via cron. Verifique a existência de uma entrada em /etc/cron.daily/logrotate.

7.2 Monitorando a Execução do Logrotate

Para monitorar a execução do Logrotate, confira o arquivo de log /var/log/logrotate ou adicione a opção verbose na configuração.

7.3 Lidando com Erros Comuns

Erros comuns incluem permissões inadequadas e caminhos de arquivo errados. Verifique os logs do Logrotate para detalhes.

Exemplos Práticos e Avançados

8.1 Exemplo: Configurando Logs do Apache

Adicionar o seguinte em /etc/logrotate.d/httpd:

/var/log/httpd/access_log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        /usr/bin/systemctl reload httpd.service > /dev/null
    endscript
}        

8.2 Exemplo: Gerenciamento de Logs do MySQL

Adicione configurações em /etc/logrotate.d/mysql:

/var/log/mysql/mysql.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 640 mysql mysql
    sharedscripts
    postrotate
        /usr/bin/systemctl reload mysql.service > /dev/null
    endscript
}

8.3 Uso de Scripts de Pós-processamento

Scripts de pós-processamento podem ser usados para realizar ações adicionais após a rotação. Exemplo:

/var/log/myapp.log {
    monthly
    rotate 12
    compress
    postrotate
        /usr/local/bin/myscript.sh
    endscript
}      

Dicas Adicionais

9.1 Melhorando a Performance do Logrotate

Utilize a diretiva delaycompress para retardar a compressão dos logs até a próxima rotação.

9.2 Mantendo Arquivos de Log para Auditoria

Defina o número de rotações para um valor alto caso necessite manter logs para auditorias futuras.

9.3 Integração com Ferramentas de Monitoramento

Ferramentas de monitoramento, como o Nagios, podem ser configuradas para alertar sobre falhas na rotação de logs.

Conclusão

10.1 Recapitulando os Principais Pontos

A utilização do Logrotate facilita a gestão de logs, mantendo o sistema saudável e evitando problemas com espaço em disco.

10.2 Próximos Passos para Gerenciamento de Logs

Experimente personalizar suas configurações de Logrotate e integre com outras ferramentas para um gerenciamento de logs mais eficiente.

10.3 Recursos Adicionais e Leituras Recomendadas

Para mais informações e recursos avançados, consulte a documentação oficial do Logrotate e outros tutoriais no BlueHat Tech Blog.

Categorized in: