インストール問題の解決
データベースエージェントのインストール時に発生する問題を確認してください。
ファイアウォール設定の確認
ファイアウォールのブロックを解除してください。WhaTapサーバーのTCPアウトバウンドファイアウォールが設定されていると、モニタリング情報をサーバーに転送できません。
ファイアウォールを確認する方法
telnetコマンドを実行し、接続関連情報をが正常に表示します。(telnet[サーバーIP][サーバーポート])
$ telnet 52.193.60.176 6600
Trying 52.193.60.176...
Connected to 52.193.60.176.
Escape character is '^]'.
WhaTapの収集サーバー情報は、管理 > エージェントインストールメニューから確認できます。
エージェントログを確認する
エージェントがデータベースに接続できない場合や一部のデータが収集されない場合は、まずエージェントログを確認してください。以下の項目では、ログに記録されるメッセージを基準に原因と解決方法を説明します。
- logs/: エージェントのインストールパスに作成されるエージェントログフォルダーです。
- nohup.out: エージェントの実行に失敗した場合に最初に確認する標準出力の記録です。
./startd.shで実行すると、エージェントのインストールパスに作成されます。
設定ファイル(whatap.conf)やJDBCドライバーを変更した後は、エージェントを再起動してください。
./stop.sh
./startd.sh
データベースに接続できない場合
アカウント情報が登録されていない場合
File not exist or Invalid file: db.user
モニタリングアカウント情報ファイル(db.user)がありません。アカウント情報なしで接続を試みた後、エージェントが終了する場合があります。エージェントのインストールパスでuid.shを使用してアカウント情報を登録した後、./startd.shでエージェントを実行してください。
./uid.sh {DB_USER} {DB_PASSWORD}
アカウント名またはパスワードが一致しない場合
Access denied for user 'whatap'@'<エージェントIP>' (using password: YES)
CRITICAL! : DB Connection FAILED. Invaild username or password.
DB Account error!!!
このエラーで接続に繰り返し失敗すると、エージェントが終了します。次の内容を確認した後、uid.shでアカウント情報を再登録し、./startd.shでエージェントを実行してください。
- 登録したパスワードがデータベースアカウントのパスワードと一致するか確認してください。
- ログに表示された
'アカウント'@'IP'が、データベースアカウントの接続許可ホスト(mysql.userのhost)に含まれているか確認してください。
ネットワーク経由でデータベースに接続できない場合
Communications link failure
The driver has not received any packets from the server.
エージェントサーバーからデータベースのポートに接続できない状態です。データベースの稼働状態、ポート、ファイアウォール、whatap.confのdb_ip、db_portの値を確認してください。エージェントは終了せずに再接続を試み続け、問題が解決すると自動的に再接続します。
nc -zv {DB_IP} 3306
JDBCドライバーのバージョンが合わない場合
WARN: Establishing SSL ...
Communications link failure
The last packet successfully received from the server was ... ago.
Unable to load authentication plugin 'caching_sha2_password'.
*jdbc/*フォルダーにドライバーがなく、エージェントに含まれるデフォルトドライバーで接続すると、MySQL 8.0以降に接続できない場合があります。jdbc/フォルダーにConnector/J 8.0以降のドライバー(.jar)を配置し、エージェントを再起動してください。JDBCダウンロード
SSL接続が必要なデータベースの場合
Connections using insecure transport are prohibited while --require_secure_transport=ON.
データベースがSSL接続のみを許可している(require_secure_transport=ON)にもかかわらず、whatap.confのconnect_optionにuseSSL=falseが設定されています。connect_optionからuseSSL=falseを削除し、エージェントを再起動してください。
公開鍵の取得が許可されていない場合
Public Key Retrieval is not allowed
通常は正常に接続できていても、データベースの再起動やFLUSH PRIVILEGESの実行後に発生する場合があります。connect_optionにuseSSL=falseを設定し、caching_sha2_password認 証を使用するアカウントで接続すると発生します。次のいずれかを設定し、エージェントを再起動してください。
-
connect_optionからuseSSL=falseを削除します。(推奨) -
SSLを使用できない場合は、
allowPublicKeyRetrieval=trueもあわせて設定します。このオプションは、接続経路が信頼できるネットワークの場合にのみ使用してください。whatap.confconnect_option=?useSSL=false&allowPublicKeyRetrieval=true
一部のデータが収集されない場合
データベースには接続できているものの、モニタリングアカウントの権限が不足していると該当するデータのみ収集されず、エージェントログにcommand denied、lack rights、you need ... privilege(s)メッセージが記録されます。エージェントは終了しません。次のコマンドでモニタリングアカウントの権 限を確認してください。
SHOW GRANTS FOR 'whatap'@'%';
| エージェントログ | 必要な権限 | 収集されないデータ |
|---|---|---|
SELECT command denied ... for table 'threads'などperformance_schemaテーブル | grant select on performance_schema.* to whatap; | アクティブセッション、待機イベント、ロック情報 |
SELECT command denied ... for table 'innodb_lock_waits' | grant select on sys.* to whatap; | ロック情報 |
View 'sys.innodb_lock_waits' ... lack rights | grant process on *.* to whatap;performance_schemaの権限もあわせて確認 | ロック情報 |
you need (at least one of) the PROCESS privilege(s) | grant process on *.* to whatap; | デッドロック情報、他のアカウントのセッション情報 |
you need (at least one of) the ... REPLICATION CLIENT privilege(s)you need ... REPLICATION SLAVE privilege(s) | grant replication client on *.* to whatap;grant replication slave on *.* to whatap; | レプリケーション(Replication)情報 |
権限を付与した後、エージェントを再起動してください。権限ごとの対応機能は、アカウントの作成の権限による対応機能を確認するを参照してください。
制約事項
複数リージョンを1つのプロジェクトとして選択することはできません。
-
WhaTapモニタリングサービスサイトでプロジェクトを作成する時にリージョンは重複選択できず、複数のリージョンを活用する場合は別途のプロジェクトを作成する必要があります。
-
クラウド環境に複数のリージョン(Region)にサーバが存在する場合、ネットワークのlatencyなどパフォーマンス情報収集の制約を回避する ために、リージョン(Region) 単位で収集サーバをインストールする必要があります。
-
WhaTapは、顧客のニーズを満たすためにリージョン(Region)ごとに収集サーバーを構築します
エージェント名(ONAME) は重複使用できません
WhaTap DBXモニタリングは、エージェントを認識するために、エージェントのIPアドレスとポート(Port)情報を使用します。ユーザー環境でモニタリングするデータベースサーバーが同一IP、同一ポート(Port)を使用している場合、WhaTapサーバーのサーバーインスタンスを区分できません。