Skip to content

Another Boring Tech Blog

Menu
  • Start
  • About Me
Menu

[PT-BR] Rotacionando os logs de erro e consultas lentas do MySQL com logrotate

Posted on October 2, 2023 by Vinicius Grippa

Banco de dados geram toneladas de logs, e é essencial gerenciá-los corretamente. Os logs ajudam os DBAs a entender o que está acontecendo nos bastidores, rastrear erros e otimizar o desempenho de consultas lentas. No entanto, esses logs podem se tornar um problema ao longo do tempo, especialmente se consumirem muito espaço em disco e não forem gerenciados adequadamente.

Por que rotacionar logs?

Os logs são como o diário de um sistema; eles acompanham tudo. Os logs podem crescer bastante com o tempo e se tornar um problema para o espaço em disco (especialmente ao usar um log_error_verbosity maior ou um long_query_time mais baixo). Sem falar que, fazer uma pesquisa em um arquivo de logs enorme pode ser uma tarefa tediosa. É por isso que rotacionar os logs se torna essencial, especialmente em bancos de dados como o MySQL.

Configurando o logrotate

Embora o MySQL cuide de alguns de seus logs, certos logs, como os de erro e consultas lentas, não são rotacionados automaticamente. Felizmente, na maioria das distribuições Linux, existe uma ferramenta chamada logrotate projetada especificamente para essa tarefa.

Configurar o logrotate para o MySQL é relativamente simples. Aqui está um guia passo a passo:

  1. Crie um Arquivo de Configuração: Crie um arquivo de configuração específico para o MySQL. Use o comando:

1
$ sudo vi /etc/logrotate.d/mysql

  1. Adicione o Conteúdo de Configuração: Dentro deste arquivo, adicione o seguinte conteúdo:

1
2
3
4
5
6
7
8
9
10
11
12
13
/var/log/mysql/mysql_error.log /var/log/mysql/slow_query.log {
compress
create 660 mysql mysql
size 1G
dateext
missingok
notifempty
sharedscripts
postrotate
    /usr/bin/mysql -e 'FLUSH SLOW LOGS; FLUSH ERROR LOGS;'
endscript
rotate 30
}

Nota: Certifique-se de atualizar os nomes dos logs de erro do MySQL e de consultas lentas na primeira linha de acordo com a configuração do seu servidor. Você pode verificar seus caminhos de logs com a consulta:

1
SELECT @@global.log_error, @@global.slow_query_log_file;

  1. Entendendo a Configuração:
  • compress: Comprime os logs rotacionados para economizar espaço.
  • create 660 mysql mysql: Garante que os novos arquivos de logs tenham as permissões e propriedade corretas.
  • size 1G: Rotaciona o log uma vez que ele atinja 1 Gigabyte em tamanho.
  • dateext: Adiciona uma extensão de data ao nome do arquivo de log rotacionado.
  • notifempty: Não rotacione o arquivo de log se ele estiver vazio.
  • missingok: Se o arquivo de log estiver faltando, passe para o próximo passo sem emitir uma mensagem de erro.
  • sharedscripts: informa ao logrotate para verificar todos os logs antes de executar o script postrotate. O script é executado apenas uma vez se um ou ambos os logs forem rotacionados. Se nenhum dos logs for rotacionado, o script postrotate não é executado.
  • postrotate: Comandos para executar após a rotação do log.
  • rotate 30: Mantém 30 arquivos de logs rotacionados antes de excluir o mais antigo.
  1. Ative e Teste: Depois de salvar e fechar o arquivo de configuração, o logrotate irá pegá-lo automaticamente durante sua próxima execução. Você também pode forçar uma execução para testar sua configuração:

1
$ logrotate --force /etc/logrotate.d/mysql

  1. Leitura Adicional: Como todas as ferramentas, há muito mais no logrotate do que a configuração básica. A documentação oferece um mergulho profundo: [Documentação do Logrotate]

Em conclusão, embora os logs sejam inestimáveis para manter e solucionar problemas dos sistemas, gerenciá-los eficientemente garante que seus sistemas funcionem sem problemas. O logrotate oferece uma solução prática para manter seus logs do MySQL em ordem.

Post navigation

← How to Rotate MySQL Slow and Error Logs Using Logrotate
MySQL Brazil Meetup 2023 – Informações do Evento e Agenda →

1 thought on “[PT-BR] Rotacionando os logs de erro e consultas lentas do MySQL com logrotate”

  1. tamiris says:
    October 4, 2023 at 12:14 pm

    Show, parabéns pelo artigo bem explicativo e de fácil entendimento.

Comments are closed.

© 2025 Another Boring Tech Blog | Powered by Minimalist Blog WordPress Theme