本文へスキップ

手動インストール

WhaTapデータベースモニタリングサービスを使用するための基本的なインストール方法について説明します。

構成図の確認​

DBXエージェントは、別のサーバーにインストールするか、DBサーバーにインストールできます。 インストールする方法を選択し、構成とファイアウォールを確認します。

別途サーバーにインストールDBサーバーに直接インストール

アカウントの作成​

ノート
  • 必要な権限を持つアカウントがすでにある場合は、このステップをスキップして次のステップに進んでください。

  • サンプルコードのDB_Userは、データベースユーザーアカウント名です。使用するユーザーアカウント名に変更してください。

  • サンプルコードのDB_Passwordには、ユーザーパスワードを入力してください。

  • 適切な権限がないアカウントは、正常にモニタリングされない場合があります。

  • レプリケーション構造の場合、アカウント作成と権限付与はマスターDBでのみ実行する必要があります。(スレーブDBで実行すると、レプリケーションが破損する可能性があります。)

create user DB_User identified by 'DB_PASSWORD'; # パスワードを入力します。
grant process on *.* to DB_User;
grant select on performance_schema.* to DB_User;
grant show databases on *.* to DB_User;

機能と使用環境に応じて追加権限を付与してください。

  • すべてのテーブル情報を収集する場合

    grant select on *.* to DB_User;
  • 特定のDBのテーブルのみモニタリングする場合

    grant select on {DB_NAME}.* to DB_User;
  • Replicationを使用する場合

    grant replication client on *.* to DB_User;
    grant replication slave on *.* to DB_User;
  • Kill sessionを使用する場合

    grant super on *.* to DB_User;
  • AWS RDS環境でkill session機能を使用する場合

    grant execute on procedure mysql.rds_kill to DB_User;
権限による対応機能を確認する

基本権限外の権限は、ユーザーの環境によって付与する必要はありません。ただし、一部の機能が動作しないことがあります。

権限commandメニューと機能詳細履歴
基本権限grant process on *.* to whatap;アクティブセッションの収集 / ロックツリー / デッドロック他のアカウントに属するスレッド情報を表示する権限、show engine実行
grant select on performance_schema.* to whatap;アクティブセッションの収集 / ロックツリー / MYSQLのSQL統計個別権限の付与時、次の表の内容を参照
grant show databases on *.* to whatap;インスタンスリストなどデータベース名の表示
詳細権限grant select on *.* to whatap;
または
grant select on {DB_NAME}.{TABLE_NAME} to whatap;
DBサイズ / テーブルサイズ増減 / Object detail / プランの照会MySQLは、当該テーブルに対するSELECT権限がないと、DBサイズ、Object detail、プラン照会機能を対応しません。
replicationgrant replication client on *.* to whatap;インスタンスリストのS表示 / replication情報の収集SHOW MASTER STATUS, SHOW SLAVE STATUS
grant replication slave on *.* to whatap;インスタンスリストのM表示 / replication情報の収集SHOW SLAVE HOSTS
セッション中止grant super on *.* to whatap;アクティブセッションの一覧でのセッション中止機能別のアカウントに属するスレッドの終了
grant execute on procedure mysql.rds_kill to DB_User;AWS RDSの場合のセッション中止機能-

performance_schema.*の代わりに、次の権限を個別に付与しても構いません。

権限command備考
アクティブセッション / ロックツリーperformance_schema.data_lock_waitsMySQL 8バージョンから
performance_schema.data_locks
performance_schema.threads-
performance_schema.metadata_locksMariaDB 10.5バージョンから
Wait event情報performance_schema.events_waits_summary_global_by_event_name-
SQL統計情報performance_schema.events_statements_summary_by_digest-
Waitメトリクス名performance_schema.setup_instruments-

IAM認証で接続する​

IAM認証の設定方法を見る

AWS RDS・Aurora環境では、DBパスワードの代わりにAWS IAM認証トークンで接続できます。PostgreSQL、MySQL、MariaDBで使用でき、Oracle、SQL Server、DB2はサポートしません。

パスワード方式を使用する場合は、このステップを飛ばしてください。

ステップ1. 接続アカウントの準備​

IAM認証で接続するアカウントを作成し、SSL接続を要求するように設定します。

SQL
CREATE USER 'DB_User'@'%' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
ALTER USER 'DB_User'@'%' REQUIRE SSL;

次の権限はモニタリングに必要な権限です。IAM認証とは関係なく、パスワード方式でも同じように付与します。

SQL
GRANT SELECT, PROCESS, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'DB_User'@'%';

ステップ2. whatap.confの設定​

whatap.confファイルに次のオプションを追加します。

whatap.conf
aws_iam_auth=true
aws_region=ap-northeast-2
db_ssl=true
db_user={db_user} # ステップ1で作成したアカウント
connect_option=?sslmode=require # PostgreSQLのみ必須

