ProxySQL är en mycket populär proxy i MySQL-miljöer. Den levereras med en trevlig uppsättning funktioner, inklusive läs/skrivdelning, frågecache och omskrivning av frågor. ProxySQL lagrar sin konfiguration i SQLite-databasen, konfigurationsändringar kan tillämpas på runtime och utförs genom SQL-kommandon. Detta ökar inlärningskurvan och kan vara en blockerare för vissa människor som bara vill installera den och få den igång.
Detta är en anledning till att det finns ett par verktyg som kan hjälpa dig att hantera ProxySQL. Låt oss ta en titt på en av dem, proxysql-admin, och jämföra den med funktioner som är tillgängliga för ProxySQL i ClusterControl.
proxysql-admin
Proxysql-admin är ett verktyg som ingår i ProxySQL när det installeras från Percona repositories. Den är tillägnad att göra installationen av Percona XtraDB Cluster i ProxySQL enklare. Du kan definiera inställningen i konfigurationsfilen (/etc/proxysql-admin.cnf) eller genom argument till kommandot proxysql-admin. Det är möjligt att:
- Konfigurera värdgrupper (läsare, skribent, backup writer, offline) för PXC
- Skapa övervakningsanvändare i ProxySQL och PXC
- Skapa applikationsanvändare i ProxySQL och PXC
- Konfigurera ProxySQL (maximalt antal anslutningar som körs, maximala transaktioner bakom)
- Synkronisera användare mellan PXC och ProxySQL
- Synkronisera noder mellan PXC och ProxySQL
- Skapa fördefinierade (R/W-delade) frågeregler för användare som importeras från PXC
- Konfigurera SSL för anslutningar från ProxySQL till backend-databaserna
- Definiera en enskild författare eller round robin-åtkomst till PXC
Som du kan se är detta inte på något sätt ett komplicerat verktyg, det fokuserar på den initiala installationen. Låt oss ta en titt på några exempel.
[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
Ovan visar den första inställningen. Som du kan se användes ett singlewriter (standardläge), övervakning och applikationsanvändare har konfigurerats och hela serverkonfigurationen förbereddes.
[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 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
Här är utdata från standardkonfigurationen för PXC-noderna i ProxySQL.
ClusterControl
ClusterControl är, i jämförelse med proxysql-admin, en mycket mer komplex lösning. Den kan distribuera en ProxySQL-lastbalanserare och förkonfigurera den enligt användarkraven.
När du distribuerar kan du definiera administratörsanvändare och lösenord, övervaka användare och du kan samt importera en av de befintliga MySQL-användarna (eller skapa en ny om detta är vad du behöver) för applikationen att använda. Det är också möjligt att importera ProxySQL-konfiguration från andra ProxySQL som du redan har i klustret. Det gör distributionen snabbare och effektivare.
Vad som också är viktigt att nämna är att ClusterControl kan distribuera ProxySQL i både MySQL- och Galera-kluster. Den kan användas med MySQL, Percona och MariaDB smaker av MySQL.
När det har implementerats ger ClusterControl dig alternativ att helt hantera ProxySQL via ett lättanvänt GUI.
Du kan övervaka din ProxySQL-instans.
Du kan kontrollera de tyngre frågorna som körs via ProxySQL. Det är också möjligt att skapa en frågeregel baserat på den exakta frågan.
ClusterControl konfigurerar ProxySQL för en läs/skrivdelning. Det är också möjligt att lägga till anpassade frågeregler baserat på dina krav och applikationskonfiguration.
Jämfört med proxysql-admin ger ClusterControl dig full kontroll över serverkonfigurationen . Du kan lägga till nya servrar, du kan flytta dem runt värdgrupper som du vill. Du kan skapa nya värdgrupper (och sedan, till exempel, skapa nya frågeregler för dem).
Det är också möjligt att hantera användare i ProxySQL. Du kan redigera befintliga användare, importera nya användare som finns i backend-databasen.
Massimport är också möjligt att genomföra. Du kan också skapa nya användare på både ProxySQL- och backend-databaser.
ClusterControl kan också användas för att konfigurera om ProxySQL. Du kan ändra alla variabler genom ett enkelt användargränssnitt med sökalternativ.
Som du kan se kommer ClusterControl med djupgående hanteringsfunktioner för ProxySQL. Det låter dig distribuera och hantera ProxySQL-instanser med lätthet.