DBXエージェントの設定
DBXエージェントに必要な設定は、whatap.confファイルに作成されます。 設定できるオプションについては、次を参照してください。
基本オプション
-
license String
エージェントのインストール時にサーバーから付与されたプロジェクトアクセスキーを設定します。プロジェクトアクセスキーには、エージェントが属するプロジェクトとセキュリティ通信のためのパスワードキーが含まれています。
-
whatap.server.host String
既定値
127.0.0.1,127.0.0.1エージェントが収集したデータを送信するWhaTap収集サーバーのIPアドレスを設定します。収集サーバーの冗長化で2つ以上のIPを所有する場合は、コンマ(,)を区切り文字として使用します。設定したIPアドレスには、収集サーバーproxyデーモンがリスニング状態でサービスされる必要があります。
-
whatap.server.port String
既定値
6600収集サーバーのポート(port)を設定します。ポートは1つのみ設定ができるので、
whatap_server_hostに設定した収集サーバーは同一ポートを使用する必要があります。 -
dbms String
postgresql注意別のオプション値を入力すると、モニタリングのデータ収集が正常に動作しない場合があります。
-
db String
接続するデータベース名です。
-
db_ip String
モニタリングするデータベースサーバーのIPアドレスを設定します。
-
db_port String
データベースが通信に使用するポート番号を設定します。
-
aws_iam_auth Boolean
既定値
falseAWS RDS・Aurora(MySQL、MariaDB、PostgreSQL)環境で、DBパスワードの代わりにAWS IAM認証トークンで接続するオプションです。
trueに設定するとIAM認証トークンで接続し、既定値のfalseの場合は既存のパスワード方式で接続します。ノートaws_arnオプションの値によっては、whatap.confにAWSアクセスキー(access key)とシークレットキー(secret key)を直接入力することもできます。
データ収集
-
db_param_enabled Boolean
既定値
trueDBパラメータの収集有無を設定します。
-
conn_fail_count Int
既定値
1515回連続コネクションエラーが発生した時に通知を送信します。希望する回数を入力して、通知の発生基 準を調整できます。
-
long_run_session_sec Second
既定値
10(単位:秒)設定した時間より長く実行されているセッションを、long runセッションで処理します。
-
tables Boolean
既定値
trueテーブルサイズ情報を収集します。統計/レポート > DBサイズメニューでそのデータベースを選択すると、テーブルサイズ情報が確認できます.
-
tables_hour Int
既定値
5テーブルサイズ情報を保存するために、情報を収集する時刻を設定します。既定値は
5であり、午前5時に収集を始めます。
-
tables_min_size Int
既定値
10テーブル情報を収集する場合、設定した値より小さいサイズのテーブル情報は収集しません。テーブルデータを収集する最小単位は、
pg_total_relation_size既定値では10MBです。
-
replication_name String
レプリケーション名を設定すると、同じ
replication_nameを持つDBの間にMaster/Slave関係があるものとみなします。レプリケーションセットを定義するオプションとしてマスターノードとスレーブノードの両方に同じ値の
replication_nameオプションを設定するとインスタンスモニタリングでツリー構造で表示されます。また、このオプション値を基準にFlexボードでレプリケーション状態をモニタリングするウィジェットを提供します。
-
skip_schema String
既定値:pg_catalog、sys、information_schema、pg_toast
オプション値に設定したスキーマのテーブルは収集しません。
-
skip_db String
既定値:edb、postgres
オプション値に設定したデータベースのテーブルは収集しません。
-
slave_ip string
IPアドレスの確認は、
select inet_server_addr();とします。マスターノードからpg_stat_replication.client_addrを検索したときに表示されるIPアドレスのいずれか1つでなければなりません。replication_nameオプション値が同じでもSlave DBである場合は、slave_ipを指定する必要があります。ノートRDSの場合、IPアドレスの代わりに
pg_replication_slots.slot_nameでMaster/Slave関係が設定されるため、slave_ipオプションを設定する必要はありません。 -
statements_min_row Int
既定値
10000(row)PG SQL統計メニューで使用するデータ収集の基準です。
pg_stat_statementsを照会してrows値がstatements_min_rowより大きい場合に収集します。ノートPG SQL統計メニュについての詳細は、次の文書を参照してください。
-
skip_whatap_session Int
既定値
01の場合、WhaTapがデータ収集で実行するクエリのセッションをactive session listに表示しません。(既定値:0)
-
xview_min_sec Int
既定値
0xview収集時、クエリの実行時間が設定された時間よりも長くかかる場合にのみ収集します。デフォルトとしては、実行時間が0秒以上のすべてのクエリを収集します。
Topオブジェクトの使用設定
次はTopオブジェクトに関する情報を照会するためのエージェント設定です。 Topオブジェクト詳細については、次の文書を参照してください。
-
pg_object Boolean
既定値
trueTopオブジェクト情報の収集有無を設定します。 情報を収集するには
trueに変更してください。 -
pg_object_hour Int
既定値
5Topオブジェクト情報の収集時間を設定します。 既定値は
5で、午前5時に収集を始めます。 -
table_bloat_ratio Percentage
既定値
50テーブルbloating ratio値が設定値以上の場合は、情報を収集します。 既定値は50%です。
-
table_bloat_bytes Byte
既定値
10485760テーブルbloatingbytes値が設定値以上の場合、情報を収集します。 既定値は10MBです。
-
index_bloat_ratio Percentage
既定値
50インデックスbloatingratio値が設定値以上の場合、情報を収集します。 既定値は50%です。
-
index_bloat_bytes Byte
既定値
10485760インデックスbloating bytes値が設定値以上の場合、情報を収集します。 既定値は10MBです。
-
autovacuum_list_limit Int
既定値
50日付の古いage(
relfrozenxid)順に設定値程のテーブル情報を収集します。 既定値は50件です。
ユーザーメトリック収集 (SQLMON)
SQLMON は、ユーザー定義の SQL 結果を定期的に収集し、メトリクスとして保存します。 数値を返し、負荷が低いクエリに適しています。
-
sqlmon Int
既定値:
11: dbx と sqlmon を同時に実行2: sqlmon のみ実行
対応バージョン: 2.3.5 以上
設定
- dbx エージェント配下に
sqlmonディレクトリを作成し、収集したいクエリを<filename>.sqlファイルとして作成します。
dbx/
└── sqlmon/
├── active_sessions.sql
└── lock_count.sql
- 収集するクエリを
<filename>.sqlファイルとして保存します。
.sql ファイルの1行目に実行オプションを、2行目以降に SQL 文を記述します。
周期(分);動作時間;タグ名
SQL文
| 項目 | 説明 | 例 |
|---|---|---|
| 周期 | 実行周期(分単位)、最 小値 1 | 1 → 1分ごとに実行 |
| 動作時間 | HHMM-HHMM 形式、カンマ(,)で複数の時間帯を指定可能。0 の場合は常時実行 | 0900-1100 → 09:00〜11:00のみ実行 |
| タグ名 | メトリクスに保存するタグ名。省略時はファイル名がタグ名として使用されます | whatap |
1;0900-1100;whatap
SELECT count(*) FROM active_sessions
1;0
SELECT count(*) FROM active_sessions
- 動作時間は日付をまたいで設定できます。(例:
2300-0100→ 23:00〜翌日01:00) - タグ名を省略する場合、動作時間の後にセミコロン(
;)を付けないでください。 - SQL 文の末尾にセミコロン(
;)を付けないでください。
-
whatap.confで SQLMON を有効化します。 -
エージェントを再起動します。
-
サイトマップ > メトリクス照会 メニューで、
sqlmonカテゴリを確認します。
# whatap.conf
sqlmon=1
スロークエリー収集
スロークエリを収集するには、まずデータベース(DB)を設定した上で、ユーザの環境(オンプレミスまたはAWS RDS/Aurora)によってWhaTapの設定方法が異なります。
スロークエリー機能はMySQLとPostgreSQLに限って対応します。
データベース設定を確認する
WhaTap設定前、PostgreSQLデータベース(DB)に対してスロウクエリ関連のパラメータを設定する必要があります。 スロークエリーログ機能が活性化されていることを確認し、WhaTapの設定を進めます。
log_min_duration_statement=3000 # 3秒
オンプレミス環境
独自のサーバーで運用する場合、WhaTapの DBX/XOS設定方式を使用します。 DBXエージェントのインストール以外に、DBサーバーにXOSを必ずインストールする必要があります。 XOSエージェントの設定方法は次の文書を参考にしてください。
-
DBXwhatap.confファイルに'slow_query_log=on'オプションを追加します。
- slow_query_log Boolean
スロークエリーロギング機能を活性化(on)するか、非活性化(off)します。 PostgreSQLの既定値はoffです。
- slow_query_log Boolean
-
XOSがインストールされている場合は、ファイル名を自動認識します。 ファイル名が自動的に認識されない場合は、XOSwhatap.confパイルに
slow_query=に設定します。
AWS RDS/Aurora環境
AWS RDS/Aurora環境はXOSエージェントをインストールできないので、クラウド設定により、スロー クエリを収集できます。
管理 > クラウド設定メニューで提供されるガイドに従って実行すると、ユーザーのAWS環境で自動的にモニタリ ングリソースを生成し、スロークエリーデータを収集します. 別途の追加設定は必要ありません。 詳しい内容は、次の文書を参照してください。
PostgreSQLはDBXエージェント設定方式に対応していません。 クラウド設定メニューを活用すると、CloudWatch指標とともにスロークエリーデータを収集できます。
AES256暗号化の適用
WhaTap DBXエージェントは、収集されたデータを暗号化してサーバーに送信します。データの重要度や設定によって変更できます。基本的にXOR演算とAESアルゴリズムによる暗号化を使用し、平文を128ビット単位に分割して暗号化、復号を行います。ユーザー設定により、256ビットまで拡張できます。
WhaTap DBXエージェントをインストールしたパスで、whatap.confファイルを次のオプションに追加します。
cypher_level=256
設定を追加してから、エージェントを再起動してください。
エージェント名の設定
自動設定する
エージェント設定(whatap.conf)で名前を設定しないと、エージェント名はIP アドレスとポート番号が結合されて自動指定されます。例えば、IPアドレスが10.11.12.13であり、ポート番号が3000であれば、エージェント名はDBX-12-13-3000に設定されます。
エージェント名を決定する主な変数については、以下を参照してください。
| 設定 | 説明 |
|---|---|
{type} | DBX値を使います。 |
{ip0} | IPv4アドレスのうち、第1オクテット を使用します。(例:10.11.12.13のうち10) |
{ip1} | IPv4アドレスのうち、第2オクテットを使用します。(例:10.11.12.13のうち11) |
{ip2} | IPv4アドレスのうち、第3オクテットを使用します。(例:10.11.12.13のうち12) |
{ip3} | IPv4アドレスのうち、第4オクテットを使用します。(例:10.11.12.13のうち13) |
{port} | データベースサーバのポート |
RDSのようにIPアドレスが数字でなければDBX-{ip0}-{hash}-{port}形式で名前が設定されます。ここで{hash}値は、IPアドレスを4桁の16進数に変換した値です。
手動設定する
エージェント名を直接設定したい場合は、whatap.confファイルでwhatap.nameまたはobject_nameオプションに目的の名前を入力します。ユーザーが入力した名前がエージェント名として設定されます。
whatap.name=agent-1234
# or
object_name=agent-1234