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
redis注意別のオプション値を入力すると、モニタリングのデータ収集が正常に動作しない場合があります。
-
db_ip String
モニタリングするデータベースサーバーのIPアドレスを設定します。
-
db_port String
データベースが通信に使用するポート番号を設定します。
クラスター構成
-
cluster_name String
クラスターセットを定義するオプションで、同じ
cluster_nameのオプション値を持つデータベースは、ダッシュボード > インスタンスリストメニューでツリー構造で表示されます。 マルチインスタンスメニューのエージェント選択オプションでクラスタ別エージェント項目を選択してクラスターを構成するインスタンス同士がダッシュボードに表現され、一目でモニタリングできます。 一部のウィジェットは、クラスター単位の情報を提供します。 詳細については、次の文書を参照してください。
データ収集
-
db_param_enabled Boolean
既定値
trueDBパラメータの収集有無を設定します。
-
conn_fail_count Int
既定値
1515回連続コネクションエラーが発生した時に通知を送信します。希望する回数を入力して、通知の発生基準を調整できます。
-
idle_as_active Second
既定値
1セッションが最後のactive状態になってからidle状態を維持した時間(秒)が設定値より小さいセッションをactive sessionとしてみなすオプションです。たとえば、設定値が1の場合、1秒以内にactiveだったセッションがアクティブセッションウィンドウに表示されます。
ユーザーメトリック収集 (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
AWS RDS CloudWatch適用
AWS CloudWatchを使用するエージェント設定に関する説明です。 収集を開始するとメトリクスで収集され、管理 > メトリクスチャートメニューのdb_redis_counterカテゴリで他の指標と一緒に確認できます。
-
aws_region String
AWSリージョンを設定します。
-
aws_arn String
AWS認証のために適切な権限を持つIAM ROLEのARNを使用することができます。
必須権限
ROLEには、次のアクセス権限(Policy)が必要です。
権限 権限内容 rds:DescribeDBInstances インスタンスクラスの情報収集 rds:DescribeDBClusters autoscale使用時クラスターから情報収集 rds:DescribeDBLogFiles CloudWatchログ収集 rds:DownloadDBLogFilePortion CloudWatchログ収集 ec2:DescribeInstanceTypes インスタンスクラスに対応するcpu数を収集 elasticache:DescribeCacheClusters elasticacheを利用する場合時、インスタンスクラスの情報を収集 cloudwatch:ListMetrics CloudWatch指標一覧を収集 cloudwatch:GetMetricStatistics CloudWatch指標から値を収集 logs:DescribeLogStreams CloudWatchログ収集(掲示されたログ機能を使用する場合) logs:GetLogEvents CloudWatchログ収集(掲示されたログ機能を使用する場合) -
cloud_watch String
CloudWatchモニタリングの使用有無を設定します。 設定値は
onまたはoffです。 -
cloud_watch_instance String
CloudWatchインスタンス名を設定します。
-
cloud_watch_interval Second
CloudWatchでモニタリング値を取得する間隔を設定します。(単位:秒)
-
cloud_watch_metrics String
CloudWatchに読み込みするモニタリング指標名を設定します。次のように設定できます。
cloud_watch_metrics=CPUUtilization,FreeableMemory,FreeStorageSpace,NetworkTransmitThroughput,NetworkReceiveThroughput
RDS CloudWatch収集の設定例
次のような基本設定を作成することにより、RDS CloudWatchをモニタリングし、データを収集します。
cloud_watch=on
aws_region=ap-northeast-2
# AWS IAMで役割(Role)を作成し、ロールARN(Role ARN)値をコピーして貼り付けます。
aws_arn=arn:aws:iam::999999999999:role/UpdateApp
cloud_watch_metrics=CPUUtilization,FreeableMemory,FreeStorageSpace,NetworkTransmitThroughput,NetworkReceiveThroughput
#インスタンス名の例
cloud_watch_instance=pg-rds
#slow query使用時
slow_query_log=on
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