Este guia descreve como centralizar logs de erro e de consultas lentas do MySQL no Alibaba Cloud Elasticsearch com o Filebeat. Ao final deste tutorial, você visualizará o desempenho e os erros do banco de dados por meio de painéis pré-construídos do Kibana.
Visão geral do fluxo de trabalho
Preparar o ambiente: Configure o Elasticsearch e o ECS.
Configurar o MySQL: Ative o registro de logs no banco de dados de origem.
Implantar o Filebeat: Instale e configure o módulo do MySQL para enviar logs.
Visualize: Use o Kibana para analisar os dados.
Pré-requisitos
Cluster do Alibaba Cloud Elasticsearch: Este exemplo usa a versão V6.7.0 (Standard Edition). Crie um cluster do Alibaba Cloud Elasticsearch.
Instância do Alibaba Cloud ECS: Execute o CentOS. Crie uma instância com Inicialização Personalizada.
Rede: Garanta a comunicação entre a instância ECS e o cluster Elasticsearch (preferencialmente na mesma VPC).
Etapa 1: Instale e configure o MySQL
Conecte-se à instância ECS e siga estas etapas para garantir que o MySQL gere logs legíveis pelo Filebeat.
Este guia usa um usuário comum como exemplo.
Conecte-se à instância ECS.
-
Instale o MySQL.
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm sudo yum install mysql-server -
Ative o registro de logs.
NotaPor padrão, a configuração de arquivos de log no MySQL vem desativada. Ative manualmente essa configuração. Também é possível ativar logs lentos temporários executando um comando do MySQL.
-
Edite o arquivo
/etc/my.cnfpara ativar os logs de consultas lentas e de erros.sudo vim /etc/my.cnf -
Adicione o conteúdo abaixo nas respectivas seções:
[mysqld] log_queries_not_using_indexes = 1 slow_query_log=on slow_query_log_file=/var/log/mysql/slow-mysql-query.log long_query_time=0 [mysqld_safe] log-error=/var/log/mysql/mysqld.logParâmetro
Descrição
log_queries_not_using_indexesDefina se o sistema deve registrar consultas sem índices especificados como log de consulta lenta. O valor 1 ativa esse registro. O valor 0 o desativa.
slow_query_logControla a ativação dos logs de consultas lentas. O valor on habilita os logs. O valor off os desabilita.
slow_query_log_fileEspecifica o caminho de armazenamento dos logs de consultas lentas.
long_query_timeDetermina o limiar de tempo para definir um log de consulta lenta. Unidade: segundos. Se o tempo da consulta exceder o limiar, o MySQL gravará a consulta no arquivo especificado por
slow_query_log_file.ImportantePara facilitar o teste, este parâmetro está definido como 0. Especifique-o conforme necessário.
-
-
Inicialize os arquivos de log.
O MySQL 5.6+ pode não criar esses arquivos automaticamente. Crie-os e defina as permissões de leitura:
sudo mkdir /var/log/mysql sudo touch /var/log/mysql/mysqld.log sudo touch /var/log/mysql/slow-mysql-query.log sudo chmod 644 /var/log/mysql/*.log -
Inicie o MySQL.
sudo systemctl start mysqld sudo systemctl status mysqld
Etapa 2: Instale e configure o Filebeat
O Filebeat usa um módulo dedicado do MySQL para analisar logs e convertê-los em JSON estruturado antes de enviá-los ao Elasticsearch.
Faça logon no console do Kibana do cluster Elasticsearch.
No painel de navegação à esquerda, clique em Logs.
Clique em View setup instructions.
Na página Add Data to Kibana, clique em MySQL logs.
-
Na página Self Managed, clique em RPM.
NotaEste tópico usa o sistema operacional Linux. Portanto, a opção RPM está selecionada. Escolha o método de instalação adequado ao seu sistema operacional.
Instale o Filebeat na instância ECS conforme as instruções exibidas.
-
Configure o módulo do MySQL.
-
Ative o módulo do MySQL e especifique os caminhos dos logs.
sudo filebeat modules enable mysql sudo vim /etc/filebeat/modules.d/mysql.yml -
Atualize a configuração.
- module: mysql # Error logs error: enabled: true var.paths: ["/var/log/mysql/mysqld.log"] # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. #var.paths: # Slow logs slowlog: enabled: true var.paths: ["/var/log/mysql/slow-mysql-query.log"] # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. #var.paths:Parâmetro
Descrição
enabledDefina este parâmetro como
true.var.pathsConfigure este parâmetro com o caminho do arquivo de log. O caminho deve ser idêntico ao especificado no arquivo de configuração do MySQL. Para mais informações, consulte Etapa 1: Instale e configure o MySQL.
-
-
Configure as definições globais (filebeat.yml).
-
Abra o arquivo filebeat.yml.
sudo vim /etc/filebeat/filebeat.yml -
Atualize a configuração dos módulos do Filebeat.
filebeat.config.modules: # Glob pattern for configuration loading path: /etc/filebeat/modules.d/mysql.yml # Set to true to enable config reloading reload.enabled: true # Period on which files under path should be checked for changes reload.period: 1s -
Atualize a configuração do Kibana.

setup.kibana: host: "https://es-cn-0pp1jxvcl000*****.kibana.elasticsearch.aliyuncs.com:5601"host: URL de acesso ao console do Kibana. Obtenha a URL na página de configuração do Kibana. Para mais informações, consulte Visualize o endpoint público do console do Kibana. Especifique a URL no formato<Endpoint público do console do Kibana>:5601. -
Modifique a configuração de saída do Elasticsearch.

output.elasticsearch: # Array of hosts to connect to. hosts: ["es-cn-0pp1jxvcl000*****.elasticsearch.aliyuncs.com:9200"] # Optional protocol and basic auth credentials. #protocol: "https" username: "elastic" password: "<your_password>"Parâmetro
Descrição
hostsEndpoint do cluster do Alibaba Cloud Elasticsearch. Formato:
<Endpoint privado ou público da instância>:9200. Obtenha o endpoint privado ou público do cluster Elasticsearch na página Informações Básicas da instância. Para mais informações, consulte Visualize as informações básicas de uma instância.NotaAo usar o endpoint público, garanta que o IP da instância ECS esteja na lista de permissões de IP do Elasticsearch. Para mais informações, consulte Configure uma lista de permissões de endereços IP públicos ou privados para uma instância.
usernameNome de usuário para acessar o cluster Elasticsearch. Valor padrão: elastic.
passwordA senha da instância geralmente é definida durante a criação. Caso tenha esquecido a senha, redefina-a. Para obter instruções, consulte Redefinir a senha de acesso da instância.
-
-
Inicialize e inicie o serviço.
Execute o comando de configuração para carregar painéis pré-construídos e pipelines de ingestão no Elasticsearch e, em seguida, inicie o serviço:
sudo filebeat setup sudo service filebeat start
Etapa 3: Visualize logs no Kibana
Com o Filebeat em execução, os logs são enviados automaticamente para o Elasticsearch.
-
Reinicie o MySQL para gerar logs de erro ou execute algumas consultas SQL.
sudo systemctl restart mysqld Faça logon no console do Kibana do cluster Elasticsearch.
No painel de navegação à esquerda, clique em Dashboard.
Pesquise e selecione [Filebeat MySQL] Overview.
-
Selecione um intervalo de tempo no canto superior direito e visualize os logs correspondentes.
