MariaDB

A integração do MariaDB coleta métricas de desempenho relacionadas ao InnoDB, ao pool de buffers e a várias outras operações. Ele também coleta registros gerais, de erro e de consulta lenta e os analisa em um payload JSON. Os registros de erros são analisados para o código de erro e o subsistema. Os registros de consulta lenta são analisados em pares de chave-valor que descrevem o desempenho de uma consulta, incluindo o tempo e as linhas examinadas.

Para mais informações sobre o MariaDB, consulte a documentação do MariaDB.

Pré-requisitos

Para coletar a telemetria da MariaDB, instale o Agente de operações:

  • Para métricas, instale a versão 2.37.0 ou mais recente.
  • Para registros, instale a versão 2.37.0 ou mais recente.

Esta integração suporta as versões 10.1.X a 10.7.X do MariaDB.

Configurar a instância do MariaDB

MariaDB é uma bifurcação desenvolvida pela comunidade e comercialmente compatível com o sistema de gerenciamento de banco de dados relacional (RDBMS, na sigla em inglês) do MySQL. Para coletar registros e métricas do MariaDB, use os receptores mysql.

Por padrão, o receptor de métricas mysql se conecta a um servidor MariaDB local usando um soquete Unix e a autenticação Unix como usuário root.

O receptor de geração de registros mysql_error coleta registros dos caminhos de arquivo padrão mostrados na tabela a seguir. Em algumas plataformas, o MariaDB registra em journald por padrão, em vez de arquivar. Para configurar o MariaDB para registrar um arquivo, defina a opção log_error na configuração do MariaDB. Para mais informações sobre a configuração do log_error, consulte Como gravar o registro de erros em um arquivo.

Configure o agente de operações para MariaDB

Seguindo o guia para Configurar o agente de operações, adicione os elementos necessários para coletar a telemetria das instâncias do MariaDB e reinicie o agente.

Exemplo de configuração

Os comandos a seguir criam a configuração para coletar e ingerir telemetria para o MariaDB e reinicia o agente de operações.

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    mysql:
      type: mysql
  service:
    pipelines:
      mysql:
        receivers:
        - mysql
logging:
  receivers:
    mysql_error:
      type: mysql_error
    mysql_general:
      type: mysql_general
    mysql_slow:
      type: mysql_slow
  service:
    pipelines:
      mysql:
        receivers:
          - mysql_error
          - mysql_general
          - mysql_slow
EOF

sudo service google-cloud-ops-agent restart
sleep 60

Configurar a coleta de registros

Para ingerir logs do MariaDB, crie um receptor para os logs produzidos pelo MariaDB e, em seguida, crie um pipeline para o novo receptor.

mysql_errorPara configurar um receptor para os registros , especifique os seguintes campos:

