Pemantauan adalah dasar untuk mengetahui apakah sistem Anda berfungsi dengan baik, dan memungkinkan Anda untuk memperbaiki atau mencegah masalah apa pun sebelum memengaruhi bisnis Anda. Bahkan dalam teknologi yang kuat seperti PostgreSQL, pemantauan adalah suatu keharusan, dan tujuan utamanya adalah untuk mengetahui apa yang harus dipantau, jika tidak, itu tidak masuk akal atau tidak berguna jika Anda perlu menggunakannya. Di blog ini, kita akan melihat apa itu Distribusi Percona untuk PostgreSQL dan metrik kunci apa yang harus dipantau.
Distribusi Percona untuk PostgreSQL
Ini adalah kumpulan alat untuk membantu Anda dalam mengelola sistem database PostgreSQL Anda. Ini menginstal PostgreSQL dan melengkapinya dengan pilihan ekstensi yang memungkinkan penyelesaian tugas-tugas praktis penting secara efisien, termasuk:
- pg_repack :Ini membangun kembali objek database PostgreSQL.
- pgaudit :Ini memberikan sesi mendetail atau logging audit objek melalui fasilitas logging PostgreSQL standar.
- pgBackRest :Ini adalah solusi pencadangan dan pemulihan untuk PostgreSQL.
- Pelindung :Ini adalah solusi Ketersediaan Tinggi untuk PostgreSQL.
- pg_stat_monitor :Ini mengumpulkan dan menggabungkan statistik untuk PostgreSQL dan memberikan informasi histogram.
- Koleksi ekstensi kontribusi PostgreSQL tambahan.
Distribusi Percona untuk PostgreSQL juga dikirimkan bersama pustaka libpq. Ini berisi serangkaian fungsi pustaka yang memungkinkan program klien untuk meneruskan kueri ke server backend PostgreSQL dan menerima hasil kueri ini.
Apa yang Harus Dipantau dalam Distribusi Percona untuk PostgreSQL
Saat memantau klaster basis data, ada dua hal utama yang harus diperhatikan:sistem operasi dan basis data itu sendiri. Anda perlu menentukan metrik mana yang akan Anda pantau dari kedua sisi dan bagaimana Anda akan melakukannya.
Perhatikan bahwa jika salah satu metrik Anda terpengaruh, metrik tersebut juga dapat memengaruhi yang lain, sehingga pemecahan masalah menjadi lebih rumit. Memiliki sistem pemantauan dan peringatan yang baik penting untuk membuat tugas ini sesederhana mungkin.
Pemantauan Sistem Operasi
Satu hal penting adalah memantau perilaku Sistem Operasi. Mari kita lihat beberapa poin untuk 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 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 Database PostgreSQL
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 default, PostgreSQL dikonfigurasi dengan mempertimbangkan kompatibilitas dan stabilitas, jadi Anda perlu mengetahui kueri dan polanya, dan mengonfigurasi database Anda 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.
Memantau Sesi Aktif
Anda juga harus memantau jumlah sesi aktif. Jika Anda mendekati batas, Anda perlu memeriksa apakah ada yang salah atau jika Anda hanya perlu menaikkan nilai max_connections. Perbedaan jumlah tersebut dapat berupa penambahan atau pengurangan koneksi. Penggunaan penyatuan koneksi yang buruk, penguncian, atau masalah jaringan adalah masalah paling umum yang terkait dengan jumlah koneksi.
Pengunci Basis Data
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.
Memantau 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.
Memantau 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.
Memantau Log Basis Data
Anda harus memantau log database untuk kesalahan seperti FATAL atau kebuntuan, atau bahkan untuk kesalahan umum seperti masalah autentikasi atau kueri yang berjalan lama. Sebagian besar kesalahan ditulis dalam file log dengan informasi terperinci yang berguna untuk memperbaikinya.
Dasbor
Visibilitas berguna untuk deteksi masalah dengan cepat. Ini jelas merupakan tugas yang lebih memakan waktu untuk membaca output perintah daripada hanya menonton grafik. Jadi, penggunaan dasbor bisa menjadi pembeda antara mendeteksi masalah sekarang atau dalam 15 menit ke depan, yang pasti waktu bisa sangat penting bagi perusahaan.
Peringatan
Hanya memantau sistem tidak masuk akal 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.
Memantau Database PostgreSQL Anda dengan ClusterControl
Sangat sulit menemukan alat untuk memantau semua metrik yang diperlukan untuk PostgreSQL, secara umum, Anda perlu menggunakan lebih dari satu dan bahkan beberapa skrip perlu dibuat. Salah satu cara untuk memusatkan tugas pemantauan dan peringatan adalah dengan menggunakan ClusterControl, yang memberi Anda fitur seperti manajemen pencadangan, pemantauan dan peringatan, penerapan dan penskalaan, pemulihan otomatis, dan fitur yang lebih penting untuk membantu Anda mengelola database. Semua fitur ini pada sistem yang sama.
ClusterControl memiliki kumpulan dasbor yang telah ditentukan sebelumnya untuk Anda, untuk menganalisis beberapa metrik yang paling umum.
Ini memungkinkan Anda untuk menyesuaikan grafik yang tersedia di cluster, dan Anda dapat aktifkan pemantauan berbasis agen untuk menghasilkan dasbor yang lebih detail.
Anda juga dapat membuat lansiran, yang memberi tahu Anda tentang peristiwa di kluster Anda, atau integrasikan dengan layanan yang berbeda seperti PagerDuty atau Slack.
Selain itu, Anda dapat memeriksa bagian monitor kueri, tempat Anda dapat menemukan kueri teratas, kueri yang berjalan, outlier kueri, dan statistik kueri.
Dengan fitur ini, Anda dapat melihat bagaimana database PostgreSQL Anda berjalan.
Untuk manajemen pencadangan, ClusterControl memusatkannya untuk melindungi, mengamankan, dan memulihkan data Anda, 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.
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
Kesimpulan
Pemantauan mutlak diperlukan, dan cara terbaik untuk melakukannya tergantung pada infrastruktur dan sistem itu sendiri. Di blog ini, kami memperkenalkan Anda pada Distribusi Percona untuk PostgreSQL, dan kami menyebutkan beberapa metrik penting untuk dipantau di lingkungan PostgreSQL Anda. Kami juga menunjukkan kepada Anda bagaimana ClusterControl berguna untuk tugas ini.