Pemantauan dan peringatan basis data adalah bagian yang sangat penting dari operasi basis data, karena kita harus memahami keadaan basis data saat ini. Jika Anda tidak memiliki pemantauan basis data yang baik, Anda tidak akan dapat menemukan masalah dalam basis data dengan cepat. Hal ini kemudian dapat mengakibatkan downtime.
Satu alat yang tersedia untuk pemantauan adalah pgDash, aplikasi SaaS untuk memantau dan memperingatkan database PostgreSQL.
Prosedur Instalasi pgDash
Pendaftaran pgDash dapat dilakukan melalui website atau juga dapat diunduh (self-hosted) yang disediakan oleh RapidLoop.
Proses instalasi pgDash sederhana, kita hanya perlu mendownload paket yang dibutuhkan dari pgDash untuk dikonfigurasi di sisi server host/database.
Anda dapat menjalankan proses sebagai berikut:
[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgmetrics/releases/download/v1.9.0/pgmetrics_1.9.0_linux_amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 647 100 647 0 0 965 0 --:--:-- --:--:-- --:--:-- 964
100 3576k 100 3576k 0 0 189k 0 0:00:18 0:00:18 --:--:-- 345k
[[email protected] ~]$ tar xvf pgmetrics_1.9.0_linux_amd64.tar.gz
pgmetrics_1.9.0_linux_amd64/LICENSE
pgmetrics_1.9.0_linux_amd64/README.md
pgmetrics_1.9.0_linux_amd64/pgmetrics
[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgdash/releases/download/v1.5.1/pgdash_1.5.1_linux_amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 644 100 644 0 0 1370 0 --:--:-- --:--:-- --:--:-- 1367
100 2314k 100 2314k 0 0 361k 0 0:00:06 0:00:06 --:--:-- 560k
[[email protected] ~]$ tar xvf pgdash_1.5.1_linux_amd64.tar.gz
pgdash_1.5.1_linux_amd64/LICENSE
pgdash_1.5.1_linux_amd64/README.md
pgdash_1.5.1_linux_amd64/pgdash
[[email protected] ~]$ ./pgmetrics_1.9.0_linux_amd64/pgmetrics --no-password -f json ccdb | ./pgdash_1.5.1_linux_amd64/pgdash -a NrxaHk3JH2ztLI06qQlA4o report myserver1
Selain pgDash Anda akan memerlukan paket lain, pgmetrics, untuk diinstal untuk pemantauan. pgmetrics adalah sebuah utilitas open source yang tugasnya mengumpulkan informasi dan statistik dalam database yang dibutuhkan oleh pgDash, sedangkan tugas pgdash adalah mengirimkan informasi tersebut ke dashboard.
Jika Anda ingin menambahkan lebih banyak database ke platform pemantauan, Anda perlu untuk mengulangi proses di atas untuk setiap database.
Meskipun instalasi pgDash sederhana, ada proses berulang yang dapat menjadi perhatian jika ada database tambahan yang perlu dipantau. Kemungkinan besar Anda perlu membuat skrip otomatisasi untuk itu.
Metrik pgDash
Ada 3 fitur utama pada pgDash Dashboard, yaitu:
- Dasbor :terdiri dari submenu seperti:Overview, Database, Query, Backend, Locks, Tablespace, Replication, WAL Files, BG Writers, Vacuum, Roles, Configuration.
- Alat :terdiri dari submenu, seperti Index Management, Tablespace Management, Diagnostics, dan Top-K.
- Peringatan :terdiri dari submenu seperti Alerts &Change Alerts.
Pemantauan PostgreSQL oleh ClusterControl
Monitoring yang dilakukan oleh ClusterControl menggunakan metode ssh dan koneksi langsung dari node controller ke node database target dalam mengumpulkan informasi yang diperlukan untuk ditampilkan di dashboard.
ClusterControl juga memiliki fitur Pemantauan Berbasis Agen yang dapat dengan mudah diaktifkan. Anda dapat melihatnya di bawah ini...
ClusterControl kemudian akan melakukan proses instalasi prometheus, pengekspor simpul, dan PostgreSQL eksportir, dalam database yang ditargetkan yang bertujuan untuk mengumpulkan dan mengumpulkan informasi yang diperlukan oleh dasbor untuk menampilkan metrik.
Jika Pemantauan Berbasis Agen aktif, basis data target baru akan ditambahkan dan dipantau secara otomatis oleh Pemantauan Berbasis Agen.
Dasbor Kontrol Cluster
Di sini Anda dapat melihat informasi di layar Ikhtisar Cluster PostgreSQL dan Informasi Sistem. Dalam fungsi ini Anda dapat melihat informasi rinci seperti versi db, ID transaksi, Checkpoint Terakhir dan Tanggal dan Waktu saat server hidup. Informasi ini digambarkan di bawah ini:
Pada halaman System Information, kita bisa mendapatkan informasi seperti Load Average, Memory Usage, Swap Usage, lihat gambar di bawah ini:
- Database :anda bisa mendapatkan informasi seperti nama db, ukuran db, jumlah tabel, indeks dan juga tablespace.
- Permintaan :Anda dapat memantau Panggilan, Disk Write, Disk Read, Buffer Hit dari kueri. Selain itu, Anda dapat menelusuri kueri apa pun yang berjalan dalam jangka waktu tertentu.
- Backend :Anda dapat memantau status backend basis data saat ini, dalam informasi ini, detail penting disediakan, seperti backend menunggu kunci, backend menunggu lainnya, transaksi terbuka terlalu lama, backend idling dalam transaksi. Anda juga dapat melihat semua backend yang berjalan di database.
- Kunci :Anda dapat memeriksa jumlah total kunci, kunci yang tidak diberikan, dan kueri yang diblokir.
- Ruang Meja :menyediakan informasi yang berkaitan dengan tablespace, mis. ukuran tablespace, penggunaan Disk dan Inode.
- Replikasi :Anda dapat memantau status Replikasi Anda di database PostgreSQL, mulai dari Slot Replikasi, Replikasi Masuk, Replikasi Keluar, Publikasi Replikasi, dan Langganan Replikasi.
- Berkas Wal :memberikan informasi terkait WAL (Write Ahead Log) dan juga statistik, misalnya: Jumlah File WAL, Tingkat Pembuatan WAL, File WAL yang Dihasilkan Setiap Jam.
- Penulis BG :memberikan informasi yang berkaitan dengan database pos pemeriksaan, buffer tertulis, dan parameter yang terkait dengan Penulis Latar Belakang.
- Kemajuan Vakum :berisi informasi terkait Vacuum yang berjalan di database, juga parameter vakum.
- Peran :berisi informasi terkait role yang ada di database termasuk privileges.
- Konfigurasi :berisi parameter dalam database PostgreSQL.
Di dalam Tools, terdapat sub-menu seperti Index Management yang menyediakan informasi yaitu. Indeks Tidak Digunakan, Indeks Bloat, dan Indeks dengan Rasio Hit Cache Rendah. Tablespace Management menyediakan informasi yang berhubungan dengan Tablespace dan objek lain yang tersedia di bawah.
Diagnostik, untuk memahami potensi masalah yang mungkin terjadi melalui 10 Tabel Paling Kembung Teratas, 10 Indeks Paling Kembung Teratas, Daftar Slot Replikasi Tidak Aktif, 10 Transaksi Berjalan Terpanjang Teratas, dll.
ClusterControl memiliki beberapa metrik di bawah menu terpisah, yaitu Overview, Nodes, Dashboard, Query Monitor, dan Performance, lihat gambar di bawah ini :
Bila Pemantauan Berbasis Agen diaktifkan, maka semua informasi yang terkait dengan statistik dan informasi lain yang terkait dengan database akan disimpan dalam database deret waktu (prometheus). Anda dapat melihat informasi tersebut di ClusterControl seperti yang digambarkan di bawah ini :
Di Monitor Kueri, Anda dapat menemukan Kueri Teratas, Kueri Berjalan, Kueri Pencilan, atau menu Statistik Kueri. Mereka memberikan informasi yang terkait dengan menjalankan kueri, kueri teratas, dan statistik database. Anda juga dapat mengonfigurasi kueri lambat dan kueri non-pengindeksan.
Pada Performance, terdapat submenu seperti DB Growth yang dapat menampilkan informasi statistik database dan ukuran tabel. Schema Analyzer memberikan informasi yang terkait dengan Redundant Index dan Tabel tanpa kunci utama.
Pemberitahuan PostgreSQL
Ada dua bagian dari peringatan...
- Aturan Peringatan :aturan peringatan memainkan peran utama, Anda dapat menentukan batas sebagai parameter yang dapat memicu alarm ke DBA.
- Integrasi Pihak Ketiga :adalah saluran integrasi ke platform manajemen insiden untuk komunikasi dan kolaborasi seperti:PagerDuty, OpsGenie, Slack, atau melalui Email.
PgDash memiliki banyak opsi parameter database yang dapat Anda atur terkait dengan aturan peringatan, dibagi dalam beberapa lapisan mulai dari Server, Database, Tabel, Indeks, Tablespace, dan Query. Anda dapat melihat informasi tersebut di pgDash seperti yang digambarkan di bawah ini...
Adapun saluran integrasi pihak ketiga, pgDash memiliki dukungan untuk beberapa saluran seperti seperti Slack, Pagerduty, VictorOps, Xmatters, e-mail, atau membuat webhook sendiri sehingga dapat digunakan oleh layanan lain.
Berikut adalah tampilan Integrasi pihak Ketiga pgDash :
Berbeda dengan pgDash, ClusterControl memiliki opsi peringatan peristiwa yang lebih luas dan umum , dimulai dengan peringatan yang terkait dengan host, jaringan, cluster, dan database itu sendiri. Berikut ini adalah contoh pilihan event yang dapat dipilih :
ClusterControl dapat memilih beberapa cluster database dalam satu peringatan peristiwa. Integrasi pihak ketiga dari ClusterControl mendukung beberapa manajemen insiden dan alat komunikasi / kolaborasi seperti PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow, atau dapat membuat webhook Anda sendiri.
Di bagian aturan peringatan, pgDash dan ClusterControl memiliki kelebihan dan kekurangan. Kelebihan pgDash adalah Anda dapat mengatur alert database yang sangat detail terkait dengan apa yang akan dikirim, sedangkan kekurangannya adalah Anda harus melakukan pengaturan ini di setiap database (walaupun ada fitur untuk mengimport dari konfigurasi database lain.
ClusterControl tidak memiliki peringatan peristiwa yang mendetail, hanya peristiwa database umum, tetapi ClusterControl dapat mengirim peringatan tidak hanya terkait dengan database, tetapi dapat mengirim peringatan peristiwa dari node, cluster, jaringan, dll. Selain itu, Anda dapat mengatur peringatan ini untuk beberapa cluster database.
Di bagian Integrasi pihak ketiga, pgDash dan ClusterControl keduanya memiliki dukungan untuk berbagai manajemen insiden pihak ketiga dan saluran komunikasi. Bahkan keduanya dapat membuat webhook sendiri sehingga dapat digunakan oleh layanan lain (misalnya Grafana).