MySQL サーバを監視するようにエージェントを設定するには、そのサーバのエージェントのユーザアカウントがあることを確認する必要があります。
このユーザアカウントに必要な権限は、MySQL Enterprise Service Agent を使用して収集する情報により異なります。次の権限は、Monitor Agent が、割り当てられたタスクを制限なしに実行できるように許可します。
SHOW DATABASES
: MySQL Enterprise Service Agent
は、監視対象 MySQL
サーバの情報を収集できます。
REPLICATION CLIENT
: MySQL Enterprise Service Agent
は、レプリケーションマスタ/スレーブのステータスデータを収集できます。この権限が必要なのは、MySQL
レプリケーションアドバイザルールが適用される場合のみです。
SELECT
: MySQL Enterprise Service Agent
は、テーブルオブジェクトの統計情報を収集できます。
SUPER
: MySQL Enterprise Service Agent は、InnoDB
テーブルのデータを収集するために SHOW
ENGINE INNODB STATUS
を実行できます。
PROCESS
: MySQL 5.1.24 以上を実行する
MySQL サーバを InnoDB
で監視する場合、SHOW ENGINE INNODB
STATUS
を実行するために、PROCESS
権限が必要です。
INSERT
:
エージェントにより要求される UUID
を作成するときに必要です。
CREATE
: MySQL Enterprise Service Agent
はテーブルを作成できます。検出中、エージェントは、サーバの
UUID に使用される inventory
テーブルを mysql
データベース内に作成します。このテーブルがない場合、エージェントはサーバの
UUID を判別できないため、情報を MySQL Enterprise Service Manager
に送信するときにこのサーバを使用できません。
たとえば、次の GRANT
ステートメントは、必要な SELECT
権、REPLICATION CLIENT
権、SHOW
DATABASES
権、SUPER
権をエージェントに付与します。
GRANT SELECT, REPLICATION CLIENT, SHOW DATABASES, SUPER, PROCESS ON *.* TO 'mysqluser
'@'localhost
' IDENTIFIED BY 'agent_password
';
セキュリティのため、CREATE
権限および INSERT
権限のみをエージェントに付与して、mysql
データベース内でのテーブル作成のみを許可できます。
GRANT CREATE, INSERT ON mysql.* TO 'mysqluser
'@'localhost
' IDENTIFIED BY 'agent_password
';
レプリケーションの検出を機能させるには、対応するレプリケーションマスタに対してレプリケーション権限を持つ各ユーザに、mysql.inventory
テーブルで SELECT
権限を付与することも必要です。これは、MySQL Enterprise Service Agent
がレプリケーションマスタの UUID
を読み取れるようにするために必要です。例:
GRANT SELECT ON mysql.inventory TO 'replicationuser
'@'%
' IDENTIFIED BY 'replication_password
';
エージェントがテーブルの情報にアクセスできない場合、この情報を含んだ警告がエージェントログに書き込まれます。
権限情報がスレーブに複製されないように、GRANT
ステートメントのログを無効にすることもできます。この場合、上記の
GRANT
ステートメントを実行する前に SET
SQL_LOG_BIN=0
ステートメントを実行してください。
一般的な設定では、エージェントは監視対象の
MySQL
サーバと同じマシンで実行するため、ホスト名は
localhost
になります。ただし、エージェントが、監視対象
MySQL
サーバをホストするマシンとは異なるマシンで実行している場合、このホスト名は変わります。この場合、localhost
を適切な値に変更してください。リモート監視の詳細については、項2.3.6.4. 「リモート MySQL Server
を監視するようにエージェントを設定する」を参照してください。