全部产品
Search
文档中心

Elasticsearch:Gunakan Filebeat yang dikelola sendiri untuk mengumpulkan log MySQL

更新时间:Feb 27, 2026

Panduan ini menjelaskan cara memusatkan log error dan log kueri lambat MySQL ke Alibaba Cloud Elasticsearch menggunakan Filebeat. Setelah menyelesaikan tutorial ini, Anda dapat memvisualisasikan performa dan error database melalui dasbor Kibana yang telah disediakan.

Ikhtisar alur kerja

  1. Persiapkan lingkungan: Siapkan Elasticsearch dan ECS.

  2. Konfigurasikan MySQL: Aktifkan logging pada database sumber.

  3. Deploy Filebeat: Instal dan konfigurasikan modul MySQL untuk mengirim log.

  4. Visualisasikan: Gunakan Kibana untuk menganalisis data.

Prasyarat

  • Kluster Alibaba Cloud Elasticsearch: V6.7.0 (Edisi Standar) digunakan dalam contoh ini. Buat kluster Alibaba Cloud Elasticsearch.

  • Instance Alibaba Cloud ECS: Menjalankan CentOS. Custom launch.

  • Jaringan: Pastikan instance ECS dan kluster Elasticsearch dapat berkomunikasi (idealnya berada dalam VPC yang sama).

Langkah 1: Instal dan konfigurasikan MySQL

Hubungkan ke instance ECS Anda dan ikuti langkah-langkah berikut untuk memastikan MySQL menghasilkan log yang dapat dibaca oleh Filebeat.

Catatan

Panduan ini menggunakan pengguna umum sebagai contoh.

  1. Hubungkan ke instance ECS.

  2. Instal 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
  3. Aktifkan logging.

    Catatan

    Secara default, konfigurasi file log di MySQL dinonaktifkan. Anda harus mengaktifkan konfigurasi file log secara manual. Anda juga dapat mengaktifkan log kueri lambat sementara dengan menjalankan perintah MySQL.

    1. Edit /etc/my.cnf untuk mengaktifkan log kueri lambat dan log error.

      sudo vim /etc/my.cnf
    2. Tambahkan konfigurasi berikut di bawah bagian yang sesuai:

      [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 kueri yang tidak menggunakan indeks harus dicatat sebagai log kueri lambat. Nilai 1 menunjukkan bahwa sistem mencatat kueri tersebut sebagai log kueri lambat. Nilai 0 menunjukkan bahwa sistem tidak mencatat kueri tersebut sebagai log kueri lambat.

      slow_query_log

      Menentukan apakah log kueri lambat diaktifkan. Nilai on menunjukkan bahwa log kueri lambat diaktifkan. Nilai off menunjukkan bahwa log kueri lambat dinonaktifkan.

      slow_query_log_file

      Menentukan jalur penyimpanan log kueri lambat.

      long_query_time

      Menentukan ambang batas waktu yang digunakan untuk mendefinisikan log kueri lambat. Satuan: detik. Ketika waktu kueri melebihi ambang batas, database MySQL menulis kueri tersebut ke file yang ditentukan oleh slow_query_log_file.

      Penting

      Untuk memudahkan pengujian, nilai parameter ini diatur ke 0. Anda dapat menyesuaikan parameter ini sesuai kebutuhan.

  4. Inisialisasi file log.

    MySQL 5.6+ mungkin tidak membuat file-file ini secara otomatis. Buat file tersebut dan atur izin baca:

    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
  5. Start MySQL.

    sudo systemctl start mysqld
    sudo systemctl status mysqld

Langkah 2: Instal dan konfigurasikan Filebeat

Filebeat menggunakan modul MySQL khusus untuk mengurai log menjadi JSON terstruktur sebelum mengirimkannya ke Elasticsearch.

  1. Masuk ke konsol Kibana kluster Elasticsearch.

  2. Pada bilah navigasi 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

    Sistem operasi Linux digunakan dalam topik ini. Oleh karena itu, RPM dipilih. Anda dapat memilih metode instalasi yang sesuai berdasarkan sistem operasi Anda.

  6. Instal Filebeat pada instance ECS sesuai petunjuk.

  7. Konfigurasikan modul MySQL.

    1. Aktifkan modul MySQL dan tentukan jalur log.

      sudo filebeat modules enable mysql
      sudo vim /etc/filebeat/modules.d/mysql.yml
    2. Perbarui konfigurasi.

      - 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 parameter ini ke true.

      var.paths

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

  8. Konfigurasikan pengaturan global (filebeat.yml).

    1. Buka file filebeat.yml.

      sudo vim /etc/filebeat/filebeat.yml
    2. Perbarui 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. Perbarui konfigurasi Kibana.

      Modify the configuration of Kibana

      setup.kibana:
      host: "https://es-cn-0pp1jxvcl000*****.kibana.elasticsearch.aliyuncs.com:5601"

      host: URL yang digunakan untuk mengakses konsol Kibana. Anda dapat memperoleh URL tersebut pada halaman konfigurasi Kibana. Untuk informasi selengkapnya, lihat Lihat titik akhir publik konsol Kibana. Tentukan URL dalam format <Titik akhir publik konsol Kibana>:5601.

    4. Modifikasi konfigurasi output Elasticsearch.

      Modify the configuration of the Elasticsearch cluster

      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

      Titik akhir kluster Alibaba Cloud Elasticsearch. Formatnya adalah <Titik akhir privat atau publik instans>:9200. Anda dapat memperoleh titik akhir privat atau publik kluster Elasticsearch dari halaman Informasi Dasar instans. Untuk informasi selengkapnya, lihat Lihat informasi dasar instans.

      Catatan

      Jika menggunakan titik akhir publik, pastikan IP ECS Anda telah ditambahkan ke daftar putih alamat IP Elasticsearch. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih alamat IP publik atau privat untuk instans.

      username

      Username yang digunakan untuk mengakses kluster Elasticsearch. Nilai default: elastic.

      password

      Password instans biasanya ditetapkan saat Anda membuatnya. Jika lupa password, Anda dapat mengatur ulang. Untuk petunjuk cara mengatur ulang password, lihat Atur ulang password akses instans.

  9. Inisialisasi dan mulai.

    Jalankan perintah setup untuk memuat dasbor dan pipeline ingest yang telah disediakan ke Elasticsearch, lalu mulai layanan:

    sudo filebeat setup
    sudo service filebeat start

Langkah 3: Visualisasikan log di Kibana

Setelah Filebeat berjalan, log akan dikirimkan secara otomatis ke Elasticsearch.

  1. Restart MySQL untuk menghasilkan log error atau jalankan beberapa kueri SQL.

    sudo systemctl restart mysqld
  2. Masuk ke konsol Kibana kluster Elasticsearch.

  3. Pada bilah sisi kiri, klik Dashboard.

  4. Cari dan pilih [Filebeat MySQL] Overview.

  5. Pilih rentang waktu di pojok kanan atas dan lihat log dalam rentang waktu tersebut.

    View logs