Campo Padrão Descrição
exclude_paths Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths.
include_paths [/var/log/mysqld.log, /var/log/mysql/mysqld.log, /var/log/mysql/error.log, /run/mysqld/mysqld.err, /var/lib/mysql/${HOSTNAME}.err] Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada arquivo. Um caractere curinga (*) pode ser usado nos caminhos. por exemplo, /var/log/mysql/*.log.
record_log_file_path false Se definido como true, o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do rótulo agent.googleapis.com/log_file_path. Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado.
type Este valor precisa ser mysql_error.
wildcard_refresh_interval 60s O intervalo em que os caminhos de arquivos curinga no include_paths são atualizados. Dado como uma duração de tempo, por exemplo, 30s ou 2m. Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão.

mysql_generalPara configurar um receptor para os registros , especifique os seguintes campos:

Campo Padrão Descrição
exclude_paths Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths.
include_paths [/var/lib/mysql/${HOSTNAME}.log] Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada arquivo. Um caractere curinga (*) pode ser usado nos caminhos.
record_log_file_path false Se definido como true, o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do identificador agent.googleapis.com/log_file_path. Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado.
type Este valor precisa ser mysql_general.
wildcard_refresh_interval 60s O intervalo em que os caminhos de arquivos curinga no include_paths são atualizados. Dado como uma duração de tempo, por exemplo, 30s ou 2m. Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão.

mysql_slowPara configurar um receptor para os registros , especifique os seguintes campos:

Campo Padrão Descrição
exclude_paths Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths.
include_paths [/var/lib/mysql/${HOSTNAME}-slow.log] Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada arquivo. Um caractere curinga (*) pode ser usado nos caminhos.
record_log_file_path false Se definido como true, o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do identificador agent.googleapis.com/log_file_path. Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado.
type Este valor precisa ser mysql_slow.
wildcard_refresh_interval 60s O intervalo em que os caminhos de arquivos curinga no include_paths são atualizados. Dado como uma duração de tempo, por exemplo, 30s ou 2m. Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão.

O que é registrado

O logName é derivado dos IDs do receptor especificados na configuração. Os campos detalhados dentro de LogEntry são os seguintes.

Os registros mysql_error contêm os seguintes campos no LogEntry:

Campo Tipo Descrição
jsonPayload.errorCode string Código de erro do MySQL associado ao registro
jsonPayload.level string Nível de entrada de registro
jsonPayload.message string Mensagem de registro
jsonPayload.subsystem string Subsistema MySQL onde o registro foi originado
jsonPayload.tid número ID da linha de execução em que o registro foi originado
severity string (LogSeverity) Nível de entrada de registro (traduzido).

Os registros mysql_general contêm os seguintes campos no LogEntry:

Campo Tipo Descrição
jsonPayload.command string Tipo de ação do banco de dados que está sendo registrada
jsonPayload.message string Registro da ação do banco de dados
jsonPayload.tid número ID da linha de execução em que o registro foi originado
severity string (LogSeverity) Nível de entrada de registro (traduzido).

Os registros mysql_slow contêm os seguintes campos no LogEntry:

Campo Tipo Descrição
jsonPayload.bytesSent número O número de bytes enviados para todos os clientes
jsonPayload.createdTmpDiskTables   número O número de tabelas temporárias em disco internas criadas pelo servidor
jsonPayload.createdTmpTables   número O número de tabelas temporárias internas criadas pelo servidor
jsonPayload.createdTmpTableSizes   número O número de bytes usados por tabelas temporárias internas criadas pelo servidor
jsonPayload.database string Banco de dados em que a consulta foi executada
jsonPayload.filesort   booleano A instrução usada filesort
jsonPayload.filesortOnDisk   booleano A instrução usou o filesort que precisava de tabelas temporárias no disco.
jsonPayload.fullJoin   booleano A instrução não usou um índice para mesclar tabelas
jsonPayload.fullScan   booleano A instrução usou uma verificação completa da tabela
jsonPayload.host string Nome do host de onde o cliente se conectou
jsonPayload.ipAddress string Endereço IP a partir do qual o cliente se conectou
jsonPayload.lockTime número O tempo para adquirir bloqueios em segundos
jsonPayload.message string Texto completo da consulta
jsonPayload.priorityQueue   booleano A instrução usou um filesort de fila de prioridade
jsonPayload.queryCacheHit booleano A instrução foi exibida pelo cache de consultas
jsonPayload.queryTime número O tempo de execução da instrução em segundos
jsonPayload.rowsAffected integer O número de linhas afetadas pela instrução
jsonPayload.rowsExamined número O número de linhas examinadas pela camada do servidor
jsonPayload.rowsSent número O número de linhas enviadas para o cliente
jsonPayload.sortMergePasses   número Número de passes de mesclagem que o algoritmo de classificação teve de fazer
jsonPayload.storedRoutine string O nome da rotina armazenada que está sendo executada no momento
jsonPayload.tid número ID da linha de execução em que a consulta foi registrada
jsonPayload.user string Usuário autenticado que executou a consulta
severity string (LogSeverity) Nível de entrada de registro (traduzido).

 Esses campos só são fornecidos se a variável de sistema log_slow_verbosity contiver 'query_plan'.

Configurar a coleta de métricas

Para ingerir métricas do MariaDB, você precisa criar um receptor para as métricas produzidas pelo MariaDB e, em seguida, criar um pipeline para o novo receptor.

Esse receptor não aceita o uso de várias instâncias na configuração, por exemplo, para monitorar vários endpoints. Todas essas instâncias gravam na mesma série temporal, e o Cloud Monitoring não tem como diferenciá-las.

Para configurar um receptor para suas métricas do mysql, especifique os campos a seguir:

Campo Padrão Descrição
collection_interval 60s Um valor de time.Duration, como 30s ou 5m.
endpoint /var/run/mysqld/mysqld.sock O caminho do soquete hostname:port ou Unix que começa com / usado para se conectar ao servidor MariaDB.
password A senha usada para se conectar ao servidor.
type Este valor precisa ser mysql.
username root O nome de usuário usado para se conectar ao servidor.

O que é monitorado?

A tabela a seguir fornece a lista de métricas que o agente de operações coleta da instância do MariaDB.

Tipo de métrica 
Tipo, tipo
Recursos monitorados
Rótulos
workload.googleapis.com/mysql.buffer_pool_data_pages
GAUGEINT64
gce_instance
status
workload.googleapis.com/mysql.buffer_pool_limit
GAUGEINT64
gce_instance
 
workload.googleapis.com/mysql.buffer_pool_operations
CUMULATIVEINT64
gce_instance
operation
workload.googleapis.com/mysql.buffer_pool_page_flushes
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/mysql.buffer_pool_pages
GAUGEDOUBLE
gce_instance
kind
workload.googleapis.com/mysql.buffer_pool_size
GAUGEDOUBLE
gce_instance
kind
workload.googleapis.com/mysql.commands
CUMULATIVEINT64
gce_instance
command
workload.googleapis.com/mysql.double_writes
CUMULATIVEINT64
gce_instance
kind
workload.googleapis.com/mysql.handlers
CUMULATIVEINT64
gce_instance
kind
workload.googleapis.com/mysql.locks
CUMULATIVEINT64
gce_instance
kind
workload.googleapis.com/mysql.log_operations
CUMULATIVEINT64
gce_instance
operation
workload.googleapis.com/mysql.operations
CUMULATIVEINT64
gce_instance
operation
workload.googleapis.com/mysql.page_operations
CUMULATIVEINT64
gce_instance
operation
workload.googleapis.com/mysql.replica.sql_delay
GAUGEINT64
gce_instance
 
workload.googleapis.com/mysql.replica.time_behind_source
GAUGEINT64
gce_instance
 
workload.googleapis.com/mysql.row_locks
CUMULATIVEINT64
gce_instance
kind
workload.googleapis.com/mysql.row_operations
CUMULATIVEINT64
gce_instance
operation
workload.googleapis.com/mysql.sorts
CUMULATIVEINT64
gce_instance
kind
workload.googleapis.com/mysql.threads
GAUGEDOUBLE
gce_instance
kind

Verificar a configuração

Nesta seção, descrevemos como verificar se você configurou corretamente o receptor do MariaDB. Pode levar um ou dois minutos para que o agente de operações comece a coletar telemetria.

Para verificar se os registros do MariaDB estão sendo enviados para o Cloud Logging, faça o seguinte:

  1. No console do Google Cloud, acesse a página do Análise de registros.

    Acessar a Análise de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Geração de registros.

  2. Digite a consulta a seguir no Editor e clique em Executar consulta:
    resource.type="gce_instance"
    (log_id("mysql_error") OR log_id("mysql_general") OR log_id("mysql_slow"))
    

Para verificar se as métricas do MariaDB estão sendo enviadas para o Cloud Monitoring, faça o seguinte:

  1. No console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão  MQL ou  PromQL.
  3. Verifique se MQL está selecionado na opção de ativar/desativar MQL. A alternância de idiomas está na mesma barra de ferramentas que permite formatar sua consulta.
  4. Digite a consulta a seguir no Editor e clique em Executar consulta:
    fetch gce_instance
    | metric 'workload.googleapis.com/mysql.threads'
    | every 1m
    

Ver painel

Para visualizar as métricas do MariaDB, é necessário ter um gráfico ou um painel configurado. O MariaDB usa os mesmos painéis do MySQL. Todos os painéis são instalados automaticamente depois que você configura a integração e o Agente de operações começa a coletar dados de métricas.

Também é possível ver visualizações estáticas de painéis sem instalar a integração.

Para ver um painel instalado, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Painéis:

    Ir para Painéis

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Selecione a guia Lista de painéis e escolha a categoria Integrações.
  3. Clique no nome do painel que você quer visualizar. O MariaDB usa os mesmos painéis do MySQL.

Se você configurou uma integração, mas o painel não foi instalado, verifique se o agente de operações está em execução. Quando não há dados de métricas para um gráfico no painel, a instalação do painel falha. Depois que o Agente de operações começar a coletar métricas, o painel será instalado para você.

Para acessar uma visualização estática do painel, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Integrações:

    Acessar Integrações

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Clique no filtro de plataforma de implantação do Compute Engine.
  3. Localize a entrada do MySQL e clique em Ver detalhes. O MariaDB usa os mesmos painéis do MySQL.
  4. Selecione a guia Painéis para uma visualização estática. Se o painel estiver instalado, navegue até ele clicando em Ver painel.

Para mais informações sobre painéis no Cloud Monitoring, consulte Painéis e gráficos.

Para mais informações sobre como usar a página Integrações, consulte Gerenciar integrações.

Instalar políticas de alertas

As políticas de alertas orientam o Cloud Monitoring a notificar você quando ocorrerem condições especificadas. O MariaDB usa as mesmas políticas de alerta que o MySQL. É possível ver e instalar essas políticas de alertas na página Integrações no Monitoring.

Para visualizar e descrever as descrições de políticas de alertas disponíveis, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Integrações:

    Acessar Integrações

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Localize a entrada do MySQL e clique em Ver detalhes. O MariaDB usa as mesmas políticas de alerta que o MySQL.
  3. Selecione a guia Alertas. Essa guia apresenta descrições das políticas de alertas disponíveis e mostra uma interface para instalá-las.
  4. Instalar políticas de alertas. As políticas de alertas precisam saber para onde enviar as notificações de que o alerta foi acionado. Portanto, elas exigem informações para instalação. Para instalar políticas de alertas, faça o seguinte:
    1. Na lista de políticas de alertas disponíveis, selecione aquelas que você quer instalar.
    2. Na seção Configurar notificações, selecione um ou mais canais de notificação. Você pode desativar o uso dos canais de notificação, mas, se isso acontecer, as políticas de alertas vão ser disparadas silenciosamente. É possível verificar o status no Monitoring, mas não receber notificações.

      Para saber mais sobre canais de notificação, consulte Gerenciar canais de notificação.

    3. Clique em Criar políticas.

Para mais informações sobre políticas de alertas no Cloud Monitoring, consulte Introdução a alertas.

Para mais informações sobre como usar a página Integrações, consulte Gerenciar integrações.

A seguir

Para ver um tutorial sobre como usar o Ansible para instalar o agente de operações, configurar um aplicativo de terceiros e instalar um painel de amostra, consulte o vídeo Instalação do agente de operações para resolver problemas de aplicativos de terceiros.