Visão geral dos logs de banco de dados do Aurora MySQL - Amazon Aurora

Visão geral dos logs de banco de dados do Aurora MySQL

Você pode monitorar os seguintes tipos de arquivos de log do Aurora MySQL:

  • Log de erros

  • Log de consultas lentas

  • Log geral

  • Log de auditoria

O log de erros do Aurora MySQL é gerado por padrão. Você pode gerar a consulta lenta e os logs gerais definindo parâmetros no seu grupo de parâmetros do banco de dados.

Logs de erro do Aurora MySQL

O Aurora MySQL grava erros no arquivo mysql-error.log. Cada arquivo de log tem a hora em que foi gerado (em UTC) anexada ao seu nome. Os arquivos de log também possuem um carimbo de data/hora que ajuda você a determinar quando as entradas de log foram gravadas.

O Aurora MySQL grava no log de erros apenas na inicialização, no desligamento e quando encontra erros. Uma instância de banco de dados pode passar horas ou dias sem novas entradas gravadas no log de erros. Se você não vir nenhuma entrada recente, é porque o servidor não encontrou nenhum erro que tenha gerado uma entrada de log.

Por padrão, os logs de erros são filtrados para que apenas eventos inesperados, como erros, sejam exibidos. No entanto, os logs de erros também contêm algumas informações adicionais do banco de dados, por exemplo, o andamento da consulta, que não são mostradas. Portanto, mesmo sem erros reais, o tamanho dos logs de erros pode aumentar devido às atividades em andamento do banco de dados. Embora você possa ver determinado tamanho em bytes ou quilobytes para os logs de erros no AWS Management Console, eles poderão ter 0 byte quando você fizer download deles.

O Aurora MySQL grava o mysql-error.log no disco a cada cinco minutos. Ele acrescenta o conteúdo do log ao mysql-error-running.log.

O Aurora MySQL alterna o arquivo mysql-error-running.log de hora em hora.

nota

Observe que o período de retenção é diferente entre o Amazon RDS e o Aurora.

Logs gerais e de consultas lentas do Aurora MySQL

É possível gravar o log de consultas lentas e o log geral do Aurora MySQL em um arquivo ou em uma tabela de banco de dados. Para isso, defina parâmetros em seu grupo de parâmetros de banco de dados. Para obter informações sobre como criar e modificar um grupo de parâmetros de banco de dados, consulte Trabalhar com grupos de parâmetros. Você deve definir esses parâmetros antes de visualizar o log de consultas lentas ou o log geral no console do Amazon RDS ou usando a API do Amazon RDS, a CLI do Amazon RDS ou os SDKs da AWS.

Você pode controlar o registro em log do Aurora MySQL usando os parâmetros nesta lista:

  • slow_query_log: para criar o log de consultas lentas, defina como 1. O padrão é 0.

  • general_log: para criar o log geral, defina como 1. O padrão é 0.

  • long_query_time: para evitar que as consultas de execução rápida sejam registradas no log de consultas lentas, especifique um valor para o tempo de execução de consultas mais curto a ser registrado, em segundos. O padrão é 10 segundos; o mínimo é 0. Se log_output = FILE, você poderá especificar um valor de ponto flutuante com resolução por microssegundo. Se log_output = TABLE, você deverá especificar um valor inteiro com a segunda resolução. Apenas as consultas cujo tempo de execução excede o valor long_query_time são registradas em log. Por exemplo, definir long_query_time como 0.1 impede que qualquer consulta que seja executada por menos de 100 milissegundos seja registrada.

  • log_queries_not_using_indexes: para registrar todas as consultas que não usam um índice no log de consultas lentas, defina como 1. As consultas que não usam um índice são registradas, mesmo que seu tempo de execução seja inferior ao valor do parâmetro long_query_time. O padrão é 0.

  • log_output option: você pode especificar uma das seguintes opções para o parâmetro log_output.

    • TABLE : grava consultas gerais na tabela mysql.general_log e consultas lentas na tabela mysql.slow_log.

    • FILE: grave logs de consultas gerais e lentas no sistema de arquivos.

    • NONE: desabilite o registro em log.

    Para o Aurora MySQL versão 2, o padrão de log_output é FILE.

