KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、DPA(Database Performance Analyzer)に関するお役立ち情報を発信しています。
DPAの導入や監視設定にお役立ていただけます。

PostgreSQL/EDB PostgresをDPAに監視登録しよう!

■概要
 本手順では、PostgreSQL / EDB PostgresをDPAの監視ターゲットとして登録する手順を紹介します。
 ただ、PostgreSQL / EDB Postgresは他のDB製品とは異なり、事前に手動でDPAモニタリングユーザーを作成し、
 その後、DPAでモニタリング設定を進めていく形となります。
 なお、PostgreSQLの監視では、制限付き監視(pg_stat_activityのみ利用)と完全な監視の2パターンがあります。
 制限付き監視では、モニタリングユーザーに最低限の権限を付与してSQL待機時間情報を取得します。
 ですがSQLテキストやSQL実行統計が不完全となる可能性があります。
 データの完全性を高めるため、本手順では完全な監視を行うための手順をご紹介します。
 ※Linux上でのオペレーションとしてコマンドを記載しています。
  Windows環境の場合、適宜読み替えて実行してください。

■前提条件
 ・DPAリポジトリが作成済であること
 ・PostgreSQLへリモート接続が許可されていること

■事前準備手順
 ①監視対象PostgreSQLに接続し、SQL実行統計を収集する機能を持つpg_stat_statmentsモジュールが有効となっているかを確認します。
    $ psql
    postgres=# select name,default_version,installed_version from pg_available_extensions where name=’pg_stat_statements’;
    name         | default_version | installed_version
   ———————————————————–+—————————————————+————————————————————
   pg_stat_statements | 1.9        | ★空欄だった場合、無効

  pg_stat_statementsが無効だった場合、次のコマンドを実行し有効化します。
    postgres=# create extension pg_stat_statements;
    name         | default_version | installed_version
   ———————————————————–+—————————————————+————————————————————
   pg_stat_statements | 1.9        | 1.9 ★バージョンが入れば有効化

    postgres=# \q

 ②postgresql.confを編集モードで開き、次の設定を追加します。
    - shared_preload_libraries = ‘pg_stat_statements‘
    - track_activity_query_size = 2048
    - pg_stat_statements.track = top *1
    *1:オンプレミス環境の場合の値。
      AWS RDS / Azureでは ALL を設定します。

 ③postgresqlサービスを再起動します。
    # systemctl restart <postgresqlサービス名>

 ④DPA用モニタリングユーザーを作成し、権限付与を行います。
    $ psql
    postgres# create user <モニタリングユーザー名> with encrypted password ‘パスワード’;
    postgres# GRANT pg_read_all_stats, pg_read_all_settings, pg_signal_backend TO <モニタリングユーザー名>;
    postgres# \q

PostgreSQL環境では以上で事前設定が完了です。
続けて、下記■導入手順に記載の手順を実行してください。

EDB Postgre環境でのみ追加で次の設定が必要となります。
 ⑤pg_stat_statements利用の追加設定を行います。
    $ psql
    postgres# CREATE SCHEMA <モニタリング用スキーマ名>;
    postgres# CREATE VIEW <モニタリング用スキーマ名>.pg_stat_statements AS SELECT * FROM public.pg_stat_statements;
    postgres# GRANT USAGE ON SCHEMA <モニタリングスキーマ名> TO <④で作成したモニタリングユーザー名>;
    postgres# \q

以上でEDB Postgre環境での事前設定も完了です。
続けて、下記■導入手順に記載の手順を実行してください。

 

■導入手順
 ①ブラウザを起動し、下記URLにアクセスします。
   https://<DPAサーバー機能導入ホスト名>:8124/

 ②DPAコンソールが表示されたら、右上の『OPTIONS』をクリックします。
    

 ③Management Options画面が表示されたら、”Monitor Setup”欄の『Register』をクリックします。
    

 ④Database instance type画面が表示されたら、”PostgreSQL or EDB Postgres”を選択し、『Next』をクリックします。
    

 ⑤監視ターゲットのDB接続情報、事前作成したモニタリングユーザーの情報を入力し、『Next』をクリックします。
   ○入力情報
    - Host name or IP address:監視対象PostgreSQLが稼働するホスト名、またはIPアドレスを入力
    - Port:PostgreSQLがリッスンするポート番号を入力
    - Database:監視対象データベース名を入力
    - SSL mode:PostgreSQL-DPAサーバー間で確立される接続タイプを指定
    - Authentication method:DPAモニタリングユーザーがPostgreSQLに接続する際の認証方式を指定
    - Monitoring user:事前に作成したモニタリングユーザーを入力
    - Password:モニタリングユーザーのパスワードを入力
    

 ⑥DPAコンソール表示名を入力し、『Next』をクリックします。
    

 ⑦サマリー画面が表示されたら内容を確認し、問題なければ『Register』をクリックします。
    

 ⑧完了メッセージが表示されたら、監視ターゲットとしてPostgreSQL / EDB Postgresを追加する手順は完了です。
    

 

DPAトップページに戻り、PostgreSQL / EDB Postgresが監視ターゲットとして登録されていることを確認してください。