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
Persiapkan lingkungan: Siapkan Elasticsearch dan ECS.
Konfigurasikan MySQL: Aktifkan logging pada database sumber.
Deploy Filebeat: Instal dan konfigurasikan modul MySQL untuk mengirim log.
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.
Panduan ini menggunakan pengguna umum sebagai contoh.
Hubungkan ke instance ECS.
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-serverAktifkan logging.
CatatanSecara 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.
Edit
/etc/my.cnfuntuk mengaktifkan log kueri lambat dan log error.sudo vim /etc/my.cnfTambahkan 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.logParameter
Deskripsi
log_queries_not_using_indexesMenentukan 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_logMenentukan apakah log kueri lambat diaktifkan. Nilai on menunjukkan bahwa log kueri lambat diaktifkan. Nilai off menunjukkan bahwa log kueri lambat dinonaktifkan.
slow_query_log_fileMenentukan jalur penyimpanan log kueri lambat.
long_query_timeMenentukan 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.PentingUntuk memudahkan pengujian, nilai parameter ini diatur ke 0. Anda dapat menyesuaikan parameter ini sesuai kebutuhan.
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/*.logStart 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.
Masuk ke konsol Kibana kluster Elasticsearch.
Pada bilah navigasi kiri, klik Logs.
Klik View setup instructions.
Pada halaman Add Data to Kibana, klik MySQL logs.
Pada halaman Self Managed, klik RPM.
CatatanSistem operasi Linux digunakan dalam topik ini. Oleh karena itu, RPM dipilih. Anda dapat memilih metode instalasi yang sesuai berdasarkan sistem operasi Anda.
Instal Filebeat pada instance ECS sesuai petunjuk.
Konfigurasikan modul MySQL.
Aktifkan modul MySQL dan tentukan jalur log.
sudo filebeat modules enable mysql sudo vim /etc/filebeat/modules.d/mysql.ymlPerbarui 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
enabledAtur parameter ini ke
true.var.pathsAtur 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.
Konfigurasikan pengaturan global (filebeat.yml).
Buka file filebeat.yml.
sudo vim /etc/filebeat/filebeat.ymlPerbarui 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: 1sPerbarui konfigurasi 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.Modifikasi 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
hostsTitik 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.CatatanJika 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.
usernameUsername yang digunakan untuk mengakses kluster Elasticsearch. Nilai default: elastic.
passwordPassword 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.
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.
Restart MySQL untuk menghasilkan log error atau jalankan beberapa kueri SQL.
sudo systemctl restart mysqldMasuk ke konsol Kibana kluster Elasticsearch.
Pada bilah sisi kiri, klik Dashboard.
Cari dan pilih [Filebeat MySQL] Overview.
Pilih rentang waktu di pojok kanan atas dan lihat log dalam rentang waktu tersebut.