Para obter mais informações sobre os log de consultas gerais e de consultas lentas, acesse os seguintes tópicos na documentação do MySQL:

Log de auditoria do Aurora MySQL

O registro em log de auditoria do Aurora MySQL é chamado de Auditoria avançada. Para ativar a Auditoria avançada, defina determinados parâmetros de cluster de banco de dados. Para obter mais informações, consulte Como utilizar a auditoria avançada em um cluster de banco de dados do Amazon Aurora MySQL.

Alternância e retenção de logs do Aurora MySQL

Quando o registro em log está ativado, o Amazon Aurora alterna ou exclui os arquivos de log em intervalos regulares. Essa medida é uma precaução para reduzir a possibilidade de um arquivo de log grande bloquear o uso do banco de dados ou afetar o desempenho. O Aurora MySQL lida com a alternância e a exclusão da seguinte forma:

  • Os tamanhos dos arquivos de log de erros do Aurora MySQL são limitados a 15% do armazenamento local para uma instância de banco de dados. Para manter esse limite, os logs são alternados automaticamente a cada hora. O Aurora MySQL remove logs após 30 dias ou quando 15% do espaço em disco são atingidos. Se o tamanho do arquivo de log combinado exceder o limite após a remoção dos arquivos de log antigos, os arquivos de log mais antigos serão excluídos até o tamanho do arquivo de log deixar de exceder esse limite.

  • O Aurora MySQL removerá os logs de auditoria, gerais e de consulta lenta após 24 horas ou quando 15% do armazenamento tiver sido usado.

  • Quando o registro em log FILE está ativado, os arquivos de log geral e de consulta lenta são examinados a cada hora, e os arquivos de log com mais de 24 horas são excluídos. Em alguns casos, o tamanho do arquivo de log combinado restante após a exclusão pode exceder o limite de 15% do espaço local da instância de um banco de dados. Nesses casos, os arquivos de log mais antigos serão excluídos até que o tamanho do arquivo de log não exceda o limite.

  • Quando o registro em log de TABLE está ativado, as tabelas de log não são alternadas nem excluídas. As tabelas de log são truncadas quando o tamanho de todos os logs combinados é grande demais. Você pode assinar o evento low_free_storage para ser notificado quando for necessário alternar ou excluir manualmente tabelas de logs para liberar espaço. Para obter mais informações, consulte Trabalhar com a notificação de eventos do Amazon RDS.

    Você pode alternar a tabela mysql.general_log chamando o procedimento mysql.rds_rotate_general_log. Você pode rotacionar a tabela mysql.slow_log chamando o procedimento mysql.rds_rotate_slow_log.

    Quando você alterna as tabelas de logs manualmente, a tabela de logs atual é copiada em uma tabela de logs de backup, e as entradas na tabela de logs atual são removidas. Se a tabela de log de backup já existir, então ela será excluída antes que a tabela de log atual seja copiada ao backup. Você pode consultar a tabela de log de backup, se necessário. A tabela de log de backup para a tabela mysql.general_log é denominada mysql.general_log_backup. A tabela de log de backup para a tabela mysql.slow_log é denominada mysql.slow_log_backup.

  • Os logs de auditoria do Aurora MySQL são alternados quando o tamanho do arquivo atinge 100 MB e são removidos após 24 horas.

Para trabalhar com os logs no console do Amazon RDS, na API do Amazon RDS, na CLI do Amazon RDS ou nos SDKs da AWS, defina o parâmetro log_output como FILE. Como o log de erros do Aurora MySQL, esses arquivos de log são alternados por hora. Os arquivos de log que foram gerados durante as 24 horas anteriores são retidos. Observe que o período de retenção é diferente entre o Amazon RDS e o Aurora.