Geração de registros do Cloud SQL

Nesta página, você saberá como encontrar e usar o Cloud Logging para visualizar e consultar registros da instância do Cloud SQL.

O Cloud SQL usa o Cloud Logging. Consulte a documentação do Cloud Logging para informações completas e confira as consultas de amostra do Cloud SQL.

Como ver registros

É possível ver as consultas SQL executadas na instância do banco de dados, incluindo as consultas SQL executadas diretamente pelos usuários finais, no arquivo de registro geral ativando a sinalização general_log e definindo a sinalização log_output como FILE.

Para ver os registros das entradas de registro da instância do Cloud SQL, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página do Cloud Logging.

    Acessar o Cloud Logging

  2. Selecione um projeto do Cloud SQL na parte superior da página.
  3. No criador de consultas, adicione o seguinte:
    • Recurso: selecione Banco de dados do Cloud SQL. Na caixa de diálogo, selecione uma instância do Cloud SQL.
    • Nomes de registro: vá até a seção do Cloud SQL e selecione os arquivos de registro apropriados para sua instância. Exemplo:
      • cloudsql.googleapis.com/mysql-general.log
      • cloudsql.googleapis.com/mysql.err
    • Gravidade: selecione um nível de registro.
    • Período: selecione um valor predefinido ou crie um período personalizado.

gcloud

Use o comando gcloud logging para visualizar as entradas de registro. No exemplo abaixo, substitua PROJECT_ID. A sinalização limit é um parâmetro opcional que indica o número máximo de entradas a serem retornadas.

gcloud logging read "resource.type=cloudsql_database" \
--project=PROJECT-ID \
--limit=10 \
--format=json

Ver registro de operações da instância

É possível ver os registros de uma instância no painel Operações. O painel Operações registra cada operação realizada na instância com as seguintes informações:

  • o horário em que a operação foi concluída, no fuso horário local
  • O tipo de operação
  • O status da operação
  • Uma mensagem descrevendo o resultado da operação

Se houver falha na operação, será possível usar a mensagem para resolver o problema.

Para ver um registro de operações de instâncias:

  1. No Console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Clique em Operações para mostrar o painel com o registro de operações.
Observação: o registro de operações não inclui operações realizadas com ferramentas de gestão externas, como o cliente mysql. Nesse registro, somente aparecem as operações de gerenciamento de usuários e alteração de senha realizadas com o Console do Google Cloud, a ferramenta de linha de comando gcloud ou a API Cloud SQL Admin.

Como exibir registros do aplicativo

Os aplicativos que se conectam ao Cloud SQL armazenam os registros em locais diferentes.

App Engine (ambiente flexível)

Em Compute > App Engine > Serviços:

  • Na lista de serviços, encontre seu serviço.
  • Clique no menu suspenso Ferramentas.
  • Selecione registros

Na seção Operações > Geração de registros > Explorador de registros do Console do Google Cloud, use a seguinte consulta:

resource.type="gae_app"
resource.labels.module_id="default"

Cloud Run

Veja os registros na seção Explorador de registros do Cloud Run no Console do Google Cloud. O Cloud Run informa apenas mensagens de erro do proxy de autenticação do Cloud SQL. Use uma consulta como esta:

resource.type="cloud_run_revision"
resource.labels.service_name="$SERVICE_NAME"
resource.labels.revision_name="$REVISION_NAME"

Proxy do Cloud SQL Auth

Em Operações > Geração de registros > Explorador de registros, use a seguinte consulta:

log_id("appengine.googleapis.com/cloud_sql_proxy")

Solução de problemas

Problema Solução de problemas
A geração de registros está usando CPU e memória demais na instância do Cloud SQL. A geração de registros precisa ser ajustada.

A sinalização log_statement pode ser definida como nenhuma e a sinalização logging_collector pode ser desativada. Se a geração de registros ainda estiver ocorrendo, talvez haja outras sinalizações relacionadas a registros que podem ser ajustadas. É possível editar a instância para modificar essas sinalizações.

Registros de auditoria não encontrados. Os registros de acesso a dados só são gravados se a operação for uma chamada de API autenticada pelo usuário que cria, modifica ou lê dados criados pelo usuário ou se a operação acessar arquivos de configuração ou metadados de recursos.
Informações de operações não encontradas nos registros. Você quer encontrar mais informações sobre uma operação.

Por exemplo, um usuário foi excluído, mas não é possível descobrir quem fez isso. Os registros mostram que a operação foi iniciada, mas não fornecem mais informações. Você precisa ativar o registro de auditoria para que informações de identificação pessoal (PII, na sigla em inglês) e detalhadas sejam registradas.

A geração de registros está usando muito espaço em disco. Há três tipos de arquivos de registros que usam espaço em disco: refazer, gerais e binários.

Conecte-se ao banco de dados e execute estes comandos para ver detalhes sobre cada tipo:


SHOW VARIABLES LIKE 'innodb_log_file%';

SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2),2)
AS GB from mysql.general_log;

SHOW BINARY LOGS;
    
Os arquivos de registros são difíceis de ler. Você preferiria ver os registros como json ou texto. É possível usar o comando gcloud logging read junto com os comandos de pós-processamento do Linux para fazer o download dos registros.

Para fazer o download dos registros como JSON:


gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d" \
> downloaded-log.json
    

Para fazer o download dos registros como TEXT:


gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format text \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
> downloaded-log.txt