Todos os produtos
Search
Central de documentação

Elasticsearch:Coletar logs do MySQL com Filebeat autogerenciado

Última atualização: Aug 19, 2026

Use o Filebeat para coletar logs do MySQL, como o log de consultas lentas e o log de erros, e enviá-los a uma instância do Alibaba Cloud Elasticsearch para consulta, análise e visualização no Kibana.

Procedimento

  1. Prerequisites

    Crie uma instância do Alibaba Cloud Elasticsearch para receber os logs, um console do Kibana para análise e uma instância ECS para hospedar o MySQL e o Filebeat.

  2. Step 1: Instale e configure o MySQL

    Instale o MySQL e ative o log de erros e o log de consultas lentas no arquivo de configuração do MySQL. O Filebeat coleta esses logs somente após a ativação.

  3. Step 2: Instale e configure o Filebeat

    Instale o Filebeat para coletar os logs do MySQL e enviá-los a uma instância do Alibaba Cloud Elasticsearch. Ative o módulo do MySQL e especifique os endereços de acesso do Kibana e do Alibaba Cloud Elasticsearch no arquivo de configuração do Filebeat.

  4. Step 3: Visualize logs do MySQL no Kibana

    Execute uma consulta de teste e visualize o log de erros e o log de consultas lentas em um painel do Kibana.

Pré-requisitos

