[+/-]
MySQL Enterprise Agent Proxy Service を使用する Query Analyzer に情報を提供する方法には、異なる 3 つのものがあります。
インストール中に設定したプロキシポートと通信するように MySQL クライアントアプリケーションを変更します。この場合、MySQL クライアントアプリケーションコードを変更する必要があります。また、場合によっては、MySQL クライアントアプリケーションを停止して再起動する必要もあります。ただし、MySQL サーバーの変更は必要ありません。詳細については、「MySQL クライアントアプリケーションを変更して Query Analyzer を有効にする」を参照してください。
MySQL サーバーのリッスンポートを変更し、元の MySQL サーバーポートでリッスンするように Agent/プロキシを設定します。MySQL クライアントアプリケーションを変更する必要はありませんが、MySQL サーバーをシャットダウンして再起動する必要があります。これにより、キャッシュおよびパフォーマンスに影響を及ぼすおそれがあります。詳細については、「MySQL Server を変更して Query Analyzer を有効にする」を参照してください。
IP テーブルを使用して、ネットワークパケットをエージェント/プロキシにリダイレクトします。
MySQL Query Analyzer は、さまざまなソースからクエリのパフォーマンス情報を収集するように設計されています。Query Analyzer は、新しいエージェントプラグインを使用してクエリをプロキシし、パフォーマンスデータを収集します。このデータはあとで Enterprise Monitor に送信されます。これはエージェントの新しい役割です。エージェントは単に監視するだけでなく、設定によっては MySQL クライアントアプリケーションと MySQL サーバーを仲介するようになりました。
システムの負荷に応じて、プロキシに過負荷をかけることも、MySQL 自体に必要なシステムリソースをプロキシ/エージェントで消費させることもできます。特に、MySQL エージェントが基本的な監視に必要とするメモリの量はかなり小さく一定で、有効にしているルールの数に依存します。しかし、Query Analyzer が有効な場合、エージェントを通してどのクエリを監視し解析するにしても、エージェントはかなりのメモリを使用する可能性があります。このような場合、使用されるメモリは固有の正規化クエリの数、クエリ例、EXPLAIN例に依存します。さらに、このクエリのパフォーマンスデータを Service Manager に送信するために必要なネットワーク帯域幅にも依存します。一般に、Query Analyzer に使用されるメモリ量はよく抑制されていますが、負荷の高い状況や、場合によっては古いバージョンの Linux で、Query Analyzer による RAM の使用率が環境と負荷に対して高くなりすぎることがあります。
したがって、このリリースの Query Analyzer を本番環境で使用する前に、開発環境、テスト環境、ステージング環境で長期間、負荷の下で幅広く使用することをお勧めします。すべての運用において、次の点に留意してください。
グラフ タブで使用できる新しい メモリ使用状況 - エージェント グラフを使用して、エージェントのリソース消費を注意深く監視してください。新しいヒートチャートルール MySQL エージェントがメモリを過度に使用しています。 に SMTP または SNMP 通知を追加することもできます。
メモリ使用量が大きすぎる場合、非ピーク時にクエリをサンプルするか、システム内の一部のクエリのみを監視することを検討してください。
Query Analyzer で問題が発生した場合は、緊密な協力によって迅速に解決したいと考えています。すぐにサポートへ問題を報告してください。エージェント/プロキシの RAM 使用率の最適化にはすでに取り組んでおり、これらも含めた改善点をお客様に迅速に届けるために一連のラピッドリリースを計画しています。
インストール中に、エージェント/プロキシ内で Query Analyzer を有効にしている必要があることに注意してください。エージェント/プロキシのインストール中に Query Analyzer を有効にしていない場合、メインの mysql-monitor-agent.ini 設定ファイル内で次の要素を確認してください。
proxy キーワードをplugins パラメータに追加してください。例:
plugins=proxy,agent
quan.lua アイテムファイルが agent-item-files 設定プロパティで有効にされていることを確認します。
agent-item-files = share/mysql-proxy/items/quan.lua,share/mysql-proxy/items/items-mysql-monitor.xml
proxy-address、proxy-backend-addresses、proxy-lua-script を確認して、次のように設定されているか確認します。
proxy-address=:6446 proxy-backend-addresses = 127.0.0.1:3306 proxy-lua-script = share/mysql-proxy/quan.lua
これらの設定オプションの詳細は、「MySQL Enterprise Agent の設定可能オプション」を参照してください。
クエリが正しく MySQL Enterprise Service Manager に報告されるように、サーバーのセキュリティ設定を変更しなければならない場合もあります。
エージェント/プロキシを介して接続され、Query Analyzer 情報を報告する必要がある MySQL クライアントアプリケーション内で設定されている各ユーザが、エージェント/プロキシが実行するホストからサーバーに接続できるようにする必要があります。このユーザがエージェント/プロキシに接続し、エージェント/プロキシがサーバーに接続する場合、接続中の識別クライアントホスト名として、エージェント/プロキシのホストが使用されます。
プロキシが MySQL サーバーに直接接続を提供しているため、認証にはクライアントのホスト名ではなくプロキシのホスト名を使用する必要があります。
ユーザ証明書を更新するには、GRANT ステートメントを使用する必要があります。例:
mysql> GRANT SELECT,UPDATE,INSERT on database.* to 'user'@'localhost' IDENTIFIED BY 'password';
MySQL クライアントアプリケーションのユーザは、mysql.inventory テーブルでの SELECT 権限が必要です。このテーブルには、サーバー UUID が含まれています。これを有効にするには、次のように GRANT オプションを使用します。
mysql> GRANT SELECT on mysql.inventory to 'user'@'localhost' IDENTIFIED BY 'password';
