設定方法
1. 対応バージョン
- PostgreSQL 9.6以上 のバージョンに対応しています。
Cloud環境のPostgreSQL対応状況
| Cloud環境 | PostgreSQL対応有無 |
|---|---|
| AWS | ✅ 対応 |
| Azure | ✅ 対応 |
| OCI | ❌ 非対応 |
| NCP | ✅ 対応 |
| GCP | ✅ 対応 |
| SCP | ✅ 対応 |
2. 必須権限
2-1. 基本モニタリング権限
モニタリングアカウント(例: exemone)に次の権限を付与する必要があります。
-- PostgreSQL 10バージョン以上 (superuser権限の付与が難しい場合)
GRANT pg_monitor TO exemone;
-- PostgreSQL 10バージョン未満
ALTER USER exemone WITH SUPERUSER;
2-2. SQLデータ収集権限
database2、search_path オプションに入力されたDBおよびスキーマに対して、次の権限が必要です。
GRANT USAGE ON SCHEMA {schema名} TO exemone;
GRANT CONNECT ON DATABASE {database名} TO exemone;
2-3. Plan照会権限
GRANT USAGE ON SCHEMA {schema名} TO exemone;
GRANT SELECT ON {schema名}.{table名} TO exemone;
2-4. Session Kill権限
-- 一般PostgreSQL
GRANT pg_signal_backend TO exemone;
-- AWS RDS環境
ALTER USER exemone WITH SUPERUSER;
GRANT rds_superuser TO exemone;
3. 事前設定
パラメータ設定 (DB再起動が必要)
postgresql.conf に次のパラメータを設定します。
-- ユーザー定義関数(PL/pgSQL)に対する性能情報収集を有効化 (デフォルト: none)
track_functions = 'pl'
-- SQL実行情報を収集するための拡張モジュールをロード (デフォルト: null)
shared_preload_libraries = 'pg_stat_statements'
注意: 上記の設定変更後は必ず PostgreSQLの再起動 が必要です。
SQL実行情報収集設定
モニタリング対象DBに接続して、次の設定を行います。
-- モニタリング対象databaseへ接続
-- 該当database名はexemONE Setting > Database > Custom Configuration > database2オプションへの入力が必要
-- publicではないschemaを使用する場合、search_pathオプションへの入力も必要
\c [モニタリング対象dbname]
-- pg_stat_statements拡張機能の作成
CREATE EXTENSION pg_stat_statements;
-- (任意) SQL text長さ制限オプション - PostgreSQL再起動が必要
-- デフォルト値: 1024 / 推奨値: 1048576
-- ただし、pg_stat_statements.max(デフォルト: 1000) × track_activity_query_sizeバイト分の共有メモリ使用量が増加 → 変更時は注意
track_activity_query_size = 1048576
exemONEモニタリングオプション設定
PostgreSQLインスタンスは Setting > Database のInstance登録/編集画面で Custom Configuration に以下のキー値を設定し、指標収集方式を細かく調整できます。
パス: Setting > Database > Custom Configuration
| オプション名 | 説明 |
|---|---|
postgresql.database2 | モニタリング設定DBと pg_stat_statements がインストールされたDBが異なる場合、SQLデータ収集のためにそのDB名を入力します。 |
postgresql.set_search_path | db-agent v3.0.508.51以降 はモニタリング対象DBのsearch_pathに、v3.0.508.51より前 は postgresql.database2 のsearch_pathに適用されます。 |
postgresql.set_search_path2 | (db-agent v3.0.508.51 / api v3.0.508.109以上で追加) postgresql.database2 のsearch_pathに適用され、SqlMessage・Plan照会時に使用されます。 |
postgresql.sslmode | SSLモードの有無を設定します。disable(既存の固定値、デフォルト)、require、verify-ca、verify-fullに対応しています。 |