Logs do MariaDB oferecem recursos abran­gen­tes que ajudam você a monitorar e otimizar suas ins­tân­cias de banco de dados. Apre­sen­ta­mos os di­fe­ren­tes tipos de MariaDB logs e ensinamos como configurá-los e ativá-los.

Quais tipos de MariaDB logs existem?

O MariaDB dis­po­ni­bi­liza quatro tipos prin­ci­pais de log, que registram di­fe­ren­tes aspectos do fun­ci­o­na­mento do banco de dados:

Error log

O log de erros documenta eventos críticos, como ini­ci­a­li­za­ções e des­li­ga­men­tos do servidor, falhas ou outros erros graves. Ele vem ativado por padrão e auxilia no di­ag­nós­tico de problemas no servidor.

General query log

O log geral do MariaDB registra todas as conexões ao servidor e todos os comandos SQL exe­cu­ta­dos. Por isso, é útil para análise de erros e mo­ni­to­ra­mento das ati­vi­da­des dos usuários.

Binary log

O log binário do MariaDB registra todas as al­te­ra­ções no banco de dados, incluindo al­te­ra­ções em dados e na estrutura do banco de dados. Ele é essencial para re­pli­ca­ções e res­tau­ra­ções com base em um ponto no tempo (point-in-time recovery).

Slow query log

O log de consultas lentas do MariaDB lista as consultas SQL que excedem um de­ter­mi­nado tempo de execução. Ele é uma fer­ra­menta valiosa para iden­ti­fi­car e otimizar gargalos de de­sem­pe­nho.

Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

Passo a passo: Como con­fi­gu­rar e usar MariaDB logs

A seguir, mostramos como ativar, con­fi­gu­rar e analisar os quatro prin­ci­pais arquivos de log do MariaDB. Vamos abordar o log de erros, o log geral, o log binário, o log de consultas lentas e mostrar onde os logs do MariaDB ficam ar­ma­ze­na­dos.

Pré-re­qui­si­tos

  • Um servidor com uma versão atual do Ubuntu ou outra dis­tri­bui­ção Linux
  • Uma conta de usuário com per­mis­sões de sudo
  • Nenhuma ins­ta­la­ção paralela do MySQL, já que o MySQL e o MariaDB entram em conflito em arquivos de con­fi­gu­ra­ção e portas
  • Co­nhe­ci­men­tos básicos em SQL

Passo 1: Exibir e con­fi­gu­rar o error log

Pri­mei­ra­mente, instale o MariaDB, caso ele não esteja instalado. Para isso, execute o seguinte comando:

sudo apt update
sudo apt install mariadb-server
bash

O comando atualiza primeiro a lista de pacotes do seu sistema e, em seguida, instala o servidor MariaDB.

Para se conectar ao MariaDB, execute o seguinte comando:

sudo mariadb
bash

Isso abrirá o console in­te­ra­tivo SQL como ad­mi­nis­tra­dor.

Na etapa seguinte, verifique para onde o MariaDB está re­gis­trando mensagens como erros. Para isso, use esta instrução SQL:

SHOW VARIABLES LIKE '%log_error%';
sql

Se o valor de log_error estiver vazio, os erros serão re­gis­tra­dos por padrão no log central do sistema (syslog).

Para vi­su­a­li­zar esse log, utilize o seguinte comando:

journalctl -u mariadb.service
bash

Com isso, você obterá uma lista cro­no­ló­gica das mensagens do sistema geradas pelo serviço MariaDB. Isso é útil para in­ves­ti­gar erros de ini­ci­a­li­za­ção ou outros eventos críticos.

Se preferir usar um arquivo próprio de log de erros, será ne­ces­sá­rio editar o arquivo de con­fi­gu­ra­ção. Abra-o com um editor de texto, como o nano:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Procure pela seção [mysqld] e adicione a seguinte linha ou remova o co­men­tá­rio dela, se já estiver presente:

log_error = /var/log/mariadb/error.log
txt

