All Products
Search
Document Center

Elasticsearch:Kumpulkan log MySQL dengan Filebeat yang dikelola sendiri

Last Updated:Aug 20, 2026

Anda dapat menggunakan Filebeat untuk mengumpulkan log MySQL—seperti slow query log dan error log—lalu mengirimkannya ke instans Alibaba Cloud Elasticsearch guna kueri, analisis, dan visualisasi di Kibana.

Prosedur

  1. Prasyarat

    Buat instans Alibaba Cloud Elasticsearch untuk menerima log dan konsol Kibana untuk analisis, serta instans ECS untuk menjalankan MySQL dan Filebeat.

  2. Langkah 1: Instal dan konfigurasikan MySQL

    Instal MySQL dan aktifkan error log serta slow query log dalam file konfigurasi MySQL. Filebeat hanya dapat mengumpulkan log tersebut setelah diaktifkan.

  3. Langkah 2: Instal dan konfigurasikan Filebeat

    Instal Filebeat untuk mengumpulkan log MySQL dan mengirimkannya ke instans Alibaba Cloud Elasticsearch. Aktifkan modul MySQL dan tentukan alamat akses Kibana serta Alibaba Cloud Elasticsearch dalam file konfigurasi Filebeat.

  4. Langkah 3: Visualisasikan log MySQL di Kibana

    Jalankan kueri uji dan lihat error log serta slow query log pada dasbor Kibana.

Prasyarat

Langkah 1: Instal dan konfigurasikan MySQL

  1. Hubungkan ke instans ECS.

    Untuk informasi selengkapnya, lihat Hubungkan ke instans Linux menggunakan password.

    Catatan

    Perintah dalam panduan ini dijalankan sebagai pengguna non-root.

  2. Unduh dan instal repositori MySQL.

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

    sudo yum install mysql-server
  4. Konfigurasikan file error log dan file slow query log dalam file my.cnf.

    Catatan

    Secara default, file log MySQL dinonaktifkan. Anda harus mengaktifkannya secara manual. Anda juga dapat menjalankan perintah MySQL untuk mengaktifkan sementara slow query log.

    1. Buka file my.cnf.

      sudo vim /etc/my.cnf
    2. Konfigurasikan file 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

      Parameter

      Deskripsi

      log_queries_not_using_indexes

      Menentukan apakah akan mencatat kueri yang tidak menggunakan indeks ke slow query log. Nilai 1 mengaktifkan pencatatan, sedangkan 0 menonaktifkannya.

      slow_query_log

      Mengaktifkan atau menonaktifkan slow query log. Nilai on mengaktifkan log, sedangkan off menonaktifkannya.

      slow_query_log_file

      Jalur penyimpanan slow query log.

      long_query_time

      Ambang batas kueri lambat dalam detik. MySQL mencatat kueri yang melebihi ambang batas ini ke file yang ditentukan oleh slow_query_log_file.

      Penting

      Untuk tujuan pengujian, parameter ini diatur ke 0 dalam topik ini. Di lingkungan produksi, atur nilai sesuai kebutuhan bisnis Anda.

    3. (Opsional) Buat file log.

      Penting

      MySQL 5.6 tidak membuat file log secara otomatis. Anda harus membuatnya secara manual.

      sudo mkdir /var/log/mysql
      sudo touch /var/log/mysql/mysqld.log
      sudo touch /var/log/mysql/slow-mysql-query.log
    4. Berikan semua pengguna izin baca dan tulis pada file log.

      sudo chmod 777 /var/log/mysql/slow-mysql-query.log /var/log/mysql/mysqld.log
  5. Start MySQL dan periksa statusnya.

    sudo systemctl start mysqld
    sudo systemctl status mysqld

Langkah 2: Instal dan konfigurasikan Filebeat

  1. Login ke konsol Kibana instans Alibaba Cloud Elasticsearch Anda.

    Untuk informasi selengkapnya, lihat Login ke konsol Kibana.

  2. Di panel navigasi sebelah kiri, klik Logs.

  3. Klik View setup instructions.

  4. Pada halaman Add Data to Kibana, klik MySQL logs.

  5. Pada halaman Self managed, klik RPM.

    Catatan

    Panduan ini menggunakan instans berbasis Linux, sehingga dipilih RPM. Pilih metode instalasi yang sesuai dengan sistem operasi Anda.

  6. Ikuti petunjuk di layar untuk menginstal Filebeat pada instans ECS Anda.

  7. Ubah konfigurasi modul MySQL untuk menentukan jalur file error log dan slow query log.

    1. Aktifkan modul MySQL.

      sudo filebeat modules enable mysql
    2. Buka file mysql.yml.

      sudo vim /etc/filebeat/modules.d/mysql.yml
    3. Ubah konfigurasi modul 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:

      Parameter

      Deskripsi

      enabled

      Atur nilainya menjadi true.

      var.paths

      Jalur file log. Jalur ini harus sesuai dengan jalur yang ditentukan dalam file konfigurasi MySQL. Untuk informasi selengkapnya, lihat Langkah 1: Instal dan konfigurasikan MySQL.

  8. Konfigurasikan file filebeat.yml.

    1. Buka file filebeat.yml.

      sudo vim /etc/filebeat/filebeat.yml
    2. Ubah konfigurasi modul 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. Ubah konfigurasi 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: Alamat akses konsol Kibana, yang dapat Anda peroleh dari halaman konfigurasi Kibana. Untuk informasi selengkapnya, lihat Lihat titik akhir publik konsol Kibana. Formatnya adalah <Titik akhir publik Kibana>:5601.

    4. Ubah konfigurasi output 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>"

      Parameter

      Deskripsi

      hosts

      Alamat akses instans Alibaba Cloud Elasticsearch Anda dalam format <Alamat IP privat atau Alamat IP publik instans>:9200. Anda dapat menemukan alamat tersebut di halaman Informasi Dasar instans. Untuk informasi selengkapnya, lihat Lihat informasi dasar instans.

      Catatan

      Gunakan Alamat IP privat jika instans ECS dan Alibaba Cloud Elasticsearch Anda berada dalam Virtual Private Cloud (VPC) yang sama. Jika tidak, gunakan Alamat IP publik dan konfigurasikan daftar putih IP. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih IP publik atau privat untuk instans.

      username

      Username untuk mengakses instans Alibaba Cloud Elasticsearch. Nilai default: elastic.

      password

      Password untuk username yang ditentukan, yang diatur saat Anda membuat instans. Jika lupa, Anda dapat meresetnya. Untuk informasi selengkapnya, lihat Reset password akses instans.

  9. Jalankan perintah berikut untuk mengunggah dasbor dan aset lainnya ke Elasticsearch dan Kibana, lalu mulai layanan Filebeat.

    sudo filebeat setup
    sudo service filebeat start

Langkah 3: Visualisasikan log MySQL di Kibana

  1. Di instans ECS, restart MySQL dan jalankan kueri uji.

    Jalankan perintah berikut untuk restart MySQL:

    sudo systemctl restart mysqld
  2. Lihat konten log.

    Contoh berikut menunjukkan entri log sampel.

    
    [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. Login ke konsol Kibana instans Alibaba Cloud Elasticsearch tujuan.

    Untuk informasi selengkapnya, lihat Login ke konsol Kibana.

  4. Di panel navigasi sebelah kiri, klik Dashboard.

  5. Dalam daftar dashboards, klik [Filebeat MySQL] Overview.

  6. Di pojok kanan atas halaman, pilih rentang waktu untuk melihat log.

    查看日志