インストール問題の解決
データベースエージェントのインストール時に発生する問題を確認してください。
ファイアウォール設定の確認
ファイアウォールのブロックを解除してください。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
データベースに接続できない場合
JDBCドライバーが認証方式に対応していない場合
PSQLException: The authentication type 10 is not supported. Check that you have configured the pg_hba.conf file ...
PostgreSQL 14以降は、デフォルトの認証方式としてscram-sha-256を使用します。*jdbc/*フォルダーにドライバーがなく、エージェントに含まれるデフォルトドライバーで接続すると、この認証方式に対応していないため接続に失敗します。jdbc/フォルダーにPostgreSQL JDBC 42.2.0以降のドライバー(.jar)を配置し、エージェントを再起動してください。JDBCダウンロード
接続許可リスト(pg_hba.conf)にエージェントのIPがない場合
FATAL: no pg_hba.conf entry for host "<エージェントIP>", user "whatap", database "postgres", no encryption
データベースサーバーのpg_hba.confに、DBXエージェントをインストールしたサーバーのIPを許可する行を追加し、設定を再読み込みしてください。エージェントは一部の情報を収集するためにデフォルトの接続先以外のデータベースにも接続するため、データベース項目はallに設定することをお勧めします。
host all whatap {AGENT_IP}/32 scram-sha-256
SELECT pg_reload_conf();
データベースの接続権限がない場合
FATAL: permission denied for database "postgres"
Detail: User does not have CONNECT privilege.
モニタリングアカウントに、ログに表示されたデータベースのCONNECT権限を付与してください。whatap.confにdbを設定しない場合は、postgresデータベースに接続します。
grant connect on database postgres to whatap;
パスワードが一致しない場合
FATAL: password authentication failed for user "whatap"
エージェントは終了せずに再接続を試み続けます。uid.shでアカウント情報を再登録した後、エージェントを再起動してください。
./uid.sh {DB_USER} {DB_PASSWORD}
一部のデータが収集されない場合
データベースには接続できているものの、権限や拡張モジュールがない場合は該当するデータのみ収集されません。
| 症状 | 対処 | 収集されないデータ |
|---|---|---|
エージェントログ: permission denied for function pg_ls_waldir | grant pg_monitor to whatap;を実行した後、エージェントを再起動 | WALファイル数 |
エージェントログ: pg_stat_statements must be loaded via shared_preload_libraries | shared_preload_librariesにpg_stat_statementsを追加した後、データベースを再起動 | PG SQL統計 |
| エージェントログにエラーはなく、PG SQL統計画面に設定案内が表示される | 接続先のデータベースでcreate extension pg_stat_statements;を実行した後、エージェントを再起動 | PG SQL統計 |
pg_monitor権限がない場合、エラーログは出力されず、他のユーザーのセッションの状態とSQLが<insufficient privilege>と表示されます。
pg_stat_statementsの設定方法は、PG SQL統計を参照してください。
DB権限及びエージェント設定
DB権限及びエージェントの設定によってデータが照会されないメニューがあります。次の内容を参考にして、必要な権限を付与し、エージェントのオプションを設定してください。
モニタリングのアカウントをwhatapで生成した場合の例です。create user whatap with password 'DBPassword’;
| メニュー | DBオプション及び権限 | エージェント設定 | 備考 |
|---|---|---|---|
| 基本メニュー | grant pg_monitor to whatap; | - | DBXエージェントv1.6.15以降 |
| ダッシュボード > スロークエリ | DBパラメータ:log_min_duration_statement=500(ex. 500ms以上かかるSQL記録) DB権限 grant PG_READ_ALL_SETTINGS to whatap; | xos.confslow_query_interval=30 (既定値30秒)whatap.conf slow_query_log=ON | - |
| インスタンス > セッション中止 | grant pg_signal_backend to whatap | - | - |
| 分析 > Top オブジェクト | grant select on all tables in schema {schema_name} to whatap; | whatap.confpg_object=true | DBXエージェントv1.6.15以降 Bloating、Ageタブの一覧は、権限及びエージェントオプションが設定さ れていてもしきい値(size、ratio)を超えない場合、データが照会されない可能性があります。 |
| 統計/レポート > データベースサイズ | grant usage on schema {schema_name} to whatap; | whatap.conftables=true | データベースサイズメニュー画面の下のテーブルサイズを照会するために必要な権限です。 |
| オブジェクト情報(Object detail) モーダルウィンドウ | grant select on all tables in schema {schema_name} to whatap; | - | Top オブジェクト, データベースサイズ, SQL詳細(Plan) メニューでテーブル名をクリックすると表示されるポップアップウィンドウです。権限がない場合、Column listが照会されません。 |
スロークエリが収集されない場合
PostgreSQLのスロークエリは、DBサーバーにインストールしたXOSエージェントがPostgreSQLのログファイルを読み取って収集します。設定方法はスロークエリを参照してください。設定後も収集されない場合は、DBXエージェントログとXOSエージェントログで次の内容を確認してください。
| ログ | 原因 | 対処 |
|---|---|---|
DBX: whatap.conf: slow_query_log = ONの行がない | DBXエージェントのスロークエリ収集が無効になっています。PostgreSQLのデフォルト値はoffです。 | DBX whatap.confにslow_query_log=onを設定した後、DBXエージェントを再起動 |
DBX: log_min_duration_statement: -1 slowLog OFF | データベースにスロークエリの基準値(log_min_duration_statement)が設定されていません。 | データベース設定でlog_min_duration_statementを0より大きい値に設定した後、DBXエージェントを再起動 |
DBX: slowLog ONの後にlog_filename:の行がない | モニタリングアカウントにログパスを照会する権限がありません。 | grant pg_monitor to whatap;またはgrant pg_read_all_settings to whatap;を実行した後、DBXエージェントを再起動 |
XOS: [slow_query_pg] stat (<ログファイルパス>) failed. errno: 2 | ログに表示されたパスにファイルがありません。PostgreSQLをコンテナで実行している場合、コンテナ内のパスが渡されるため、DBサーバー(ホスト)の実際のパスと異なる場合があります。 | ホストで同じパスにアクセスできるようにシンボリックリンクを作成してください。例: ln -s /data/postgres/data /var/lib/postgresql/data |
DBX: xos.conf slow_query_log ONXOS: ignored (set in xos.conf) | xos.confにslow_query=のパスが設定されている場合、DBXエージェントから渡されたパスの代わりにこの値を使用します。 | パスが実際のログファイルと異なる場合は、パスを修正するかslow_query=の行をコメントアウトした後、XOSエージェントを再起動 |
制約事項
複数リージョンを1つのプロジェクトとして選択することはできません。
-
WhaTapモニタリングサービスサイトでプロジェクトを作成する時にリージョンは重複選択できず、複数のリージョンを活用する場合は別途のプロジェクトを作成する必要があります。
-
クラウド環境に複数のリージョン(Region)にサーバが存在する場合、ネットワークのlatencyなどパフォーマンス情報収集の制約を回避するために、リージョン(Region) 単位で収集サーバをインストールする必要があります。
-
WhaTapは、顧客のニーズを満たすためにリージョン(Region)ごとに収集サーバーを構築します
エージェント名(ONAME) は重複使用できません
WhaTap DBXモニタリングは、エージェントを認識するために、エージェントのIPアドレスとポート(Port)情報を使用します。ユーザー環境でモニタリングするデータベースサーバーが同一IP、同一ポート(Port)を使用している場合、WhaTapサーバーのサーバーインスタンスを区分できません。