同じマシン上または複数のマシン上にある複数の MySQL サーバーを、次の 2 つの方法で監視できます。
単一のエージェントインスタンスを使用して複数の MySQL サーバーを監視する。この方法は、複数のサーバーを監視する場合に、他のサーバーでは Query Analysis を使用しない、あるいはサポートする必要がないときに使用できます。
MySQL Enterprise Agent のコピーを複数使用して、各サーバーを個別に監視する。この方法を使用すると、各サーバーを監視するために追加のオーバーヘッドが必要になりますが、Query Analyzer データも提供できます。
単一エージェントインスタンスの使用
Query Analyzer を使用する場合は、単一エージェントインスタンス方式を使用しないでください。単一インスタンスによって提供されるプロキシポートを使用するようにアプリケーションを設定すると、クエリが正しいサーバーに送信されないことがあります。Query Analyzer、プロキシ、および単一エージェントインスタンス方式を使用することはできません。
単一エージェントインスタンス方式を使用すると、エージェントは監視しているバックエンドサーバーに関する正しい情報を判定しようとします。この情報は、ルールとアドバイザの情報を適用するときに使用されます。現在、この操作は、設定済みサーバーのリストにあるサーバーの 1 つに対してのみ実行されます。監視対象サーバーで使用されている MySQL のバージョンが異なっている場合、サーバーに正しいルールが適用されない可能性があり、サーバーによっては問題に関する間違った、または誤解を招くようなアドバイスが表示されることがあります。
単一エージェントを使用して複数のインスタンスを監視するには、エージェントの instances ディレクトリ内に追加のディレクトリと設定ファイルを作成します。たとえば、エージェントの設定ディレクトリはデフォルトで次のような構造になっています。
./init.d ./init.d/mysql-monitor-agent ./instances ./instances/agent ./instances/agent/agent-instance.ini ./mysql-monitor-agent.ini
instances ディレクトリ内に、監視対象サーバーごとに 1 つ、ディレクトリを追加できます。追加のディレクトリにはそれぞれ、新しい MySQL サーバーインスタンスの接続情報を含む適切な agent-instance.ini ファイルが必要です。たとえば、次の構造は、4 つの MySQL サーバーを監視するエージェントを示しています。
./init.d ./init.d/mysql-monitor-agent ./instances ./instances/agent ./instances/agent/agent-instance.ini ./instances/mysql2 ./instances/mysql2/agent-instance.ini ./instances/mysql-rep ./instances/mysql-rep/agent-instance.ini ./instances/mysql-backup ./instances/mysql-backup/agent-instance.ini ./mysql-monitor-agent.ini
監視対象 MySQL サーバーをもう 1 つ追加するには、次の手順に従います。
監視しようとしている MySQL インスタンスに、そのサーバーへの接続に使用する適切なユーザが存在することを確認します。詳細については、「Monitor Agent の MySQL ユーザアカウントの作成」を参照してください。
既存の設定ディレクトリと設定ファイルを新しいディレクトリにコピーします。
shell> cp -R etc/instances/agent etc/instances/mysql2
新しいディレクトリ内の設定ファイル (mysql2/agent-instance.ini など) を編集し、user、password、および hostname と port または socket のどちらかを設定します。
エージェントの再起動:
shell> mysql-monitor-agent restart
複数のエージェントインスタンスの使用
複数のエージェントを使用して複数の MySQL サーバーを監視するには、エージェントおよび監視する必要のある MySQL サーバーインスタンスの両方について、バイナリと設定ファイルも含めて新しい設定構造を作成する必要があります。その後、設定を更新して、新しいサーバーを監視するための適切なパラメータを設定します。この方法を使用すると、エージェントのビルトインプロキシサービスを使用して要求をターゲットサーバーにリダイレクトすることで、クエリ解析を有効にできます。
たとえば、次のディレクトリ構造は、それぞれ 1 つの MySQL サーバーを監視している 2 つのエージェントの設定ディレクトリを示しています。
./init.d ./init.d/mysql-monitor-agent ./instances ./instances/agent ./instances/agent/agent-instance.ini ./instances-second/agent ./instances-second/agent/agent-instance.ini ./mysql-monitor-agent.ini ./mysql-second-agent.ini
mysql-monitor-agent.ini ファイルには最初のエージェントの設定が含まれており、監視対象の MySQL サーバーは instances ディレクトリ内に定義されています。mysql-second-agent.ini ファイルには 2 番目のエージェントの設定情報が含まれており、監視対象の MySQL サーバーは instances-second ディレクトリ内に定義されています。
複数のエージェントを設定するには、次のようにします。
監視しようとしている MySQL インスタンスに、そのサーバーへの接続に使用する適切なユーザが存在することを確認します。詳細については、「Monitor Agent の MySQL ユーザアカウントの作成」を参照してください。
新しいエージェントの新しい UUID を生成する必要があります。
shell> /opt/mysql/enterprise/agent/bin/mysql-proxy --plugins-agent --agent-generate-uuid ee9296d7-f7cd-4fee-8b26-ead884ebf398 2009-03-05 11:49:37: (critical) shutting down normally
設定ファイルを更新するために、この UUID を記録しておきます。
UUID を生成するときは、エージェントが実行していないことを確認してください。
メインのエージェント設定ファイルをコピーします。デフォルトでは /opt/mysql/enterprise/agent/etc/mysql-monitor-agent.ini です。
shell> cp mysql-monitor-agent.ini mysql-second-agent.ini
新しい設定ファイルを編集して、次の設定を変更します。
mysqld-instance-dir を、個々の MySQL サーバー設定ファイルを格納する新しいディレクトリに変更します。
proxy-address を、最初のエージェントの設定とは異なる値に変更します。
proxy-backend-addresses を変更して、MySQL サーバーの IP アドレスと MySQL ポート番号を指定します。
agent-uuid を、前の手順で生成した新しい値に変更します。
log-file パラメータを変更して、エラーや問題のログに使用する別のファイルを指定します。異なる 2 つのエージェントから同じファイルにログを記録することはできません。
pid-file パラメータを変更して、エージェントのプロセス ID を保存するためのファイルを指定します。
既存の設定ディレクトリと設定ファイルを新しいディレクトリにコピーします。
shell> cp -R etc/instances etc/instances-second
新しいディレクトリ内の設定ファイル instances/second/agent/agent-instance.ini を編集し、user、password、および hostname と port または socket のどちらかを設定します。
複数のインスタンスを使用する場合は、メイン設定ファイルの場所を指定して、各エージェントを個別に起動する必要があります。たとえば、元の (デフォルトの) サービスを起動するには、次のようにします。
shell> /opt/mysql/enterprise/agent/etc/init.d/mysql-monitor-agent start /opt/mysql/monitor/agent/etc/mysql-monitor-agent.ini
2 番目のインスタンスを起動するには、次のようにします。
shell> /opt/mysql/enterprise/agent/etc/init.d/mysql-monitor-agent start /opt/mysql/monitor/agent/etc/mysql-second-agent.ini
