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

Cara Memantau PostgreSQL Berjalan Di Dalam Wadah Docker:Bagian Kedua

Ini adalah bagian kedua dari multi-seri Cara Memantau PostgreSQL Berjalan di Dalam Wadah Docker. Di Bagian 1, saya menyajikan ikhtisar tentang wadah buruh pelabuhan, kebijakan, dan jaringan. Di bagian ini kita akan melanjutkan dengan konfigurasi buruh pelabuhan dan akhirnya mengaktifkan pemantauan melalui ClusterControl.

PostgreSQL adalah sekolah lama, database open-source yang popularitasnya masih meningkat, digunakan secara luas dan diterima di sebagian besar lingkungan cloud saat ini.

Saat digunakan di dalam wadah, ia dapat dengan mudah dikonfigurasi dan dikelola oleh Docker, menggunakan tag yang berbeda untuk pembuatan dan dikirimkan ke komputer mana pun di dunia dengan Docker terpasang, tetapi ini semua tentang Docker.

Sekarang kita akan membahas tentang PostgreSQL, dan untuk memulai, mari kita daftar enam proses utama mereka yang berjalan secara bersamaan di dalam wadah oleh pengguna OS yang disebut "postgres", yang berbeda dari pengguna "postgres" di dalam database, yang satu itu adalah pengguna super.

Ingatlah bahwa panah biru pada gambar menampilkan perintah yang dimasukkan di dalam wadah.

$ ps auxww
Proses utama PostgreSQL

Proses pertama dalam daftar adalah server PostgreSQL, dan yang lainnya dimulai olehnya. Tugas mereka pada dasarnya adalah menganalisis apa yang terjadi di server, menjadi sub-proses yang melakukan input statistik, menulis log, dan hal-hal semacam itu.

Kami akan menggunakan ClusterControl untuk memantau aktivitas di dalam wadah ini yang memiliki server PostgreSQL, dan untuk melakukannya kami perlu menginstal SSH untuk menghubungkannya dengan aman.

Server Shell Aman (SSH)

Untuk mengumpulkan informasi tentang wadah PostgreSQL, tidak ada yang lebih baik dari SSH. Ini memberikan akses jarak jauh untuk satu alamat IP ke yang lain, dan ini semua yang dibutuhkan ClusterControl untuk melakukan pekerjaan itu.

SSH perlu diunduh dari repositori, dan untuk melakukannya kita harus berada di dalam wadah.

$ docker container exec -it postgres-2 bash
$ apt-get update && apt-get install -y openssh-server openssh-client
Menginstal SSH di wadah "postgres-2"

Setelah menginstal, kami akan mengedit konfigurasi, memulai layanan, menyiapkan kata sandi untuk pengguna root, dan akhirnya meninggalkan wadah:

$ sed -i 's|^PermitRootLogin.*|PermitRootLogin yes|g' /etc/ssh/sshd_config
$ sed -i 's|^#PermitRootLogin.*|PermitRootLogin yes|g' /etc/ssh/sshd_config
$ service ssh start
$ passwd
$ exit
Mengonfigurasi SSH di wadah "postgres-2", bagian 1/2

Pemantauan dengan ClusterControl

ClusterControl memiliki sistem integrasi mendalam yang dapat memantau semua proses PostgreSQL secara real-time, juga dilengkapi dengan library Advisors untuk menjaga keamanan data, melacak kinerja database, dan tentu saja memberikan peringatan saat terjadi anomali.

Dengan konfigurasi SSH, ClusterControl dapat memantau aktivitas perangkat keras OS dan memberikan wawasan tentang database dan lapisan luar.

Kami akan menjalankan menjalankan wadah baru, dan memublikasikannya ke port 5000 komputer kami, kemudian kami akan dapat mengakses sistem melalui browser kami.

$ docker container run --name s9s-ccontrol --network bridge-docker -p 5000:80 -d severalnines/clustercontrol
Menjalankan wadah "s9s-ccontrol" untuk Somenines ClusterControl

Setelah di-deploy, hanya tinggal konfigurasi SSH, dan kami punya kabar baik, karena kami berada di Jaringan Jembatan Buatan Pengguna, kami dapat menggunakan DNS!

$ docker container exec -it s9s-ccontrol bash
$ ssh-copy-id postgres-2
Mengonfigurasi SSH di wadah "postgres-2", bagian 2/2

Setelah masuk "yes" dan tentukan password yang diberikan sebelumnya, dimungkinkan untuk mengakses container "postgres-2" sebagai root menggunakan SSH:

$ ssh postgres-2
Berhasil memeriksa koneksi SSH

Warna baru ini, biru muda, akan digunakan berikut ini untuk mewakili aktivitas di dalam database. Pada contoh di atas kita telah mengakses wadah "postgres-2" dari "s9s-ccontrol", tetapi itu masih pengguna root. Jaga perhatian dan kritik Anda dengan saya.

Jadi langkah selanjutnya masuk ke browser dan akses http://localhost:5000/clustercontrol/users/welcome/ dan daftarkan akun, atau jika Anda sudah memilikinya, kunjungi http://localhost:5000/clustercontrol/users/login .

