Bagaimana Memantau Database MySQL?
Visibilitas operasional adalah suatu keharusan di lingkungan produksi apa pun. Sangat penting untuk dapat mengidentifikasi masalah apa pun sesegera mungkin, jika tidak, Anda mungkin berakhir dalam masalah serius karena masalah yang tidak terdeteksi dapat menyebabkan gangguan layanan yang serius atau waktu henti. MySQL Enterprise Monitor adalah salah satu produk pemantauan tertua untuk MySQL di pasar, dan tersedia sebagai bagian dari perjanjian berlangganan perusahaan komersial dari Oracle. Dalam posting blog ini kita akan melihat MySQL Enterprise Monitor dan jenis wawasan yang diberikannya ke MySQL.
Pemasangan
Pertama-tama, MySQL Enterprise Monitor adalah bagian dari MySQL Enterprise Edition, penawaran komersial dari Oracle. Muncul dalam beberapa versi paket, untuk sistem operasi yang berbeda. Instalasi pada Windows 10 (sistem yang kami uji) cukup mudah. MySQL Enterprise Monitor dikonfigurasi dan beberapa layanan yang dibundel akan diinstal (MySQL, Tomcat). Alat ini dapat diakses melalui browser.
Konfigurasi Awal
Pertama-tama, Anda harus menambahkan host yang ingin Anda pantau.
Anda dapat menambahkan satu host atau sekumpulan dari mereka. Jendela dialog terlihat sama kecuali bahwa saat menambahkan secara massal, Anda dapat melewati daftar server yang dipisahkan koma.
Kami tidak akan membahas detailnya, tetapi singkatnya Anda harus menentukan dari host mana instance MySQL harus dipantau - biasanya itu adalah host tempat Anda menginstal MySQL Enterprise Monitor. Anda juga dapat mengatur agen pada instans MySQL Anda, dalam hal ini mereka juga dapat mengumpulkan data untuk host, tidak hanya metrik MySQL. Kemudian Anda perlu menentukan cara mencapai instance yang dipantau (alamat IP/nama host, pengguna, dan kata sandi). MySQL Enterprise Monitor kemudian akan membuat pengguna tambahan untuk tugas-tugas seperti pemantauan, yang tidak memerlukan hak pengguna super. Jika mau, Anda juga dapat mengonfigurasi komunikasi SSL jika itu yang digunakan instance MySQL, Anda juga dapat menentukan beberapa batas waktu dan apakah topologi replikasi harus terdeteksi otomatis atau tidak.
Yang juga penting untuk diingat adalah bahwa MySQL Enterprise Monitor sangat bergantung pada Skema Kinerja - pastikan basis data Anda telah mengaktifkan PS, jika tidak, Anda tidak akan mendapat manfaat dari sebagian besar fitur MySQL Enterprise Monitor.
Pemantauan
Setelah instance MySQL yang dipantau dikonfigurasi, Anda dapat mulai melihat data yang dikumpulkan. Bagian Ikhtisar memberi Anda ringkasan singkat tentang beberapa metrik terpenting di MySQL. Data dikumpulkan dan memudahkan untuk menemukan pola yang tidak terduga, lalu menggali lebih jauh apa yang terjadi.
Tab acara memberikan gambaran umum tentang berbagai masalah atau peristiwa yang dilaporkan oleh MySQL Enterprise Monitor dan penasihatnya. Anda dapat mengklik salah satu acara dan membaca semua tentang acara tersebut, serta langkah-langkah yang disarankan untuk dilakukan:
Dalam kasus khusus ini, sepertinya beberapa kueri melakukan pemindaian tabel lengkap dan disarankan untuk menyelidikinya lebih lanjut untuk menentukan kueri tersebut dan melihat apakah kueri tersebut dapat dioptimalkan.
Contoh lain, di sini kita melihat bahwa cache tabel tidak dikonfigurasi secara optimal. Anda dapat melihat penjelasan masalah, saran, dan tindakan yang disarankan berdasarkan peringatan ini.
Metrik
Di tab ini kita dapat melihat data untuk beberapa metrik MySQL yang berguna untuk memahami status sistem.
Grafik Deret Waktu
Tangkapan layar di atas hanyalah sebuah contoh, masih banyak grafik lainnya yang dapat dilihat.
Dimungkinkan untuk menerapkan pemfilteran:Anda dapat menentukan grafik mana yang ingin Anda lihat, Anda juga dapat menentukan rentang waktu apa yang harus ditampilkan. Selain itu, Anda cukup menandai bagian grafik dan memperbesarnya atau membuka Penganalisis Kueri dengan data dari waktu tersebut:
Kami akan membahas fungsi ini nanti, tetapi singkatnya, ini memungkinkan Anda menganalisis kueri, bagaimana kinerjanya berubah seiring waktu, dan beberapa contoh kueri.
Statistik Tabel
Tab ini memberi kita wawasan tentang statistik tabel:bagaimana tampilan lalu lintas (baris diambil, disisipkan, diperbarui, dihapus) dan seperti apa latensi untuk semua operasi baris.
Statistik Pengguna
Di tab ini MySQL Enterprise Monitor menyajikan data tentang pengguna - pernyataan yang dieksekusi, latensi, pemindaian tabel, latensi I/O, koneksi, penggunaan memori. Data ini harus memberikan wawasan yang cukup baik tentang pengguna mana yang bertanggung jawab atas beban pada database. Ini mungkin sangat berguna terutama di lingkungan multi-pengguna, di mana tidak ada satu sumber utama lalu lintas.
I/O Berkas Basis Data
File Database I/O menjelaskan bagaimana beban I/O didistribusikan ke seluruh file dalam database. Jumlah total operasi I/O, latensi, berapa banyak pembacaan dan penulisan yang dilakukan pada file tertentu.
Penggunaan Memori
Penggunaan memori menunjukkan struktur memori di MySQL, yang membantu membangun gambaran yang lebih baik tentang pemanfaatan memori dalam database. Data ini dapat berguna jika ada masalah dengan memori - mudah untuk melacak di mana pertumbuhan terbesar dan, jika perlu, mengurangi pengaturan yang relevan. Ini juga dapat membantu secara signifikan dalam mendiagnosis potensi kebocoran memori.
Kolam Penyangga InnoDB
Tab ini di MySQL Enterprise Monitor memberikan wawasan kepada pengguna tentang struktur pemanfaatan kumpulan buffer. Tabel mana yang di-cache, berapa banyak halaman kotor yang harus dibersihkan?
Permintaan
Sangat penting bagi setiap pengguna MySQL untuk memahami beban yang dibuat kueri. Pertanyaan mana yang paling bermasalah? Bagaimana mereka berperilaku dalam waktu? Kinerja dapat diukur dengan berbagai cara tetapi cukup umum bahwa kinerja yang dapat diprediksi dan stabil lebih penting daripada kinerja puncak. Selama waktu respons dapat diterima, pengguna akan menyukai hasil yang dapat diprediksi lebih baik daripada respons yang agak lebih cepat (latensi rendah), yang terkadang dapat memperlambat server secara signifikan. Itulah mengapa sangat berharga untuk melihat bagaimana kueri berperilaku dalam waktu dan menentukan perilaku mana yang tidak konsisten.
MySQL Enterprise Monitor pasti memberikan data seperti itu. Pada daftar kueri, Anda dapat dengan mudah melihat bagaimana latensi berubah seiring waktu. Garis datar bagus, paku - tidak terlalu banyak. Ini berarti pertanyaan tersebut mungkin harus diselidiki lebih lanjut. Saat Anda mengkliknya, MySQL Enterprise Monitor akan memberi Anda lebih banyak data tentangnya.
Seperti yang Anda lihat, ada beberapa data statistik tentang jenis kueri tertentu, Anda juga dapat melihat bagaimana latensi berubah seiring waktu. Di bagian bawah Anda dapat melihat beberapa contoh pernyataan dalam waktu dan Anda dapat membandingkan waktu eksekusinya.
Ketika Anda mengklik salah satunya, Anda akan melihat kueri lengkap yang dieksekusi pada saat itu. Ini dapat berguna dalam kasus kueri di mana kinerjanya berbeda tergantung pada argumen apa yang digunakan dalam kasus WHERE (misalnya, WHERE some_column ='beberapa nilai' dan nilai dalam kolom tersebut tidak didistribusikan secara merata di seluruh baris).
Replikasi
Dalam lingkungan replikasi MySQL, lag adalah sesuatu yang harus Anda pelajari untuk mengatasinya. Yang penting adalah melacaknya - seberapa parahkah para budak tertinggal? Seberapa sering itu terjadi? Dengan informasi ini, Anda dapat mencoba dan menunjukkan dengan tepat masalah dan memahami lebih baik kueri apa yang menyebabkannya. Kemudian Anda dapat mencoba menerapkan beberapa peningkatan seperti, misalnya, replikasi multi-utas dan melacak apakah perubahan tersebut meningkatkan kinerja replikasi dan mengurangi kelambatan ke tingkat yang dapat diterima.
Bagaimana MySQL Enterprise Monitor Berbeda dari ClusterControl
Seperti yang kami nyatakan, MySQL Enterprise Monitor adalah bagian dari MySQL Enterprise Edition berbayar. Untuk semua pengguna Komunitas MySQL, MariaDB atau Server Percona, MySQL Enterprise Edition tidak tersedia. ClusterControl menyediakan akses ke pemantauan MySQL dalam versi Komunitas gratisnya. Dalam hal pemantauan server dan permintaan, ada banyak kesamaan.
ClusterControl memberi Anda akses ke metrik MySQL yang dikumpulkan dan disimpan dalam database deret waktu Prometheus. Anda dapat dengan mudah melacak berbagai metrik yang tersedia di ClusterControl.
ClusterControl juga dilengkapi dengan daftar penasihat, yang dapat digunakan untuk melacak kesehatan dan kinerja database. Anda juga dapat dengan mudah membuat penasihat baru menggunakan Studio Pengembang:
Jika Anda tertarik dengan kinerja kueri, ClusterControl menyediakan Monitor Kueri untuk Anda - kueri yang dieksekusi dikumpulkan dan kinerjanya dibandingkan sehingga memudahkan pengguna untuk menentukan kueri mana yang paling banyak menggunakan CPU di database.
Anda dapat melihat data statistik pada kueri - eksekusi, baris yang dikirim dan diperiksa, waktu eksekusi. Anda juga dapat memeriksa rencana penjelasan untuk jenis kueri tertentu.
Memantau Kegigihan Polyglot
Satu perbedaan besar adalah kemampuan untuk memantau semua varian utama ekosistem MySQL (Oracle MySQL, MariaDB dan Percona Server), teknologi pengelompokan yang berbeda (NDB Cluster, Group Replication, asynchronous replica dan Galera Cluster), load balancer/proxies (HAProxy, Keepalive, Maxscale, ProxySQL) serta database open source lainnya (PostgreSQL dan MongoDB).
Otomasi dan Manajemen
ClusterControl juga menyediakan fungsionalitas untuk menerapkan satu instans atau kluster di tempat atau di cloud (AWS, GCE, dan Azure), serta fitur-fitur seperti manajemen pencadangan, failover dan pemulihan/perbaikan otomatis, peningkatan bergulir, manajemen kluster untuk replikasi atau penyiapan kluster , penskalaan, dll.
Itu saja untuk hari ini teman-teman. Jika Anda telah bekerja dengan MySQL Enterprise Monitor dan ingin menambahkan sesuatu, silakan lakukan di bagian komentar.