Moodle adalah Learning Management System (LMS) yang dirancang untuk memberikan pendidik, administrator, dan pelajar dengan satu sistem yang kuat, aman, dan terintegrasi untuk menciptakan lingkungan belajar yang dipersonalisasi. Ini mendukung teknologi database yang berbeda (misalnya MariaDB, MySQL, PostgreSQL, dll).
Karena COVID-19, bekerja dan belajar dari rumah akhir-akhir ini meningkat secara eksponensial, sehingga ketersediaan dan kinerja platform pembelajaran semacam ini menjadi semakin penting. Satu-satunya cara Anda dapat memastikan semuanya berjalan dengan baik adalah dengan memiliki sistem Pemantauan dan Peringatan yang baik, tetapi pertanyaannya adalah apa yang perlu Anda pantau untuk memastikan bahwa sistem Anda berjalan dengan cara yang sehat.
Di blog ini, kita akan melihat apa yang perlu Anda pantau dalam Database Moodle PostgreSQL, dan bagaimana Anda dapat melakukannya dengan lebih mudah menggunakan ClusterControl.
Apa yang Harus Dipantau di PostgreSQL
Saat memantau node atau cluster database, ada dua hal utama yang harus diperhatikan:sistem operasi dan database itu sendiri. Anda perlu menentukan metrik mana yang akan Anda pantau dari kedua sisi dan bagaimana Anda akan melakukannya.
Pemantauan Sistem Operasi
Satu hal penting (yang umum untuk semua mesin basis data dan bahkan semua sistem) adalah untuk memantau perilaku Sistem Operasi. Berikut beberapa poin yang perlu diperiksa di sini.
Penggunaan CPU
Persentase penggunaan CPU yang berlebihan dapat menjadi masalah jika itu bukan perilaku yang biasa. Dalam hal ini, penting untuk mengidentifikasi proses/proses yang menghasilkan masalah ini. Jika masalahnya adalah proses database, Anda perlu memeriksa apa yang terjadi di dalam database.
Memori RAM atau Penggunaan SWAP
Jika Anda melihat nilai tinggi untuk metrik ini dan tidak ada yang berubah di sistem Anda, Anda mungkin perlu memeriksa konfigurasi database Anda. Parameter seperti shared_buffers dan work_mem dapat memengaruhi ini secara langsung karena parameter tersebut menentukan jumlah memori yang dapat digunakan untuk database PostgreSQL.
Penggunaan Disk
Peningkatan abnormal dalam penggunaan ruang disk atau konsumsi akses disk yang berlebihan adalah hal penting untuk dipantau karena Anda dapat memiliki sejumlah besar kesalahan yang dicatat dalam file log PostgreSQL atau konfigurasi cache yang buruk yang dapat menghasilkan konsumsi akses disk yang penting daripada menggunakan memori untuk memproses kueri.
Memuat Rata-Rata
Ini terkait dengan tiga poin yang disebutkan di atas. Rata-rata beban yang tinggi dapat dihasilkan oleh penggunaan CPU, RAM, atau disk yang berlebihan.
Jaringan
Masalah jaringan dapat memengaruhi semua sistem karena aplikasi tidak dapat terhubung (atau menghubungkan paket yang hilang) ke database, jadi ini adalah metrik yang penting untuk dipantau. Anda dapat memantau latensi atau kehilangan paket, dan masalah utamanya dapat berupa saturasi jaringan, masalah perangkat keras, atau hanya konfigurasi jaringan yang buruk.
Pemantauan Basis Data
Memantau database PostgreSQL Anda tidak hanya penting untuk melihat apakah Anda mengalami masalah, tetapi juga untuk mengetahui apakah Anda perlu mengubah sesuatu untuk meningkatkan kinerja database Anda, itu mungkin salah satu hal terpenting untuk memantau dalam database. Mari kita lihat beberapa metrik yang penting untuk ini.
Pemantauan Kueri
Secara umum, basis data dikonfigurasi dengan mempertimbangkan kompatibilitas dan stabilitas secara default, jadi Anda perlu mengetahui kueri dan polanya, dan mengonfigurasi basis data bergantung pada lalu lintas yang Anda miliki. Di sini, Anda dapat menggunakan perintah EXPLAIN untuk memeriksa rencana kueri untuk kueri tertentu, dan Anda juga dapat memantau jumlah SELECT, INSERT, UPDATE, atau DELETEs pada setiap node. Jika Anda memiliki kueri yang panjang atau banyak kueri yang berjalan pada saat yang sama, itu bisa menjadi masalah bagi semua sistem.
Sesi Aktif
Anda juga harus memantau jumlah sesi aktif. Jika Anda mendekati batas, Anda perlu memeriksa apakah ada sesuatu yang salah atau jika Anda hanya perlu menambah nilai koneksi maksimal dalam konfigurasi database. Perbedaan jumlah tersebut dapat berupa penambahan atau pengurangan koneksi. Penggunaan yang buruk dari penyatuan koneksi, penguncian, atau masalah jaringan adalah masalah paling umum yang terkait dengan jumlah koneksi.
Kunci
Jika Anda memiliki kueri yang menunggu kueri lain, Anda perlu memeriksa apakah kueri lain tersebut merupakan proses normal atau sesuatu yang baru. Dalam beberapa kasus, jika seseorang membuat pembaruan pada tabel besar, misalnya, tindakan ini dapat memengaruhi perilaku normal database Anda, menghasilkan sejumlah besar kunci.
Replikasi
Metrik utama untuk memantau replikasi adalah lag dan status replikasi. Masalah yang paling umum adalah masalah jaringan, masalah sumber daya perangkat keras, atau masalah dimensi. Jika Anda menghadapi masalah replikasi, Anda perlu mengetahuinya secepatnya karena Anda harus memperbaikinya untuk memastikan lingkungan ketersediaan tinggi.
Cadangan
Menghindari kehilangan data adalah salah satu tugas dasar DBA, jadi Anda tidak hanya perlu mengambil cadangan, Anda harus tahu apakah pencadangan telah selesai, dan apakah dapat digunakan. Biasanya, poin terakhir ini tidak diperhitungkan, tetapi mungkin merupakan pemeriksaan terpenting dalam proses pencadangan.
Log Basis Data
Anda harus memantau log database untuk kesalahan, masalah autentikasi, atau bahkan kueri yang sudah berjalan lama. Sebagian besar kesalahan ditulis dalam file log dengan informasi terperinci yang berguna untuk memperbaikinya.
Pemberitahuan &Peringatan
Hanya memantau sistem tidak cukup jika Anda tidak menerima pemberitahuan tentang setiap masalah. Tanpa sistem peringatan, Anda harus pergi ke alat pemantauan untuk melihat apakah semuanya baik-baik saja, dan mungkin Anda mengalami masalah besar sejak beberapa jam yang lalu. Pekerjaan peringatan ini dapat dilakukan dengan menggunakan peringatan email, peringatan teks, atau alat lain seperti Slack.
Memantau Database Moodle PostgreSQL Anda dengan ClusterControl
ClusterControl adalah sistem manajemen dan pemantauan yang membantu menyebarkan, mengelola, memantau, dan menskalakan database Anda dari antarmuka yang ramah. ClusterControl memiliki dukungan untuk teknologi database open-source teratas dan Anda dapat mengotomatiskan banyak tugas database yang harus Anda lakukan secara rutin seperti menambahkan dan menskalakan node baru, menjalankan pencadangan dan pemulihan, dan banyak lagi.
Ini memungkinkan Anda memantau server secara real-time dengan kumpulan dasbor yang telah ditentukan sebelumnya untuk menganalisis beberapa metrik yang paling umum.
Ini memungkinkan Anda untuk menyesuaikan grafik yang tersedia di cluster, dan Anda dapat memungkinkan pemantauan berbasis agen untuk menghasilkan dasbor yang lebih detail.
Anda juga dapat membuat lansiran, yang memberi tahu Anda tentang acara di klaster Anda, atau integrasikan dengan layanan yang berbeda seperti PagerDuty atau Slack.
Di bagian monitor kueri, Anda dapat menemukan kueri teratas, kueri yang sedang berjalan kueri, outlier kueri, dan statistik kueri untuk memantau lalu lintas database Anda.
Untuk manajemen pencadangan, ClusterControl memusatkannya untuk melindungi, mengamankan, dan memulihkan data, dan dengan fitur pencadangan verifikasi, Anda dapat mengonfirmasi apakah pencadangan dapat digunakan.
Pekerjaan pencadangan verifikasi ini akan memulihkan cadangan di host mandiri yang terpisah, jadi Anda dapat memastikan bahwa pencadangan berfungsi.
Terakhir, Anda tidak perlu mengakses node database untuk memeriksa log, Anda dapat menemukan semua log database terpusat di bagian ClusterControl Log.
Seperti yang Anda lihat, Anda dapat menangani semua hal yang disebutkan dari hal yang sama sistem terpusat:ClusterControl.
Pemantauan dengan Baris Perintah ClusterControl
Untuk skrip dan tugas otomatisasi, atau bahkan jika Anda lebih suka baris perintah, ClusterControl memiliki alat s9s. Ini adalah alat baris perintah untuk mengelola cluster database Anda.
Daftar Cluster
Daftar Node
Anda dapat melakukan semua tugas yang dapat Anda lihat di ClusterControl UI (dan bahkan lebih), dan Anda dapat mengintegrasikan fitur ini dengan beberapa alat eksternal seperti slack, untuk mengelolanya dari sana.
Kesimpulan
Memantau Basis Data Moodle PostgreSQL Anda diperlukan tetapi juga tugas yang memakan waktu jika Anda tidak memiliki alat untuk membantu dalam hal ini. Di blog ini, kami menyebutkan beberapa metrik utama untuk dipantau di database Moodle PostgreSQL Anda, dan bagaimana menjaga sistem Anda tetap terkendali dengan menggunakan ClusterControl.