Etapa 1: Instalar e configurar o MySQL

  1. Conecte-se à instância ECS.

    Para mais informações, consulte Connect to a Linux instance by using a password.

    Nota

    Os comandos neste guia são executados como um usuário não root.

  2. Baixe e instale o repositório do MySQL.

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
  3. Instale o MySQL.

    sudo yum install mysql-server
  4. Configure o arquivo de log de erros e o arquivo de log de consultas lentas no arquivo my.cnf.

    Nota

    Por padrão, os arquivos de log do MySQL ficam desativados. É necessário ativá-los manualmente. Também é possível executar um comando do MySQL para ativar temporariamente o log de consultas lentas.

    1. Abra o arquivo my.cnf.

      sudo vim /etc/my.cnf
    2. Configure os arquivos de log.

      [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.log

      Parâmetro

      Descrição

      log_queries_not_using_indexes

      Define se as consultas sem uso de índices devem ser registradas no log de consultas lentas. O valor 1 ativa o registro e 0 o desativa.

      slow_query_log

      Ativa ou desativa o log de consultas lentas. O valor on ativa o log e off o desativa.

      slow_query_log_file

      O caminho de armazenamento do log de consultas lentas.

      long_query_time

      O limiar de consulta lenta em segundos. O MySQL registra no arquivo especificado por slow_query_log_file as consultas que excedem esse limiar.

      Importante

      Para fins de teste, este parâmetro está definido como 0 neste tópico. Em um ambiente de produção, defina o valor conforme os requisitos do seu negócio.

    3. (Opcional) Crie os arquivos de log.

      Importante

      O MySQL 5.6 não cria arquivos de log automaticamente. É necessário criá-los manualmente.

      sudo mkdir /var/log/mysql
      sudo touch /var/log/mysql/mysqld.log
      sudo touch /var/log/mysql/slow-mysql-query.log
    4. Conceda permissões de leitura e gravação nos arquivos de log para todos os usuários.

      sudo chmod 777 /var/log/mysql/slow-mysql-query.log /var/log/mysql/mysqld.log
  5. Inicie o MySQL e verifique seu status.

    sudo systemctl start mysqld
    sudo systemctl status mysqld

Etapa 2: Instalar e configurar o Filebeat

  1. Faça login no console do Kibana da sua instância do Alibaba Cloud Elasticsearch.

    Para mais informações, consulte Log on to the Kibana console.

  2. No painel de navegação à esquerda, clique em Logs.

  3. Clique em View setup instructions.

  4. Na página Add Data to Kibana, clique em MySQL logs.

  5. Na página Self managed, clique em RPM.

    Nota

    Este guia utiliza uma instância baseada em Linux, portanto RPM está selecionado. Escolha o método de instalação adequado ao seu sistema operacional.

  6. Siga as instruções na tela para instalar o Filebeat na sua instância ECS.

  7. Modifique a configuração do módulo do MySQL para especificar os caminhos dos arquivos de log de erros e de consultas lentas.

    1. Ative o módulo do MySQL.

      sudo filebeat modules enable mysql
    2. Abra o arquivo mysql.yml.

      sudo vim /etc/filebeat/modules.d/mysql.yml
    3. Modifique a configuração do módulo do MySQL.

      - 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

      enabled

      Defina o valor como true.

      var.paths

      O caminho do arquivo de log. Esse caminho deve corresponder ao caminho especificado no arquivo de configuração do MySQL. Para mais informações, consulte Step 1: Instale e configure o MySQL.

  8. Configure o arquivo filebeat.yml.

    1. Abra o arquivo filebeat.yml.

      sudo vim /etc/filebeat/filebeat.yml
    2. Modifique 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
    3. Modifique a configuração do Kibana.

      #================================ Kibana =====================================
      
      # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
      # This requires a Kibana endpoint configuration.
      setup.kibana:
      
        # Kibana Host
        # Scheme and port can be left out and will be set to the default (http and 5601)
        # In case you specify and additional path, the scheme is required: http://localhost:5601/path
        # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
        host: "https://es-cn-xxx.kibana.elasticsearch.aliyuncs.com:5601"

      host: O endereço de acesso do console do Kibana, obtido na página de configuração do Kibana. Para mais informações, consulte Visualize o endpoint público do console do Kibana. O formato é <Kibana public endpoint>:5601.

    4. 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

      hosts

      O endereço de acesso da sua instância do Alibaba Cloud Elasticsearch no formato <Instance private IP address or public IP address>:9200. Você encontra esse endereço na página Basic Information da instância. Para mais informações, consulte Visualize as informações básicas de uma instância.

      Nota

      Utilize o endereço IP privado se as instâncias ECS e Alibaba Cloud Elasticsearch estiverem na mesma Virtual Private Cloud (VPC). Caso contrário, use o endereço IP público e configure uma lista de permissões de IP. Para mais informações, consulte Configure a public or private IP whitelist for an instance.

      username

      O nome de usuário para acessar a instância do Alibaba Cloud Elasticsearch. Valor padrão: elastic.

      password

      A senha correspondente ao nome de usuário especificado, definida durante a criação da instância. Se você a esquecer, poderá redefini-la. Para mais informações, consulte Reset the access password of an instance.

  9. Execute os comandos a seguir para carregar painéis e outros ativos no Elasticsearch e no Kibana e iniciar o service do Filebeat.

    sudo filebeat setup
    sudo service filebeat start

Etapa 3: Visualizar logs do MySQL no Kibana

  1. Na instância ECS, reinicie o MySQL e execute uma consulta de teste.

    Execute o seguinte comando para reiniciar o MySQL:

    sudo systemctl restart mysqld
  2. Visualize o conteúdo do log.

    Os exemplos a seguir mostram entradas de log de amostra.

    
    [root@zl-test003 ~]# tail -50 /var/log/mysql/slow-mysql-query.log
    # Query_time: 0.000385  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
    SET timestamp=1590720469;
    ;
    # User@Host: root[root] @ localhost []  Id:     2
    # Query_time: 0.000138  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
    SET timestamp=1590720469;
    ;
    # User@Host: root[root] @ localhost []  Id:     2
    # Query_time: 0.000214  Lock_time: 0.000048 Rows_sent: 5  Rows_examined: 5
    SET timestamp=1590720469;
    SELECT * from student;
    # Time: 200529 10:47:52
    # User@Host: root[root] @ localhost []  Id:     2
    # Query_time: 0.000231  Lock_time: 0.000117 Rows_sent: 2  Rows_examined: 10
    SET timestamp=1590720472;
    SELECT * from runoob_tbl WHERE runoob_author='xxx';
    # User@Host: root[root] @ localhost []  Id:     2
    # Query_time: 0.000171  Lock_time: 0.000075 Rows_sent: 2  Rows_examined: 10
    SET timestamp=1590720472;
    SELECT * from runoob_tbl WHERE runoob_author='xxx';
    # Time: 200529 10:47:53
    # User@Host: root[root] @ localhost []  Id:     2
    # Query_time: 0.000149  Lock_time: 0.000075 Rows_sent: 2  Rows_examined: 10
    SET timestamp=1590720473;
    SELECT * from runoob_tbl WHERE runoob_author='xxx';
    # Time: 200529 10:47:56
    # User@Host: root[root] @ localhost []  Id:     2
    # Query_time: 0.000039  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
    SET timestamp=1590720476;
    sleep(4);
    
    [root@zl-test003 ~]# tail -50 /var/log/mysql/mysqld.log
    2020-05-29 10:47:43 4240 [Note] Shutting down plugin 'INNODB_LOCKS'
    2020-05-29 10:47:43 4240 [Note] Shutting down plugin 'INNODB_TRX'
    2020-05-29 10:47:43 4240 [Note] Shutting down plugin 'InnoDB'
    2020-05-29 10:47:43 4240 [Note] InnoDB: FTS optimize thread exiting.
    2020-05-29 10:47:43 4240 [Note] InnoDB: Starting shutdown...
    2020-05-29 10:47:45 4240 [Note] InnoDB: Shutdown completed; log sequence number 1666138
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'BLACKHOLE'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'ARCHIVE'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'MRG_MYISAM'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'MyISAM'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'MEMORY'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'CSV'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'sha256_password'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'mysql_native_password'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'mysql_old_password'
    2020-05-29 10:47:45 4240 [Note] Shutting down plugin 'binlog'
    2020-05-29 10:47:45 4240 [Note] /usr/sbin/mysqld: Shutdown complete
    
    200529 10:47:45 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
    200529 10:47:45 mysqld_safe Logging to '/var/log/mysql/mysqld.log'.
    200529 10:47:45 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    2020-05-29 10:47:45 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_def_timestamp server option (see documentation for more details).
    2020-05-29 10:47:45 0 [Note] /usr/sbin/mysqld (mysqld 5.6.48-log) starting as process 21710 ...
    2020-05-29 10:47:45 21710 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
  3. Faça login no console do Kibana da instância de destino do Alibaba Cloud Elasticsearch.

    Para mais informações, consulte Log on to the Kibana console.

  4. No painel de navegação à esquerda, clique em Dashboard.

  5. Na lista de dashboards, clique em [Filebeat MySQL] Overview.

  6. No canto superior direito da página, selecione um intervalo de tempo para visualizar os logs.

    查看日志