同じマシン上または複数のマシン上にある複数の MySQL サーバを、次の 2 つの方法で監視できます。
単一のエージェントインスタンスを使用して複数の MySQL サーバを監視する。この方法は、複数のサーバを監視する場合に、他のサーバでは Query Analysis を使用しない、あるいはサポートする必要がないときに使用できます。
MySQL Enterprise Service 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 インスタンスに、そのサーバへの接続に使用する適切なユーザが存在することを確認します。詳細については、項2.3.1. 「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 インスタンスに、そのサーバへの接続に使用する適切なユーザが存在することを確認します。詳細については、項2.3.1. 「Monitor Agent の MySQL ユーザアカウントの作成」を参照してください。
新しいエージェントの新しい UUID を生成する必要があります。
shell> /opt/mysql/enterprise/agent/bin/mysql-monitor-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