Logs de banco de dados - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Logs de banco de dados

Os bancos de dados MySQL e MariaDB geram logs que você pode acessar para auditoria e solução de problemas. Esses logs são:

  • Auditoria: a trilha de auditoria é um conjunto de registros que documentam a atividade do servidor. Para cada sessão do cliente, ele registra quem se conectou ao servidor (nome de usuário e host), quais consultas foram executadas, quais tabelas foram acessadas e quais variáveis do servidor foram alteradas.

  • Erro: este log contém os horários de inicialização e desligamento do servidor (mysqld) e mensagens de diagnóstico, como erros, avisos e observações que ocorrem durante a inicialização e o desligamento do servidor e enquanto o servidor está em execução.

  • Geral: este log registra a atividade de mysqld, incluindo a atividade de conexão e desconexão de cada cliente e as consultas SQL recebidas dos clientes. O log geral de consultas pode ser muito útil quando você suspeita de um erro e quer saber exatamente o que o cliente enviou para o mysqld.

  • Consulta lenta: este log fornece um registro das consultas SQL que demoraram muito para serem executadas.

Como prática recomendada, você deve publicar logs de banco de dados do Amazon RDS no Amazon CloudWatch Logs. Com o CloudWatch Logs, é possível executar uma análise em tempo real dos dados em log, armazenar os dados em um armazenamento de alta durabilidade e gerenciar os dados com o agente do CloudWatch Logs. Você pode acessar e monitorar os logs do seu banco de dados no console do Amazon RDS. Você também pode usar o CloudWatch Logs Insights para pesquisar e analisar dados de log de forma interativa no CloudWatch Logs. O exemplo a seguir ilustra uma consulta no log de auditoria que verifica quantas vezes os eventos CONNECT aparecem no log, quem se conectou e de qual cliente (endereço IP) eles se conectaram. O trecho do log de auditoria seria o seguinte:

20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,CONNECT,,,0,SOCKET 20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,DISCONNECT,,,0,SOCKET 20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,CONNECT,,,0,SOCKET 20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,DISCONNECT,,,0,SOCKET 20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,CONNECT,,,0,SOCKET 20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,DISCONNECT,,,0,SOCKET 20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,CONNECT,,,0,SOCKET 20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,DISCONNECT,,,0,SOCKET

O exemplo de consulta do Log Insights mostra que rdsadmin se conectou ao banco de dados no localhost a cada cinco minutos, totalizando 22 vezes, conforme mostrado na ilustração a seguir. Esses resultados indicam que a atividade se originou de processos internos do Amazon RDS, como o próprio sistema de monitoramento.

Relatório do Log Insights

Os eventos de logs frequentemente incluem mensagens importantes que você deseja contabilizar, como avisos ou erros sobre operações associadas às instâncias de banco de dados MySQL e MariaDB. Por exemplo, se uma operação falhar, um erro poderá ocorrer e ser registrado no arquivo de logs de erros da seguinte forma: ERROR 1114 (HY000): The table zip_codes is full. É possível monitorar essas entradas para entender a tendência dos erros. Você pode criar métricas personalizadas do CloudWatch dos logs do Amazon RDS usando filtros para permitir o monitoramento automático dos logs do banco de dados do Amazon RDS para monitorar um log específico de padrões específicos e gerar um alarme se houver violações do comportamento esperado. Por exemplo, crie um filtro de métrica para o grupo de logs /aws/rds/instance/database-1/error que monitore o log de erros e busque o padrão específico, como ERROR. Defina o Padrão de filtro como ERROR e o Valor da métrica como 1. O filtro detectará cada registro de log que tenha a palavra-chave ERROR e incrementará a contagem em 1 para cada evento de log que contenha “ERROR”. Depois de criar o filtro, você pode definir um alarme para notificar você caso sejam detectados erros no log de erros do MySQL ou do MariaDB.

Para saber mais sobre como monitorar o log de consultas lentas e o log de erros criando um painel do CloudWatch e usando o CloudWatch Logs Insights, consulte a publicação no blog Creating an Amazon CloudWatch dashboard to monitor Amazon RDS and Amazon Aurora MySQL.