AssumeRole方式を使用する場合は、aws_arnオプションを追加します。EC2ロール方式ではオプションを追加しません。

whatap.conf
aws_arn=arn:aws:iam::{ACCOUNT}:role/{ROLE}

ステップ3. AWSの事前設定​

IAM認証の有効化

RDSコンソールで対象のDBを選択し、変更 > データベース認証メニューでパスワードとIAMデータベース認証オプションを選択し、すぐに適用を選択してから保存ボタンをクリックします。

IAMポリシーの作成

IAMコンソールでポリシー > ポリシーの作成 > JSONタブを選択し、次のポリシーを入力します。{ }の部分は使用する値に置き換えてください。

RDS
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["rds-db:connect"],
"Resource": [
"arn:aws:rds-db:{REGION}:{ACCOUNT}:dbuser:db-{RESOURCE_ID}/{DB_USER}"
]
}
]
}
Aurora
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["rds-db:connect"],
"Resource": [
"arn:aws:rds-db:{REGION}:{ACCOUNT}:dbuser:cluster-{RESOURCE_ID}/{DB_USER}"
]
}
]
}

複数のインスタンスを一度に許可するには、ワイルドカードを使用します。

Resource
"Resource": [
"arn:aws:rds-db:*:{ACCOUNT}:dbuser:db-*/{DB_USER}",
"arn:aws:rds-db:*:{ACCOUNT}:dbuser:cluster-*/{DB_USER}"
]

ステップ4. ロールの設定​

前で作成したポリシーをロールに付与し、エージェントに接続します。本番環境ではEC2ロール方式をおすすめします。アクセスキーを保存する必要がありません。

  1. 信頼されたサービスをEC2に指定してIAMロールを作成します。

  2. 前で作成したポリシーをロールに付与します。

  3. エージェントを実行するEC2インスタンスにロールを接続します。詳細な方法は、AWSドキュメントを参照してください。

DBXエージェントダウンロード​

DBXエージェントファイルをダウンロードします。 次の2つの方法を利用します。

  • wgetコマンドを使用してダウンロードできます。

    BASH
    wget -O whatap.agent.database.tar.gz "https://service.whatap.io/download/dbx_agent?type=mysql&format=tar.gz"
  • コマンドでダウンロードできない場合は、WhaTapモニタリングサービス画面でダウンロードボタンを選択します。

DBXエージェントファイルをダウンロードして圧縮を解凍してください。

BASH
tar -zxvf whatap.agent.database.tar.gz
ノート

セキュリティ設定によりTAR形式のファイルをダウンロードできないユーザーのためにZIP形式のファイルも一緒に提供します。 インストール画面で.zip ダウンロードボタンを選択します。

DBXエージェントの設定​

エージェントのインストール画面のガイドに従って、エージェントの設定を進めます。 画面に各項目ごとに必要な情報を入力すると、設定内容とコマンドが自動的に完成されます。

Tips

DBXエージェントの構成ファイルでsetup.shファイルを実行すると、エージェントの設定が簡単に行われます。 詳細については、次の文書を参照してください。

whatap.conf設定​

圧縮を解除したフォルダに移動し、whatap.confファイルを確認します。 whatap.conf ファイルに、プロジェクトのアクセスキー情報、WhaTapサーバー情報、DB接続情報を入力します。

基本設定​

whatap.conf
license={AccessKey}
whatap.server.host=13.124.11.223/13.209.172.35 # WhaTap server information
dbms=mysql
db=mysql
db_ip={DB_Server_IP}
db_port={DB_Server_Port}

SSLを使用する場合​

whatap.conf
connect_option=?useSSL=true&verifyServerCertificate=false

JDBCドライバ接続時、serverTimeZone設定が必要な場合​

JDBCドライバ8.xバージョン以降などを利用する場合は、アクセスURLにserverTimezone設定が必要になる場合があります。whatap.confファイルに次のオプションを設定します。

whatap.conf
connect_option=?serverTimezone=SERVER_TIMEZONE
# connect_option=?serverTimezone=UTC

JDBCダウンロード​

圧縮ファイルを解凍したパスのjdbcフォルダーにデータベースサーバーのオペレーションシステムとバージョンに合うJDBCドライバーをダウンロードします。 /圧縮を解凍したフォルダ/jdbc

情報

Mysql & MariaDB 5.5バージョン以降

Select Operating Systems項目でPlatform Independent項目を選択します。 ダウンロードしたファイルの圧縮を解除し、_jdbc_フォルダへ_mysql-connector-*.jar_ファイルを移動します。

JDBC Download

ノート

/解凍されたフォルダ/jdbc/README.mdファイルで各データベースのJDBCドライバのインストールパスを確認することができます。

DBユーザーの作成とパスワードの変更​

