ProxySQL er en meget populær proxy i MySQL-miljøer. Den kommer med et godt sæt funktioner, herunder læse/skriveopdeling, forespørgselscache og forespørgselsomskrivning. ProxySQL gemmer sin konfiguration i SQLite-databasen, konfigurationsændringer kan anvendes på runtime og udføres gennem SQL-kommandoer. Dette øger indlæringskurven og kan være en blokering for nogle mennesker, der bare vil installere det og få det til at køre.
Dette er en grund til, at der findes et par værktøjer, som kan hjælpe dig med at administrere ProxySQL. Lad os tage et kig på en af dem, proxysql-admin, og sammenligne den med funktioner, der er tilgængelige for ProxySQL i ClusterControl.
proxysql-admin
Proxysql-admin er et værktøj, der er inkluderet i ProxySQL, når det installeres fra Percona repositories. Det er dedikeret til at gøre opsætningen af Percona XtraDB Cluster i ProxySQL nemmere. Du kan definere opsætningen i konfigurationsfilen (/etc/proxysql-admin.cnf) eller gennem argumenter til kommandoen proxysql-admin. Det er muligt at:
- Konfigurer værtsgrupper (læser, skribent, backup writer, offline) til PXC
- Opret overvågningsbruger i ProxySQL og PXC
- Opret applikationsbruger i ProxySQL og PXC
- Konfigurer ProxySQL (maksimal kørende forbindelser, maksimale transaktioner bagved)
- Synkroniser brugere mellem PXC og ProxySQL
- Synkroniser noder mellem PXC og ProxySQL
- Opret foruddefinerede (R/W opdelt) forespørgselsregler for brugere importeret fra PXC
- Konfigurer SSL til forbindelser fra ProxySQL til backend-databaserne
- Definer en enkelt forfatter eller round robin-adgang til PXC'en
Som du kan se, er dette på ingen måde et komplekst værktøj, det fokuserer på den indledende opsætning. Lad os tage et kig på et par eksempler.
[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
Ovenfor viser den indledende opsætning. Som du kan se, blev der brugt en singlewriter-tilstand (standard), overvågnings- og applikationsbrugere er blevet konfigureret, og hele serverkonfigurationen blev forberedt.
[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 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
Her er outputtet af standardkonfigurationen af PXC-noder i ProxySQL.
ClusterControl
ClusterControl er, sammenlignet med proxysql-admin, en meget mere kompleks løsning. Den kan implementere en ProxySQL load balancer og prækonfigurere den i henhold til brugerkravene.
Når du implementerer, kan du definere administratorbruger og adgangskode, overvåge bruger, og du kan samt importer en af de eksisterende MySQL-brugere (eller opret en ny, hvis det er det, du har brug for), som applikationen kan bruge. Det er også muligt at importere ProxySQL-konfiguration fra andre ProxySQL, som du allerede har i klyngen. Det gør implementeringen hurtigere og mere effektiv.
Det, der også er vigtigt at nævne, er, at ClusterControl kan implementere ProxySQL i både MySQL og Galera Clusters. Det kan bruges med MySQL, Percona og MariaDB smag af MySQL.
Når den er installeret, giver ClusterControl dig muligheder for fuldt ud at administrere ProxySQL via en brugervenlig GUI.
Du kan overvåge din ProxySQL-instans.
Du kan kontrollere de tungere forespørgsler, der udføres gennem ProxySQL. Det er også muligt at oprette en forespørgselsregel baseret på den nøjagtige forespørgsel.
ClusterControl konfigurerer ProxySQL til en læse/skriveopdeling. Det er også muligt at tilføje tilpassede forespørgselsregler baseret på dine krav og applikationskonfiguration.
Sammenlignet med proxysql-admin giver ClusterControl dig fuld kontrol over serverkonfigurationen . Du kan tilføje nye servere, du kan flytte dem rundt på værtsgrupper, som du vil. Du kan oprette nye værtsgrupper (og derefter f.eks. oprette nye forespørgselsregler for dem).
Det er også muligt at administrere brugere i ProxySQL. Du kan redigere eksisterende brugere, importere nye brugere, der findes i backend-databasen.
Masseimport er også muligt at udføre. Du kan også oprette nye brugere på både ProxySQL- og backend-databaser.
ClusterControl kan også bruges til at omkonfigurere ProxySQL. Du kan ændre alle variablerne gennem en simpel brugergrænseflade med søgemulighed.
Som du kan se, kommer ClusterControl med dybdegående administrationsfunktioner til ProxySQL. Det giver dig mulighed for nemt at implementere og administrere ProxySQL-instanser.