Topik ini menjelaskan cara menggunakan Alibaba Cloud Managed Service for Prometheus untuk memantau database MySQL.
Prasyarat
Pastikan informasi berikut tersedia: alamat, nomor port, serta nama pengguna dan kata sandi yang digunakan untuk terhubung ke database MySQL.
Aktifkan komponen MySQL
Di panel navigasi sebelah kiri, klik Integration Center.
Pada halaman Integration Center, di bagian Database, klik MySQL.

Di tab Start Integration pada panel MySQL, atur parameter yang diperlukan, lalu klik OK. Instance Prometheus akan dibuat untuk memantau database.
Parameter
Deskripsi
Select the environment type
Pilih lingkungan tempat database diterapkan. Nilai valid:
Lingkungan Kubernetes
ECS (VPC)
Layanan Cloud
Select Cluster
Pilih kluster ACK tempat database diterapkan. Parameter ini tersedia jika database diterapkan dalam kluster Container Service for Kubernetes (ACK).
Select VPC
Pilih instance ECS tempat database diterapkan. Parameter ini tersedia jika database diterapkan dalam instance Elastic Compute Service (ECS).
Select Region for Storage
Parameter ini tersedia jika database diterapkan dalam ApsaraDB RDS.
MySQL Address
Alamat database MySQL.
CatatanDatabase MySQL dapat diterapkan dalam kluster ACK, instance ECS, atau ApsaraDB RDS.
MySQL Service Port
Nomor port database MySQL. Contoh: 3306.
MySQL Username dan MySQL Password
Nama pengguna dan kata sandi database MySQL.
PentingUntuk mencegah risiko pelanggaran data, kami menyarankan agar Anda tidak menggunakan akun administrator. Buat akun MySQL untuk mysqld_exporter dan berikan izin minimum kepada akun tersebut. Untuk informasi lebih lanjut, lihat Buat pengguna MySQL untuk Managed Service for Prometheus.
Konfigurasikan peringatan untuk database MySQL
Masuk ke Konsol Managed Service for Prometheus.
Di panel navigasi sebelah kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah, lalu klik nama instance Prometheus.
Di panel navigasi sebelah kiri, klik Alert Rules untuk melihat aturan peringatan database.
Managed Service for Prometheus menyediakan beberapa aturan peringatan default untuk metrik utama MySQL. Anda juga dapat membuat aturan peringatan sesuai dengan kebutuhan bisnis. Untuk informasi lebih lanjut, lihat Buat aturan peringatan untuk instance Prometheus.
CatatanUntuk informasi tentang metrik utama MySQL, lihat bagian Metrik Utama.
Untuk informasi lebih lanjut tentang aturan peringatan yang telah ditetapkan oleh Managed Service for Prometheus untuk metrik utama MySQL, lihat bagian Konfigurasikan peringatan untuk database.
Lihat dasbor
Anda dapat melihat data pemantauan di dasbor, seperti ketersediaan layanan, kueri database, lalu lintas jaringan, koneksi, dan penggunaan memori.
Masuk ke Konsol Managed Service for Prometheus.
Di panel navigasi sebelah kiri, klik Integration Management.
Di tab Integrated Environments pada halaman Integration Management, klik nama lingkungan tempat database diterapkan.

Di bagian Addon Type pada tab Component Management, klik MySQL, lalu klik Dashboards untuk melihat semua dasbor.
Klik nama dasbor.
Ketersediaan, permintaan per detik (QPS), dan koneksi database

Kueri database

Trafik dan penggunaan memori

Data pemantauan file

