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
-
Buat instans Alibaba Cloud Elasticsearch untuk menerima log dan konsol Kibana untuk analisis, serta instans ECS untuk menjalankan MySQL dan Filebeat.
-
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.
-
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.
-
Langkah 3: Visualisasikan log MySQL di Kibana
Jalankan kueri uji dan lihat error log serta slow query log pada dasbor Kibana.
Prasyarat
-
Instans Alibaba Cloud Elasticsearch telah dibuat.
Untuk informasi selengkapnya, lihat Buat instans Alibaba Cloud Elasticsearch. Panduan ini menggunakan contoh instans General-purpose (v6.7.0).
-
Instans ECS telah dibuat.
Untuk informasi selengkapnya, lihat Buat instans menggunakan tab launch kustom. Panduan ini menggunakan contoh instans ECS berbasis CentOS.
Langkah 1: Instal dan konfigurasikan MySQL
-
Hubungkan ke instans ECS.
Untuk informasi selengkapnya, lihat Hubungkan ke instans Linux menggunakan password.
CatatanPerintah dalam panduan ini dijalankan sebagai pengguna non-root.
-
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 -
Instal MySQL.
sudo yum install mysql-server -
Konfigurasikan file error log dan file slow query log dalam file my.cnf.
CatatanSecara default, file log MySQL dinonaktifkan. Anda harus mengaktifkannya secara manual. Anda juga dapat menjalankan perintah MySQL untuk mengaktifkan sementara slow query log.
-
Buka file my.cnf.
sudo vim /etc/my.cnf -
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.logParameter
Deskripsi
log_queries_not_using_indexesMenentukan apakah akan mencatat kueri yang tidak menggunakan indeks ke slow query log. Nilai
1mengaktifkan pencatatan, sedangkan0menonaktifkannya.slow_query_logMengaktifkan atau menonaktifkan slow query log. Nilai
onmengaktifkan log, sedangkanoffmenonaktifkannya.slow_query_log_fileJalur penyimpanan slow query log.
long_query_timeAmbang batas kueri lambat dalam detik. MySQL mencatat kueri yang melebihi ambang batas ini ke file yang ditentukan oleh
slow_query_log_file.PentingUntuk tujuan pengujian, parameter ini diatur ke
0dalam topik ini. Di lingkungan produksi, atur nilai sesuai kebutuhan bisnis Anda. -
(Opsional) Buat file log.
PentingMySQL 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 -
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
-
-
Start MySQL dan periksa statusnya.
sudo systemctl start mysqld sudo systemctl status mysqld
Langkah 2: Instal dan konfigurasikan Filebeat
-
Login ke konsol Kibana instans Alibaba Cloud Elasticsearch Anda.
Untuk informasi selengkapnya, lihat Login ke konsol Kibana.
-
Di panel navigasi sebelah kiri, klik Logs.
-
Klik View setup instructions.
-
Pada halaman Add Data to Kibana, klik MySQL logs.
-
Pada halaman Self managed, klik RPM.
CatatanPanduan ini menggunakan instans berbasis Linux, sehingga dipilih RPM. Pilih metode instalasi yang sesuai dengan sistem operasi Anda.
-
Ikuti petunjuk di layar untuk menginstal Filebeat pada instans ECS Anda.
-
Ubah konfigurasi modul MySQL untuk menentukan jalur file error log dan slow query log.
-
Aktifkan modul MySQL.
sudo filebeat modules enable mysql -
Buka file mysql.yml.
sudo vim /etc/filebeat/modules.d/mysql.yml -
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
enabledAtur nilainya menjadi
true.var.pathsJalur file log. Jalur ini harus sesuai dengan jalur yang ditentukan dalam file konfigurasi MySQL. Untuk informasi selengkapnya, lihat Langkah 1: Instal dan konfigurasikan MySQL.
-
-
Konfigurasikan file filebeat.yml.
-
Buka file filebeat.yml.
sudo vim /etc/filebeat/filebeat.yml -
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 -
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. -
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
hostsAlamat 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.CatatanGunakan 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.
usernameUsername untuk mengakses instans Alibaba Cloud Elasticsearch. Nilai default: elastic.
passwordPassword untuk username yang ditentukan, yang diatur saat Anda membuat instans. Jika lupa, Anda dapat meresetnya. Untuk informasi selengkapnya, lihat Reset password akses instans.
-
-
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
-
Di instans ECS, restart MySQL dan jalankan kueri uji.
Jalankan perintah berikut untuk restart MySQL:
sudo systemctl restart mysqld -
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) -
Login ke konsol Kibana instans Alibaba Cloud Elasticsearch tujuan.
Untuk informasi selengkapnya, lihat Login ke konsol Kibana.
-
Di panel navigasi sebelah kiri, klik Dashboard.
-
Dalam daftar dashboards, klik [Filebeat MySQL] Overview.
-
Di pojok kanan atas halaman, pilih rentang waktu untuk melihat log.