Kemudian “Import Existing Server/Cluster” dan masukkan konfigurasi sebelumnya. Tab "PostgreSQL &TimescaleDB" harus dipilih. Di bidang "Pengguna SSH" untuk demonstrasi ini cukup ketik "root". Kemudian akhirnya masukkan "Nama Cluster", dan itu bisa nama apa saja yang Anda inginkan, cukup yang akan menampung sebanyak mungkin wadah PostgreSQL yang ingin Anda impor dan pantau.

Mengimpor database "postgres-2", bagian 1/2

Sekarang saatnya memasukkan informasi tentang container PostgreSQL, User “postgres”, Password “5af45Q4ae3Xa3Ff4” dan container yang diinginkan. Sangat penting untuk diingat bahwa layanan SSH harus aktif di dalam container PostgreSQL.

Mengimpor wadah "postgres-2", bagian 2/2

Setelah menekan tombol “Import”, ClusterControl akan mulai mengelola container PostgreSQL “postgres-2” di dalam Cluster yang disebut “PostgreSQL”, dan akan menginformasikan kapan proses import selesai.

Log tentang proses impor container "postgres-2"

Setelah selesai, sistem akan ditampilkan di bawah tab Cluster, Cluster yang paling baru dibuat dan opsi berbeda yang dipisahkan dalam beberapa bagian

Langkah visualisasi pertama kami akan berada di opsi Ikhtisar.

Kluster PostgreSQL berhasil diimpor

Seperti yang dapat Anda bayangkan, database kami kosong dan kami tidak memiliki kekacauan apa pun di sini untuk kesenangan kami, tetapi grafik masih berfungsi dalam skala kecil yang berisi statistik tentang proses SQL dan Database.

Menampilkan statistik tentang aktivitas SQL dan Database

Simulasi Skenario Dunia Nyata

Untuk memberikan beberapa tindakan, saya telah membuat file CSV menggunakan Python, menjelajahi repositori GitHub dari Socratica, yang menyediakan kursus luar biasa di YouTube, dan mereka membuat file tersebut tersedia secara gratis.

Singkatnya, file CSV yang dibuat memiliki 9 juta, 999 ribu, dan 999 catatan tentang orang, masing-masing berisi ID, nama depan, nama belakang, dan tanggal lahir. Ukuran file adalah 324 MB:

$ du -s -h persons.csv
Memeriksa ukuran file CSV

Kami akan menyalin file CSV ini ke dalam wadah PostgreSQL, lalu menyalinnya lagi tapi kali ini ke database, dan terakhir memeriksa statistik di ClusterControl.

$ docker container cp persons.csv postgres-2:/persons.csv
$ docker container exec -it postgres-2 bash
$ du -s -h persons.csv
$ su - postgres
$ psql
Mentransfer file CSV ke wadah dan masuk ke database

Ok, jadi kita sekarang berada di database, sebagai super user “postgres”, harap perhatikan perbedaan warna pada tanda panah.

Sekarang, kita harus membuat database, tabel, dan mengisinya dengan data yang ada di file CSV, dan terakhir memeriksa apakah semuanya berfungsi dengan baik.

$ CREATE DATABASE severalnines;
$ \c severalnines;
$ CREATE TABLE persons (id SERIAL NOT NULL, first_name VARCHAR(50), last_name VARCHAR(50), birthday DATE, CONSTRAINT persons_pkey PRIMARY KEY (id));
$ COPY persons (id, first_name, last_name, birthday) FROM '/persons.csv' DELIMITER ',' CSV HEADER;
Menghubungkan ke database baru dan mengimpor file CSV

Proses ini membutuhkan waktu beberapa menit untuk diselesaikan.

Oke, jadi sekarang mari kita masukkan beberapa pertanyaan:

Kueri dalam database "beberapa"

Jika Anda melihat ClusterControl sekarang, beberapa perubahan statistik tentang perangkat keras terjadi:

Menampilkan statistik tentang CPU di dalam ClusterControl

Seluruh bagian untuk memantau kueri disediakan dengan UI yang mudah digunakan:

Menampilkan statistik tentang Kueri di dalam ClusterControl

Statistik tentang database PostgreSQL melayani DBA terbaik untuk melakukan seluruh potensi mereka pada tugas utama mereka, dan ClusterControl adalah sistem lengkap untuk menganalisis setiap aktivitas yang terjadi secara real time, memberikan informasi berdasarkan semua data yang dikumpulkan dari proses database.

Dengan ClusterControl, DBA juga dapat dengan mudah memperluas keterampilan mereka menggunakan seperangkat alat lengkap untuk membuat Cadangan secara lokal atau di Cloud, Replications, Load Balancer, integrasi dengan layanan, LDAP, ChatOps, Prometheus, dan banyak lagi.

Kesimpulan

Melalui artikel ini, kami telah mengonfigurasi PostgreSQL di dalam Docker, dan berintegrasi dengan ClusterControl menggunakan Jaringan Jembatan yang Ditentukan Pengguna dan SSH, mensimulasikan skenario yang mengisi database dengan file CSV, dan kemudian melakukan pemeriksaan cepat keseluruhan di antarmuka pengguna ClusterControl .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Saya mencoba menyalin file, tetapi mendapatkan pesan kesalahan

  2. setel kata sandi kosong untuk pengguna PostgreSQL

  3. Paralel unnest() dan mengurutkan urutan di PostgreSQL

  4. Bagaimana cara membuat Tampilan SQL dengan SQLAlchemy?

  5. Menggunakan Otomatisasi untuk Mempercepat Tes Rilis di PostgreSQL