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.
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_error
Para 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_general
Para 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_slow
Para 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
|
|
GAUGE , INT64 gce_instance |
status
|
workload.googleapis.com/mysql.buffer_pool_limit
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/mysql.buffer_pool_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.buffer_pool_page_flushes
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/mysql.buffer_pool_pages
|
|
GAUGE , DOUBLE gce_instance |
kind
|
workload.googleapis.com/mysql.buffer_pool_size
|
|
GAUGE , DOUBLE gce_instance |
kind
|
workload.googleapis.com/mysql.commands
|
|
CUMULATIVE , INT64 gce_instance |
command
|
workload.googleapis.com/mysql.double_writes
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.handlers
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.locks
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.log_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.page_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.replica.sql_delay
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/mysql.replica.time_behind_source
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/mysql.row_locks
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.row_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.sorts
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.threads
|
|
GAUGE , DOUBLE 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:
-
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.
- 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:
-
No console do Google Cloud, acesse a página do leaderboard Metrics Explorer:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Na barra de ferramentas do painel do criador de consultas, selecione o botão code MQL ou code PromQL.
- 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.
- 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:
-
No console do Google Cloud, acesse a página Painéis:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Selecione a guia Lista de painéis e escolha a categoria Integrações.
- 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:
-
No console do Google Cloud, acesse a página Integrações:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Clique no filtro de plataforma de implantação do Compute Engine.
- Localize a entrada do MySQL e clique em Ver detalhes. O MariaDB usa os mesmos painéis do MySQL.
- 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:
-
No console do Google Cloud, acesse a página Integrações:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.
- Localize a entrada do MySQL e clique em Ver detalhes. O MariaDB usa as mesmas políticas de alerta que o MySQL.
- Selecione a guia Alertas. Essa guia apresenta descrições das políticas de alertas disponíveis e mostra uma interface para instalá-las.
- 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:
- Na lista de políticas de alertas disponíveis, selecione aquelas que você quer instalar.
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.
- 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.