PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Memantau PostgreSQL di Lingkungan Hibrida

Hybrid Cloud adalah konsep terbaru yang telah ditingkatkan selama beberapa tahun, dan sekarang merupakan topologi umum di perusahaan mana pun untuk Disaster Recovery Plan (DRP), atau bahkan memiliki redundansi pada sistem Anda.

Setelah Anda menjalankan dan menjalankan lingkungan Hybrid Cloud, Anda perlu mengetahui apa yang terjadi setiap saat. Pemantauan adalah suatu keharusan jika Anda ingin memastikan semuanya berjalan dengan baik atau jika Anda mungkin perlu mengubah sesuatu. Untuk setiap teknologi database, ada beberapa hal yang harus dipantau. Beberapa di antaranya khusus untuk mesin database, vendor, atau bahkan versi spesifik yang Anda gunakan.

Di blog ini, kita akan melihat apa yang perlu Anda pantau dalam database PostgreSQL yang berjalan di lingkungan Hybrid Cloud dan bagaimana ClusterControl dapat membantu Anda dalam tugas ini.

Apa yang Harus Dipantau di PostgreSQL

Saat memantau klaster atau simpul 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 (yang umum untuk semua mesin basis data dan bahkan untuk semua sistem) 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/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, serta 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 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.

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.

Status 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 dan 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.

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.

Satu poin penting di sini adalah bahwa ClusterControl bekerja di Cloud, On-prem, atau bahkan kombinasi keduanya. Persyaratan di sini adalah memiliki akses SSH ke node, dan kemudian, ClusterControl akan menanganinya.

Memantau Database PostgreSQL Anda dengan ClusterControl

ClusterControl adalah sistem manajemen dan pemantauan yang membantu menyebarkan, mengelola, memantau, dan menskalakan database Anda dari antarmuka yang ramah. Ini memiliki dukungan untuk teknologi database open-source teratas dan Anda dapat mengotomatiskan banyak tugas database yang harus Anda lakukan secara teratur seperti menambahkan dan menskalakan node baru, menjalankan pencadangan dan pemulihan, dan banyak lagi.

ClusterControl 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 mengaktifkan pemantauan berbasis agen untuk menghasilkan dasbor yang lebih detail.

Anda juga dapat membuat lansiran, yang memberi tahu Anda tentang peristiwa di kluster Anda, atau berintegrasi dengan berbagai layanan seperti PagerDuty atau Slack.

Di bagian monitor kueri, Anda dapat menemukan kueri teratas, kueri yang berjalan, outlier kueri, dan statistik kueri untuk memantau lalu lintas database Anda.

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, sehingga 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 sistem terpusat yang sama: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, atau memantau klaster database Anda.

Daftar Cluster

Daftar Node

Anda dapat melakukan semua tugas (dan bahkan lebih banyak lagi) yang tersedia di UI ClusterControl, dan Anda dapat mengintegrasikan fitur ini dengan beberapa alat eksternal seperti slack, untuk mengelolanya dari sana.

Kesimpulan

Seperti yang Anda lihat, pemantauan mutlak diperlukan, tidak peduli apakah itu berjalan di tempat, di cloud, atau bahkan di campurannya, dan cara terbaik untuk melakukannya bergantung pada infrastruktur dan sistem itu sendiri. Di blog ini, kami menyebutkan beberapa metrik penting untuk dipantau di lingkungan PostgreSQL Anda, cara menggunakan ClusterControl untuk melakukan pekerjaan itu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django:Grup Kueri Berdasarkan Bulan

  2. Tentang kegunaan indeks ekspresi

  3. pip install gagal dengan /usr/bin/clang:Tidak ada file atau direktori seperti itu

  4. Bagaimana Anda membuat pengguna hanya-baca di PostgreSQL?

  5. Sisipan multi-baris dengan pg-promise