データベース接続用に暗号化されたUIDを作成します。usernameとpasswordを入力し、シェルスクリプト(またはバッチファイル)を実行してください。

Tips

パスワードを変更する場合も、変更するパスワードを入力して同じ方法で進めてください。

BASH
./uid.sh {DB_USER} {DB_PASSWORD}
ノート
  • 一度の設定で暗号化されたUIDを使用してモニタリング対象データベースサーバーからデータを収集します。

  • DBユーザーファイルを生成するには、プロジェクトアクセスキーをwhatap.confファイルに入力する必要があります。アクセスキーの確認

  • Azure Database環境の場合、DB_USERをDB_USER@DB_nameの形式で入力します。

  • DB_USERまたはDB_PASSWORDに特殊文字が含まれている場合、特殊文字の前にEscape Character(\)を入力します。

    Example
    ./uid.sh whatap whatap\!pwd

    # 特殊文字が2つ以上の場合、それぞれエスケープ文字を追加
    ./uid.sh whatap whatap\!\@pwd

デフォルトプランを照会する​

デフォルトプランユーザーファイル作成時、エージェントが事前定義されたDB情報を使用してプランを自動的に照会するように設定できます。

  1. エージェント設定(whatap.conf)ファイルにplan_dbオプションを追加し、DB名を入力します。

    whatap.conf
    plan_db=(dbname)
  2. DB設定後planuid.shスクリプトを使用してユーザーとパスワードを設定します。

    ./planuid.sh user pwd
    ノート

    ユーザー(user)とパスワード(pwd)に特殊文字が含まれている場合、各特殊文字の前にバックスラッシュ(\)を追加します。

    例、 user$example → user\$example

モニタリングの開始​

エージェントをインストールしたパスからシェルスクリプト(またはバッチファイル)を実行してください。

./start.sh

デーモンのように使用する場合、次のコマンドを実行してください。ただし、nohupをインストールした環境のみで動作します。

./startd.sh

データベースモニタリングのエージェントのインストールが完了しました。次の文書でインストール後、チェックリストを確認してください。

XOSエージェントのインストール及びその他のオプションを適用する​

データベースサーバーのリソースをさらにモニタリングする場合は、データベースサーバーに別のXOSエージェントを実行してデータを収集できます。

ノート
  • x86アーキテクチャで動作するOS環境にのみ適用されます。

  • 追加エージェントのインストールは、必須ではなく選択事項です。

  • XOSエージェント設定オプションの詳細については、次の文書を参照してください。
  • クラウドサービスが提供するモニタリングメトリクスを、データベースプロジェクトのダッシュボードで追加で収集してモニタリングするには、次の文書を参照してください。

whatap.confファイルを設定する​

DBXエージェントがインストールされたパスのwhatap.confファイルに次のオプションを設定します。

whatap.conf
xos=1
xos_port=3002

xosフォルダー(/解凍されたフォルダ/xos/)をデータベースサーバーに移動してください。

xos.confファイルを設定する​

データベースサーバーに移動し、xosパスのxos.confファイルに次のオプションを設定します。

xos.conf
dbx_ip={DB_Agent_IP}
dbx_port=3002 # default 3002
cpu_limit=0
mem_limit=10240
Tips

エージェントインストールメニューのDB Agent IP、DB Agent Port項目にDB情報を入力すると、エージェントオプションを自動生成できます。

XOSエージェントを実行する​

XOSエージェントを実行します。

./start.sh
ノート
  • DBXエージェントでモニタリングしたデータを転送するためにdbx_portに設定したポート(default 3002)が開いている必要があります。 (UDP Outbound)

  • XOSエージェントをバックグラウンドで実行するには*./startd.sh*ファイルを実行します。

次のステップ​

  • インストールの点検

    プロジェクトの作成やエージェントのインストール、基本エージェントのオプションまですべて適用した場合は、次の文書で点検事項を確認します。

  • インストール問題の解決

    エージェントをインストールする際に発生する可能性がある問題と、これを解決するための具体的なガイドを提供します。 詳細については、次の文書を参照してください。

  • エージェント設定

    エージェント設定(whatap.conf)ファイルにオプションを適用して、モニタリングのための様々な機能を提供します。 詳細については、次の文書を参照してください。

    データベースのサーバーリソースを追加で監視するには、追加のエージェント(XOS)に追加オプションを設定します。 詳細については、次の文書を参照してください。

  • クラウド設定

    クラウドサービスが提供するモニタリングメトリクスを、データベースプロジェクトのダッシュボードで追加で収集してモニタリングするには、次の文書を参照してください。

  • モニタリングの開始

    すべての設定を完了したら、エージェントがデータベースサーバーのメトリクスに対する情報収集を開始します。 まず、インスタンスリストメニューでモニタリングデータが収集されていることを確認します。 インスタンスリストの詳細については、次の文書を参照してください。