ProxySQL to bardzo popularny serwer proxy w środowiskach MySQL. Zawiera niezły zestaw funkcji, w tym dzielenie odczytu/zapisu, buforowanie zapytań i przepisywanie zapytań. ProxySQL przechowuje swoją konfigurację w bazie danych SQLite, zmiany konfiguracyjne mogą być wprowadzane w czasie wykonywania i wykonywane za pomocą poleceń SQL. Zwiększa to krzywą uczenia się i może być przeszkodą dla niektórych osób, które chciałyby po prostu zainstalować i uruchomić.
Z tego powodu istnieje kilka narzędzi, które mogą pomóc w zarządzaniu ProxySQL. Przyjrzyjmy się jednemu z nich, proxysql-admin, i porównajmy go z funkcjami dostępnymi dla ProxySQL w ClusterControl.
administrator-proxysql
Proxysql-admin to narzędzie, które jest zawarte w ProxySQL po zainstalowaniu z repozytoriów Percona. Jego celem jest ułatwienie konfiguracji klastra Percona XtraDB w ProxySQL. Możesz zdefiniować konfigurację w pliku konfiguracyjnym (/etc/proxysql-admin.cnf) lub poprzez argumenty komendy proxysql-admin. Możliwe jest:
- Konfiguruj grupy hostów (czytnik, program zapisujący, program zapisujący kopie zapasowe, offline) dla PXC
- Utwórz użytkownika monitorującego w ProxySQL i PXC
- Utwórz użytkownika aplikacji w ProxySQL i PXC
- Konfiguruj ProxySQL (maksymalna liczba uruchomionych połączeń, maksymalna liczba transakcji z tyłu)
- Synchronizuj użytkowników między PXC i ProxySQL
- Synchronizuj węzły między PXC i ProxySQL
- Utwórz wstępnie zdefiniowane (podział R/W) reguły zapytań dla użytkowników zaimportowanych z PXC
- Skonfiguruj SSL dla połączeń z ProxySQL do baz danych zaplecza
- Zdefiniuj pojedynczy zapis lub dostęp okrężny do PXC
Jak widać, nie jest to w żadnym wypadku skomplikowane narzędzie, skupia się na wstępnej konfiguracji. Rzućmy okiem na kilka przykładów.
[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
Powyżej pokazuje konfigurację początkową. Jak widać, zastosowano tryb singlewriter (domyślny), skonfigurowano monitorowanie i użytkowników aplikacji oraz przygotowano całą konfigurację serwera.
[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 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
Oto wynik domyślnej konfiguracji węzłów PXC w ProxySQL.
ClusterControl
ClusterControl jest, w porównaniu do proxysql-admin, rozwiązaniem o wiele bardziej złożonym. Może wdrożyć system równoważenia obciążenia ProxySQL i wstępnie skonfigurować go zgodnie z wymaganiami użytkownika.
Podczas wdrażania możesz zdefiniować użytkownika i hasło administratora, monitorować użytkownika i a także zaimportuj jednego z istniejących użytkowników MySQL (lub utwórz nowego, jeśli tego potrzebujesz), aby aplikacja mogła go używać. Możliwe jest również zaimportowanie konfiguracji ProxySQL z innego ProxySQL, który już masz w klastrze. Sprawia, że wdrożenie jest szybsze i bardziej wydajne.
Ważne jest również, aby wspomnieć, że ClusterControl może wdrożyć ProxySQL zarówno w klastrach MySQL, jak i Galera. Może być używany ze smakami MySQL, Percona i MariaDB MySQL.
Po wdrożeniu ClusterControl daje możliwość pełnego zarządzania ProxySQL za pomocą łatwego w użyciu GUI.
Możesz monitorować swoją instancję ProxySQL.
Możesz sprawdzić cięższe zapytania wykonywane przez ProxySQL. Możliwe jest również utworzenie reguły zapytania na podstawie dokładnego zapytania.
ClusterControl konfiguruje ProxySQL do podziału odczytu/zapisu. Możliwe jest również dodawanie niestandardowych reguł zapytań w oparciu o Twoje wymagania i konfigurację aplikacji.
W porównaniu z proxysql-admin, ClusterControl zapewnia pełną kontrolę nad konfiguracją serwera . Możesz dodawać nowe serwery, możesz je przenosić między grupami hostów, jak chcesz. Możesz tworzyć nowe grupy hostów (a następnie, na przykład, tworzyć dla nich nowe reguły zapytań).
Możliwe jest również zarządzanie użytkownikami w ProxySQL. Możesz edytować istniejących użytkowników, importować nowych użytkowników istniejących w bazie danych zaplecza.
Import zbiorczy jest również możliwy. Możesz także tworzyć nowych użytkowników w bazach danych ProxySQL i backendu.
ClusterControl może również służyć do ponownej konfiguracji ProxySQL. Możesz modyfikować wszystkie zmienne za pomocą prostego interfejsu użytkownika z opcją wyszukiwania.
Jak widać, ClusterControl zawiera zaawansowane funkcje zarządzania dla ProxySQL. Umożliwia łatwe wdrażanie i zarządzanie instancjami ProxySQL.