Agora, verifique se o diretório es­pe­ci­fi­cado existe e tem as per­mis­sões corretas. Execute estes comandos:

sudo mkdir /var/log/mariadb
sudo chown mysql:mysql /var/log/mariadb
bash

Esses comandos criam o diretório e atribuem a ele o usuário e grupo mysql, para que o MariaDB tenha permissão de escrita no local do log.

Em seguida, reinicie o serviço MariaDB para aplicar as al­te­ra­ções de con­fi­gu­ra­ção:

sudo systemctl restart mariadb
bash

Por fim, você poderá vi­su­a­li­zar o log de erros:

sudo cat /var/log/mariadb/error.log
bash

Lá você en­con­trará in­for­ma­ções sobre horários de ini­ci­a­li­za­ção, avisos ou problemas com plugins.

Passo 2: Ativar o general query log

Para verificar o status atual, abra o console SQL e execute o seguinte comando:

SHOW VARIABLES LIKE '%general%';
sql

Lá você verá se o general query log está ativo (general_log = ON) e onde ele está ar­ma­ze­nado (general_log_file).

Para ativar esses logs do MariaDB per­ma­nen­te­mente, edite novamente o arquivo de con­fi­gu­ra­ção:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Adicione as seguintes linhas na seção [mysqld]:

general_log = 1
general_log_file = /var/log/mariadb/general-query.log
ini

Depois, reinicie o serviço:

sudo systemctl restart mariadb
bash

Para vi­su­a­li­zar as entradas re­gis­tra­das, use:

sudo cat /var/log/mariadb/general-query.log
bash

Lá você en­con­trará todas as consultas SQL e conexões ao banco, incluindo o carimbo de data e hora. Isso ajuda a iden­ti­fi­car quando cada so­li­ci­ta­ção foi feita.

Passo 3: Ativar o binary log

Para con­fi­gu­rar o binary log, edite novamente o arquivo de con­fi­gu­ra­ção usado an­te­ri­or­mente:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Adicione os seguintes pa­râ­me­tros na seção [mysqld]:

log_bin = /var/log/mariadb/binary.log
server_id = 1
binlog_format = ROW
txt

O server_id é im­por­tante para re­pli­ca­ção (cada servidor precisa de um ID único). Com binlog_format = ROW, cada alteração nos dados é re­gis­trada no log de forma detalhada, linha por linha.

Reinicie o servidor:

sudo systemctl restart mariadb
bash

Para verificar se o binary log está ativo, digite no console SQL:

SHOW BINARY LOGS;
sql

Serão exibidos os arquivos de log binário ativos, com nome e tamanho.

Para ler o conteúdo de um arquivo, use o seguinte comando:

sudo mysqlbinlog /var/log/mariadb/binary.000001
bash

Você verá todas as operações de alteração listadas em ordem cro­no­ló­gica.

Passo 4: Ativar o slow query log

Edite o arquivo de con­fi­gu­ra­ção:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Adicione o seguinte:

slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow-query.log
long_query_time = 10
txt

Aqui, long_query_time = 10 significa que todas as consultas que demorarem mais de dez segundos serão re­gis­tra­das.

Depois, reinicie o serviço:

sudo systemctl restart mariadb
bash

Verifique se o log está ativo:

SHOW VARIABLES LIKE '%slow_query_log%';
sql

Execute uma consulta de teste que é in­ten­ci­o­nal­mente lenta:

SELECT SLEEP(12);
sql

Esse comando instrui o servidor a aguardar doze segundos antes de concluir a execução. Assim, a consulta deverá aparecer no slow query log.

Por fim, você pode vi­su­a­li­zar o log com:

sudo cat /var/log/mariadb/slow-query.log
bash

Lá você en­con­trará o carimbo de data/hora, o tempo da consulta e o comando SQL executado.

Para saber mais sobre análises de arquivos de log, acesse o artigo es­pe­ci­a­li­zado do nosso Digital Guide.

Ir para o menu principal