Load balancer merupakan komponen penting dalam ketersediaan tinggi database; terutama ketika membuat perubahan topologi transparan ke aplikasi dan mengimplementasikan fungsi baca-tulis split. ClusterControl menyediakan serangkaian fitur untuk menyebarkan, memantau, dan mengonfigurasi teknologi load balancing open source terkemuka di industri dengan aman.
Pada tahun lalu kami telah menambahkan dukungan untuk ProxySQL dan menambahkan beberapa peningkatan untuk HAProxy dan Maxscale MariaDB. Kami melanjutkan tradisi ini dengan rilis terbaru ClusterControl 1.5.
Berdasarkan umpan balik yang kami terima dari pengguna kami, kami telah meningkatkan cara ProxySQL dikelola. Kami juga menambahkan dukungan untuk HAProxy dan Keepalive agar berjalan di atas cluster PostgreSQL.
Dalam posting blog ini, kita akan melihat peningkatan ini...
ProxySQL - Penyempurnaan Manajemen Pengguna
Sebelumnya, UI hanya mengizinkan Anda membuat pengguna baru atau menambahkan pengguna yang sudah ada, satu per satu. Satu umpan balik yang kami dapatkan dari pengguna kami adalah cukup sulit untuk mengelola sejumlah besar pengguna. Kami mendengarkan dan di ClusterControl 1.5, sekarang dimungkinkan untuk mengimpor sejumlah besar pengguna. Mari kita lihat bagaimana Anda bisa melakukannya. Pertama-tama, Anda harus menggunakan ProxySQL Anda. Lalu, buka node ProxySQL, dan di tab Pengguna, Anda akan melihat tombol “Impor Pengguna”.
Setelah Anda mengkliknya, kotak dialog baru akan terbuka:
Di sini Anda dapat melihat semua pengguna yang dideteksi ClusterControl di cluster Anda. Anda dapat menggulirnya dan memilih yang ingin Anda impor. Anda juga dapat memilih atau membatalkan pilihan semua pengguna dari tampilan saat ini.
Setelah Anda mulai mengetik di kotak Pencarian, ClusterControl akan memfilter hasil yang tidak cocok, mempersempit daftar hanya untuk pengguna yang relevan dengan pencarian Anda.
Anda dapat menggunakan tombol "Pilih Semua" untuk memilih semua pengguna yang cocok dengan pencarian Anda. Tentu saja, setelah Anda memilih pengguna yang ingin Anda impor, Anda dapat mengosongkan kotak pencarian dan memulai pencarian lain:
Harap perhatikan "(7 dipilih)" - ini memberi tahu Anda berapa banyak pengguna, secara total (bukan hanya dari pencarian ini), yang telah Anda pilih untuk diimpor. Anda juga dapat mengekliknya untuk melihat hanya pengguna yang Anda pilih untuk diimpor.
Setelah Anda puas dengan pilihan Anda, Anda dapat mengklik “Berikutnya” untuk pergi ke layar berikutnya.
Di sini Anda perlu memutuskan apa yang harus menjadi hostgroup default untuk setiap pengguna. Anda dapat melakukannya berdasarkan per pengguna atau secara global, untuk seluruh kumpulan atau subkumpulan pengguna yang dihasilkan dari penelusuran.
Setelah Anda mengklik tombol “Impor Pengguna”, pengguna akan diimpor dan mereka akan muncul di tab Pengguna.
ProxySQL - Manajemen Penjadwal
Penjadwal ProxySQL adalah modul mirip cron yang memungkinkan ProxySQL untuk memulai skrip eksternal secara berkala. Jadwalnya bisa sangat terperinci - hingga satu eksekusi setiap milidetik. Biasanya, penjadwal digunakan untuk menjalankan skrip pemeriksa Galera (seperti proxysql_galera_checker.sh), tetapi penjadwal juga dapat digunakan untuk mengeksekusi skrip lain yang Anda suka. Di masa lalu, ClusterControl menggunakan penjadwal untuk menerapkan skrip pemeriksa Galera tetapi ini tidak diekspos di UI. Mulai ClusterControl 1.5, Anda sekarang memiliki kontrol penuh.
Seperti yang Anda lihat, satu skrip telah dijadwalkan untuk dijalankan setiap 2 detik (2000 milidetik) - ini adalah konfigurasi default untuk cluster Galera.
Tangkapan layar di atas menunjukkan kepada kita opsi untuk mengedit entri yang ada. Harap perhatikan bahwa ProxySQL mendukung hingga 5 argumen untuk skrip yang akan dijalankan melalui penjadwal.
Jika Anda ingin skrip baru ditambahkan ke scheduler, Anda dapat mengklik tombol "Tambahkan Script Baru" dan Anda akan disajikan layar seperti di atas. Anda juga dapat melihat pratinjau bagaimana skrip lengkap akan terlihat saat dijalankan. Setelah Anda mengisi semua kolom “Argumen” dan menentukan interval, Anda dapat mengklik tombol “Tambahkan Script Baru”.
Akibatnya, skrip akan ditambahkan ke penjadwal dan akan terlihat di daftar skrip terjadwal.
Unduh Whitepaper Hari Ini Pengelolaan &Otomatisasi PostgreSQL dengan ClusterControlPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan PostgreSQLUnduh WhitepaperPostgreSQL - Membangun Tumpukan Ketersediaan Tinggi
Menyiapkan replikasi dengan failover otomatis itu bagus, tetapi aplikasi memerlukan cara sederhana untuk melacak master yang dapat ditulisi. Jadi kami menambahkan dukungan untuk HAProxy dan Keepalive di atas cluster PostgreSQL. Ini memungkinkan pengguna PostgreSQL kami untuk menerapkan tumpukan ketersediaan tinggi penuh menggunakan ClusterControl.
Dari sub tab Load Balancer, Anda sekarang dapat menerapkan HAProxy - jika Anda sudah familiar dengan bagaimana ClusterControl menyebarkan replikasi MySQL, ini adalah pengaturan yang sangat mirip. Kami menginstal HAProxy pada host tertentu, dua backend, membaca pada port 3308 dan menulis pada port 3307. Ini menggunakan tcp-check, mengharapkan string tertentu untuk kembali. Untuk menghasilkan string itu, langkah-langkah berikut dijalankan pada semua node database. Pertama-tama, xinet.d dikonfigurasi untuk menjalankan layanan pada port 9201 (untuk menghindari kebingungan dengan pengaturan MySQL, yang menggunakan port 9200).
# default: on
# description: postgreschk
service postgreschk
{
flags = REUSE
socket_type = stream
port = 9201
wait = no
user = root
server = /usr/local/sbin/postgreschk
log_on_failure += USERID
disable = no
#only_from = 0.0.0.0/0
only_from = 0.0.0.0/0
per_source = UNLIMITED
Layanan mengeksekusi skrip /usr/local/sbin/postgreschk, yang memvalidasi status PostgreSQL dan memberi tahu apakah host yang diberikan tersedia dan jenis hostnya (master atau slave). Jika semuanya baik-baik saja, ia mengembalikan string yang diharapkan oleh HAProxy.
Sama seperti MySQL, node HAProxy di cluster PostgreSQL terlihat di UI dan halaman status dapat diakses:
Di sini Anda dapat melihat kedua backend dan memverifikasi bahwa hanya master yang siap untuk r/w backend dan semua node dapat diakses melalui backend read-only. Anda juga bisa mendapatkan beberapa statistik tentang lalu lintas dan koneksi.
HAProxy membantu meningkatkan ketersediaan tinggi, tetapi dapat menjadi satu titik kegagalan. Kita perlu bekerja ekstra dan mengonfigurasi redundansi dengan bantuan Keepalive.
Di bawah Kelola -> Penyeimbang beban -> Keepalived, Anda memilih host HAProxy yang ingin Anda gunakan dan Keepalive akan diterapkan di atasnya dengan IP Virtual yang terpasang pada antarmuka pilihan Anda.
Mulai sekarang, semua konektivitas harus masuk ke VIP, yang akan dilampirkan ke salah satu node HAProxy. Jika node tersebut turun, Keepalived akan menurunkan VIP pada node tersebut dan membawanya ke node HAProxy lainnya.
Itu saja untuk fitur penyeimbangan beban yang diperkenalkan di ClusterControl 1.5. Cobalah dan beri tahu kami bagaimana Anda