ProxySQL adalah proxy yang sangat populer di lingkungan MySQL. Muncul dengan serangkaian fitur yang bagus termasuk pemisahan baca/tulis, caching kueri, dan penulisan ulang kueri. ProxySQL menyimpan konfigurasinya dalam database SQLite, perubahan konfigurasi dapat diterapkan saat runtime dan dilakukan melalui perintah SQL. Ini meningkatkan kurva belajar dan bisa menjadi penghalang bagi sebagian orang yang ingin menginstalnya dan menjalankannya.
Inilah alasan mengapa ada beberapa alat yang dapat membantu Anda mengelola ProxySQL. Mari kita lihat salah satunya, proxysql-admin, dan bandingkan dengan fitur yang tersedia untuk ProxySQL di ClusterControl.
proxysql-admin
Proxysql-admin adalah alat yang disertakan dalam ProxySQL saat diinstal dari repositori Percona. Ini didedikasikan untuk membuat pengaturan Percona XtraDB Cluster di ProxySQL lebih mudah. Anda dapat menentukan pengaturan dalam file konfigurasi (/etc/proxysql-admin.cnf) atau melalui argumen ke perintah proxysql-admin. Hal ini dimungkinkan untuk:
- Konfigurasikan grup host (pembaca, penulis, penulis cadangan, offline) untuk PXC
- Buat pengguna pemantauan di ProxySQL dan PXC
- Buat pengguna aplikasi di ProxySQL dan PXC
- Konfigurasikan ProxySQL (koneksi berjalan maksimum, transaksi maksimum di belakang)
- Menyinkronkan pengguna antara PXC dan ProxySQL
- Sinkronisasi node antara PXC dan ProxySQL
- Buat aturan kueri yang telah ditentukan sebelumnya (R/W split) untuk pengguna yang diimpor dari PXC
- Konfigurasikan SSL untuk koneksi dari ProxySQL ke database backend
- Tentukan akses penulis tunggal atau round robin ke PXC
Seperti yang Anda lihat, ini sama sekali bukan alat yang rumit, ini berfokus pada penyiapan awal. Mari kita lihat beberapa contoh.
[email protected]:~# proxysql-admin --enable
This script will assist with configuring ProxySQL for use with
Percona XtraDB Cluster (currently only PXC in combination
with ProxySQL is supported)
ProxySQL read/write configuration mode is singlewrite
Configuring the ProxySQL monitoring user.
ProxySQL monitor user name as per command line/config-file is proxysql-monitor
The monitoring user is already present in Percona XtraDB Cluster.
Would you like to enter a new password [y/n] ? n
Monitoring user 'proxysql-monitor'@'10.%' has been setup in the ProxySQL database.
Configuring the Percona XtraDB Cluster application user to connect through ProxySQL
Percona XtraDB Cluster application user name as per command line/config-file is proxysql_user
Application user 'proxysql_user'@'10.%' already present in PXC.
Adding the Percona XtraDB Cluster server nodes to ProxySQL
Write node info
+------------+--------------+------+--------+
| hostname | hostgroup_id | port | weight |
+------------+--------------+------+--------+
| 10.0.0.152 | 10 | 3306 | 1000 |
+------------+--------------+------+--------+
ProxySQL configuration completed!
ProxySQL has been successfully configured to use with Percona XtraDB Cluster
You can use the following login credentials to connect your application through ProxySQL
mysql --user=proxysql_user -p --host=localhost --port=6033 --protocol=tcp
Di atas menunjukkan pengaturan awal. Seperti yang Anda lihat, mode singlewriter (default) digunakan, pemantauan dan pengguna aplikasi telah dikonfigurasi dan seluruh konfigurasi server telah disiapkan.
[email protected]:~# proxysql-admin --status
mysql_galera_hostgroups row for writer-hostgroup: 10
+--------+--------+---------------+---------+--------+-------------+-----------------------+------------------+
| writer | reader | backup-writer | offline | active | max_writers | writer_is_also_reader | max_trans_behind |
+--------+--------+---------------+---------+--------+-------------+-----------------------+------------------+
| 10 | 11 | 12 | 13 | 1 | 1 | 2 | 100 |
+--------+--------+---------------+---------+--------+-------------+-----------------------+------------------+
mysql_servers rows for this configuration
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
| hostgroup | hg_id | hostname | port | status | weight | max_conn | use_ssl | gtid_port |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
| writer | 10 | 10.0.0.153 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
| reader | 11 | 10.0.0.151 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
| reader | 11 | 10.0.0.152 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
| backup-writer | 12 | 10.0.0.151 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
| backup-writer | 12 | 10.0.0.152 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
Berikut adalah output dari konfigurasi default node PXC di ProxySQL.
ClusterControl
ClusterControl, dibandingkan dengan proxysql-admin, merupakan solusi yang jauh lebih kompleks. Itu dapat menyebarkan penyeimbang beban ProxySQL dan mengonfigurasinya terlebih dahulu sesuai dengan kebutuhan pengguna.
Saat menerapkan Anda dapat menentukan pengguna dan sandi administrator, memantau pengguna dan Anda dapat serta impor salah satu pengguna MySQL yang ada (atau buat yang baru jika ini yang Anda perlukan) agar aplikasi dapat digunakan. Dimungkinkan juga untuk mengimpor konfigurasi ProxySQL dari ProxySQL lain yang sudah Anda miliki di cluster. Itu membuat penerapan lebih cepat dan efisien.
Yang juga penting untuk disebutkan adalah bahwa ClusterControl dapat menerapkan ProxySQL di MySQL dan Galera Cluster. Dapat digunakan dengan MySQL, Percona dan MariaDB rasa MySQL.
Setelah diterapkan, ClusterControl memberi Anda opsi untuk mengelola ProxySQL sepenuhnya melalui GUI yang mudah digunakan.
Anda dapat memantau instans ProxySQL Anda.
Anda dapat memeriksa kueri yang lebih berat yang dijalankan melalui ProxySQL. Anda juga dapat membuat aturan kueri berdasarkan kueri yang tepat.
ClusterControl mengonfigurasi ProxySQL untuk pemisahan baca/tulis. Dimungkinkan juga untuk menambahkan aturan kueri khusus berdasarkan persyaratan dan konfigurasi aplikasi Anda.
Dibandingkan dengan proxysql-admin, ClusterControl memberi Anda kendali penuh atas konfigurasi server . Anda dapat menambahkan server baru, Anda dapat memindahkannya di sekitar grup host sesuai keinginan. Anda dapat membuat grup host baru (lalu, misalnya, membuat aturan kueri baru untuk grup tersebut).
Dimungkinkan juga untuk mengelola pengguna di ProxySQL. Anda dapat mengedit pengguna yang ada, mengimpor pengguna baru yang ada di database backend.
Impor massal juga dapat dilakukan. Anda juga dapat membuat pengguna baru di database ProxySQL dan backend.
ClusterControl juga dapat digunakan untuk mengkonfigurasi ulang ProxySQL. Anda dapat memodifikasi semua variabel melalui UI sederhana dengan opsi pencarian.
Seperti yang Anda lihat, ClusterControl hadir dengan fitur manajemen mendalam untuk ProxySQL. Ini memungkinkan Anda untuk menerapkan dan mengelola instance ProxySQL dengan mudah.