Metrik utama
Tipe | Metrik | Deskripsi |
Ketersediaan | mysql_up | Menunjukkan apakah database MySQL tersedia. |
mysql_global_status_uptime | Menunjukkan durasi operasi database MySQL. Anda dapat membuat aturan peringatan untuk metrik ini untuk memeriksa apakah durasi operasi kurang dari 30 menit. | |
Koneksi database | mysql_global_status_connection_errors_total | Menunjukkan kesalahan koneksi, salah satu kesalahan utama database. Anda dapat menggunakan metrik ini untuk melihat informasi tentang kesalahan tertentu dan jumlah kesalahan koneksi. |
mysql_global_status_threads_connected | Menunjukkan jumlah thread tempat koneksi ke database MySQL dibuat. | |
mysql_global_status_threads_running | Menunjukkan jumlah thread tempat permintaan untuk terhubung ke database MySQL dikirim tetapi belum berhasil. | |
mysql_global_status_max_used_connections | Menunjukkan jumlah maksimum koneksi ke database MySQL. | |
mysql_global_variables_max_connections | Menunjukkan batas atas koneksi ke database MySQL. Saat jumlah koneksi mencapai batas atas, permintaan untuk membuat koneksi akan ditolak. | |
mysql_global_status_aborted_connects | Menunjukkan upaya koneksi yang gagal. | |
mysql_global_status_aborted_clients | Menunjukkan koneksi yang habis waktu tunggunya. | |
Kueri | mysql_global_status_slow_queries | Menunjukkan kueri lambat dari database MySQL. |
mysql_global_status_queries | Menunjukkan QPS dari database MySQL. | |
Lalu lintas jaringan | mysql_global_status_bytes_received | Menunjukkan trafik arah masuk. |
mysql_global_status_bytes_sent | Menunjukkan trafik arah keluar. | |
Data pemantauan file | mysql_global_status_opened_files | Menunjukkan file yang dibuka di database MySQL. |
mysql_global_status_open_files | Menunjukkan file yang sedang dibuka. | |
mysql_global_variables_open_files_limit | Menunjukkan file yang dapat dibuka. | |
mysql_global_status_innodb_num_open_files | Menunjukkan file yang dibuka oleh InnoDB. |
Konfigurasikan peringatan untuk database
Menggunakan sistem Prometheus yang dikelola sendiri untuk memantau database MySQL cukup kompleks karena memerlukan instalasi ekspor MySQL, konfigurasi penemuan layanan, dan pembuatan dasbor. Managed Service for Prometheus menyederhanakan proses ini dengan menyediakan ekspor MySQL bawaan, dasbor siap pakai, dan peringatan dalam antarmuka visual, sehingga mengurangi beban kerja.
Managed Service for Prometheus menyediakan aturan peringatan default untuk database MySQL guna membantu Anda membangun dasbor dan sistem peringatan secara efisien. Berikut adalah aturan peringatan yang telah ditetapkan:
Availability: Jika nilai metrik adalah 0, database MySQL tidak tersedia. Jika nilai metrik adalah 1, database MySQL berjalan sesuai harapan. Anda dapat mengganti variabel
${instance}dengan database MySQL yang ingin Anda pantau.mysql_up{${instance}} != 1Slow queries: Gunakan metrik ini untuk mengidentifikasi pernyataan SQL yang dapat dioptimalkan di database.
rate(mysql_global_status_slow_queries{${instance}}[5m]) > 0Connection errors: Kesalahan koneksi merupakan salah satu masalah utama dalam database. Saat peringatan dipicu, Anda akan menerima notifikasi berisi detail kesalahan, termasuk jenis kesalahan dan QPS.
rate(mysql_global_status_connection_errors_total{${instance}}[5m]) > 0Connection usage: Sebagian besar kesalahan koneksi disebabkan oleh jumlah koneksi yang tidak mencukupi. Anda dapat menganalisis kesalahan koneksi berdasarkan metrik ini.
100 * mysql_global_status_threads_connected{${instance}} / mysql_global_variables_max_connections{${instance}} > 90Saat penggunaan koneksi mencapai batas atas, database MySQL menolak permintaan koneksi. Untuk menyelesaikan masalah ini, Anda dapat meningkatkan batas atas. Sebelum meningkatkan batas atas koneksi, jalankan perintah berikut untuk memeriksa batas atas file yang dapat dibuka.
mysql_global_variables_open_files_limit - mysql_global_variables_innodb_open_filesInnoDB log wait time: Metrik ini membantu menentukan periode waktu selama mana penulisan log harus menunggu undo log untuk di-flush.
rate(mysql_global_status_innodb_log_waits{${instance}}[5m])