ProxySQL je velmi populární proxy v prostředích MySQL. Dodává se s pěknou sadou funkcí včetně rozdělení čtení/zápisu, ukládání dotazů do mezipaměti a přepisování dotazů. ProxySQL ukládá svou konfiguraci do databáze SQLite, změny konfigurace lze aplikovat za běhu a provádějí se pomocí příkazů SQL. To zvyšuje křivku učení a mohlo by to být překážkou pro některé lidi, kteří by jej chtěli nainstalovat a spustit.
To je důvod, proč existuje několik nástrojů, které vám mohou pomoci spravovat ProxySQL. Pojďme se podívat na jednu z nich, proxysql-admin, a porovnat ji s funkcemi dostupnými pro ProxySQL v ClusterControl.
proxysql-admin
Proxysql-admin je nástroj, který je součástí ProxySQL při instalaci z repozitářů Percona. Je věnován usnadnění nastavení Percona XtraDB Clusteru v ProxySQL. Nastavení můžete definovat v konfiguračním souboru (/etc/proxysql-admin.cnf) nebo pomocí argumentů příkazu proxysql-admin. Je možné:
- Konfigurace hostitelských skupin (čtečka, zapisovač, zapisovač záloh, offline) pro PXC
- Vytvoření monitorovacího uživatele v ProxySQL a PXC
- Vytvoření uživatele aplikace v ProxySQL a PXC
- Konfigurace ProxySQL (maximální počet běžících připojení, maximální počet transakcí pozadu)
- Synchronizace uživatelů mezi PXC a ProxySQL
- Synchronizace uzlů mezi PXC a ProxySQL
- Vytvořte předdefinovaná (R/W split) pravidla dotazů pro uživatele importované z PXC
- Nakonfigurujte SSL pro připojení z ProxySQL k backendovým databázím
- Definujte jeden zapisovač nebo kruhový přístup k PXC
Jak vidíte, nejedná se v žádném případě o komplexní nástroj, zaměřuje se na počáteční nastavení. Podívejme se na několik příkladů.
[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
Výše ukazuje počáteční nastavení. Jak můžete vidět, byl použit režim singlewriter (výchozí), monitorování a uživatelé aplikací byli nakonfigurováni a byla připravena konfigurace celého serveru.
[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 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
Zde je výstup výchozí konfigurace uzlů PXC v ProxySQL.
ClusterControl
ClusterControl je ve srovnání s proxysql-admin mnohem složitější řešení. Může nasadit nástroj pro vyrovnávání zatížení ProxySQL a předkonfigurovat jej podle požadavků uživatele.
Při nasazení můžete definovat administrátora a heslo, monitorovat uživatele a můžete také importujte jednoho ze stávajících uživatelů MySQL (nebo vytvořte nového, pokud to potřebujete), aby aplikace mohla používat. Je také možné importovat konfiguraci ProxySQL z jiných ProxySQL, které již máte v clusteru. Díky tomu je nasazení rychlejší a efektivnější.
Je také důležité zmínit, že ClusterControl může nasadit ProxySQL v MySQL i Galera Clusters. Lze jej použít s MySQL, MySQL, Percona a MariaDB.
Po nasazení vám ClusterControl poskytuje možnosti pro plnou správu ProxySQL prostřednictvím snadno použitelného GUI.
Můžete sledovat svou instanci ProxySQL.
Můžete zkontrolovat těžší dotazy prováděné prostřednictvím ProxySQL. Je také možné vytvořit pravidlo dotazu založené na přesném dotazu.
ClusterControl konfiguruje ProxySQL pro rozdělení čtení/zápisu. Je také možné přidat vlastní pravidla dotazů na základě vašich požadavků a konfigurace aplikace.
V porovnání s proxysql-admin vám ClusterControl poskytuje plnou kontrolu nad konfigurací serveru . Můžete přidávat nové servery, můžete je přesouvat po skupinách hostitelů, jak chcete. Můžete vytvořit nové hostitelské skupiny (a pak pro ně například vytvořit nová pravidla dotazů).
Je také možné spravovat uživatele v ProxySQL. Můžete upravit stávající uživatele, importovat nové uživatele, kteří existují v backendové databázi.
Je také možné provést hromadný import. Můžete také vytvářet nové uživatele na ProxySQL i na backendových databázích.
ClusterControl lze také použít k překonfigurování ProxySQL. Všechny proměnné můžete upravit pomocí jednoduchého uživatelského rozhraní s možností vyhledávání.
Jak můžete vidět, ClusterControl přichází s funkcemi pro hloubkovou správu ProxySQL. Umožňuje vám snadno nasadit a spravovat instance ProxySQL.