ProxySQLは、MySQL環境で非常に人気のあるプロキシです。読み取り/書き込み分割、クエリキャッシュ、クエリ再書き込みなどの優れた機能セットが付属しています。 ProxySQLはその構成をSQLiteデータベースに保存します。構成の変更は実行時に適用でき、SQLコマンドを介して実行されます。これは学習曲線を増加させ、それをインストールして実行したい人にとってはブロッカーになる可能性があります。
これが、ProxySQLの管理に役立つツールがいくつか存在する理由です。それらの1つであるproxysql-adminを見て、ClusterControlのProxySQLで使用できる機能と比較してみましょう。
proxysql-admin
Proxysql-adminは、PerconaリポジトリからインストールしたときにProxySQLに含まれるツールです。 ProxySQLでのPerconaXtraDBクラスターのセットアップを簡単にすることに専念しています。設定は、構成ファイル(/etc/proxysql-admin.cnf)で、またはproxysql-adminコマンドの引数を使用して定義できます。次のことが可能です:
- PXCのホストグループ(リーダー、ライター、バックアップライター、オフライン)を構成します
- ProxySQLとPXCで監視ユーザーを作成する
- ProxySQLとPXCでアプリケーションユーザーを作成する
- ProxySQLを構成します(最大実行接続、最大トランザクション遅延)
- PXCとProxySQLの間でユーザーを同期する
- PXCとProxySQLの間でノードを同期する
- PXCからインポートされたユーザー用に事前定義された(R / W分割)クエリルールを作成します
- ProxySQLからバックエンドデータベースへの接続用にSSLを構成します
- PXCへの単一のライターまたはラウンドロビンアクセスを定義します
ご覧のとおり、これは決して複雑なツールではなく、初期設定に重点を置いています。いくつかの例を見てみましょう。
[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
[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 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
これは、ProxySQLのPXCノードのデフォルト構成の出力です。
ClusterControl
ClusterControlは、proxysql-adminと比較して、はるかに複雑なソリューションです。 ProxySQLロードバランサーをデプロイし、ユーザーの要件に応じて事前構成できます。
デプロイするときは、管理者ユーザーとパスワードを定義し、ユーザーを監視することができます。また、アプリケーションで使用するために、既存のMySQLユーザーの1人をインポートします(または、必要に応じて新しいユーザーを作成します)。クラスタにすでにある他のProxySQLからProxySQL構成をインポートすることも可能です。展開がより速く、より効率的になります。
言及することも重要なことは、ClusterControlがMySQLとGaleraクラスターの両方にProxySQLをデプロイできることです。 MySQL、Percona、MariaDBのMySQLフレーバーで使用できます。
展開すると、ClusterControlは、使いやすいGUIを介してProxySQLを完全に管理するためのオプションを提供します。
ProxySQLインスタンスを監視できます。
ProxySQLを介して実行されたより重いクエリを確認できます。正確なクエリに基づいてクエリルールを作成することもできます。
ClusterControlは、読み取り/書き込み分割用にProxySQLを構成します。要件とアプリケーション構成に基づいて、カスタムクエリルールを追加することもできます。
proxysql-adminと比較すると、ClusterControlを使用するとサーバー構成を完全に制御できます。 。新しいサーバーを追加したり、必要に応じてホストグループ間でサーバーを移動したりできます。新しいホストグループを作成できます(たとえば、それらの新しいクエリルールを作成できます)。
ProxySQLでユーザーを管理することもできます。既存のユーザーを編集したり、バックエンドデータベースに存在する新しいユーザーをインポートしたりできます。
ClusterControlを使用して、ProxySQLを再構成することもできます。検索オプション付きのシンプルなUIを使用して、すべての変数を変更できます。
ご覧のとおり、ClusterControlにはProxySQLの詳細な管理機能が付属しています。 ProxySQLインスタンスを簡単に展開および管理できます。