9.3. DBサーバー監視(PostgreSQL)監視設定手順と使い方

9.3.1. PostgreSQL監視機能の設定

  • 説明

    モニタリングサブシステムにてPostgreSQLの監視項目を使用するための設定を行います。

    千手エージェント機能によるPostgreSQL監視の設定では、パスの設定を行います。

    また、千手センサー機能によるPostgreSQL監視の設定では、プローブノードと千手センサーの双方で設定を行います。

  • 制限事項

    参考

    モニタリングサブシステムにおけるPostgreSQL監視のサポートバージョン及び制限事項は、リリースノートを参照下さい。

    PostgreSQL監視機能は、PostgreSQLのpgstattupleファンクションを利用しています。そのため監視対象データベースにpgstattupleファンクションのインストールと、pgstattupleファンクションの登録が必要です。

    PostgreSQL監視を実行するユーザーに「pg_stat_scan_tables」ロールを付与することが必要です。

9.3.1.1. 千手エージェント機能によるPostgreSQL監視の設定

千手エージェントで稼働するPostgreSQLの監視設定について説明します。

  • 説明

    千手エージェントでPostgreSQL監視を行う場合、以下の作業が必要となります。

    • 千手エージェントのインストール

    • 環境変数の設定

    • pgstattupleファンクションの登録

  • 制限事項

    PostgreSQL監視機能は、PostgreSQLのpgstattupleファンクションを利用しています。そのため監視対象データベースにpgstattupleファンクションのインストールと、pgstattupleファンクションの登録が必要です。

  • 設定手順
    1. 千手エージェントのインストール

      監視対象ノードに千手エージェントがまだインストールされていない場合、千手エージェントをインストールします。インストール方法は 「千手エージェントのインストール」 を参照して下さい。

    2. 環境変数の設定

      psqlコマンドへのパスが未設定の場合は、以下の手順で環境変数PATHにPostgreSQLをインストールしたディレクトリ配下のbinを追加設定します。

      1. 端末より千手稼働アカウントでログインします。

      2. 以下のコマンドを実行します。

        (以下、PostgreSQLを/export/home/senju/psqlにインストールした場合の例)

        % sj_source.com -cPATH=/export/home/senju/psql/bin:$PATH
        % exit
        %
        
      設定した環境変数を確認するには、千手稼働アカウントで再ログインした後、以下のコマンドを実行して下さい。
      % env | grep PATH
      
    3. pgstattupleファンクションの登録

      監視対象データベースにpgstattupleファンクションを登録します。

      参考

      pgstattupleファンクションのインストールなどの詳細については、postgresql-contribのREADME.pgstattuple.euc_jpを参照してください。

      (pgstattupleの登録例)

      % psql sampledb;
      sampledb=# CREATE EXTENSION pgstattuple;
      CREATE EXTENSION
      sampledb=# \q
      %
      

9.3.1.2. 千手センサー機能によるPostgreSQL監視の設定

PostgreSQL稼働ノードを千手センサーとして、千手システムに登録することにより、Senju DevOperation ConductorのコンポーネントをPostgreSQL稼働ノードにインストールすることなく、PostgreSQL監視をすることが可能です。

本節では、千手センサー機能によるPostgreSQL監視の設定について説明します。

  • 説明

    千手センサー機能でのPostgreSQL監視を行う場合、以下の作業が必要となります。

    • 千手センサーの設定および登録

    • 千手センサーノードにおけるPostgreSQLの設定

    • プローブノードにおけるPostgreSQLの設定

  • 制限事項

    PostgreSQL監視機能は、PostgreSQLのpgstattupleファンクションを利用しています。そのため監視対象データベースにpgstattupleファンクションのインストールと、pgstattupleファンクションの登録が必要です。

    千手センサーを監視するプローブノードでは、psqlコマンドが利用可能になっている必要があります。PostgreSQLがインストールされていない場合にはPostgreSQLをインストールして下さい。(プローブノードには、pgstattupleファンクションの登録は必要ありません)

    PostgreSQL監視を行う際に、千手センサーノードとプローブノードのDBメジャーバージョンは同一である必要があります。

  • 設定手順
    1. 千手センサーの設定及び登録

      PostgreSQLが稼働しているノードを、千手センサーとして千手システムに登録して下さい。詳細は、 「千手センサーの設定」 を参照して下さい。

    2. 千手センサーノードにおけるPostgreSQLの設定
      1. TCP/IPアクセスの設定

        千手センサーノードへの、プローブノードからのTCP/IPアクセスを可能にします。千手センサーノードのPostgreSQLデータディレクトリ(環境変数$PGDATAに設定されているパス)にある「postgresql.conf」ファイルを編集します。

        以下のように「listen_addresses」にクライアントアプリケーションからの接続を監視するTCP/IPアドレスを指定します。

        以下はTCP/IPアドレスに「192.169.128.149」を指定した例です。

        % cd $PGDATA
        % cat postgresql.conf
                  :
        # - Connection Settings -
        listen_addresses = '192.169.128.149'
        # what IP interface(s) to listen on;
        # defaults to localhost, '*' = any
        
      2. 接続条件の設定

        千手センサーノードへの、プローブノードからの指定DBユーザー、指定DBへのアクセスを可能にします。千手センサーノードのPostgreSQLデータデータディレクトリ(環境変数$PGDATAに設定されているパス)にある「pg_hba.conf」ファイルを編集します。

        以下は、プローブノードのIPアドレスが「192.169.128.153」で、DBユーザー「senju」で「senjuDB」に無条件許可でアクセスする場合の記述です。

        % cd $PGDATA
        % cat pg_hba.conf
                  :
        # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
        host senjuDB senju 192.169.128.153 255.255.255.255 trust
        
      3. pgstattupleファンクションの登録

        監視対象データベースにpgstattupleファンクションを登録します。

        参考

        pgstattupleファンクションのインストールなどの詳細については、postgresql-contribのREADME.pgstattuple.euc_jpを参照してください。

        (pgstattupleの登録例)

        % psql sampledb;
        sampledb=# CREATE EXTENSION pgstattuple;
        CREATE EXTENSION
        sampledb=# \q
        %
        
      4. postgreSQLの再起動

        上記設定後、千手センサーノードのPostgreSQLを再起動して下さい。

    3. プローブノードにおけるPostgreSQLの設定
      1. PostgreSQLのインストール

        プローブノードでは、千手センサーノードと同一メジャーバージョンのpsqlコマンドが利用可能になっている必要があります。

        PostgreSQLがインストールされていない場合にはPostgreSQLをインストールして下さい。

      2. 環境変数の設定

        インストール後、 千手エージェント機能によるPostgreSQL監視の設定「環境変数の設定」 を行って下さい。

      3. hostsの設定

        プローブノードのファイル/etc/hostsに、千手センサーノードのホスト名とIPアドレスを設定して下さい。

      4. sjANM_monExtdの再起動

        千手システムでpsqlを利用できるようにするため、ノードモニタよりsjANM_monExtdプロセスを停止・起動して下さい。

      5. パスワードの設定

        2.2. 「接続条件の設定」で認証方法を無条件許可ではなくパスワード認証にした場合、プローブの千手稼働アカウント(PostgreSQL監視を実行するユーザー)のホームディレクトリにパスワードファイル「.pgpass」を作成する必要があります。

        また、このファイルは、グループ、他アカウントの全てのアクセスを拒否しなければいけないため、ファイル作成後に以下のようにアクセス権を設定して下さい。

        なお、この作業はプローブ上に千手稼働アカウントでログインして行って下さい。

        以下は、千手稼働アカウント「senju」で、全ホスト、全ポートから「senjuDB」に「dbuser」ユーザーで接続する際のパスワード「dbuser」を指定する場合の記述です。

        % su - senju
        Password:*******
        % cat .pgpass
        *:*:senjuDB: dbuser: dbuser
        % chmod 0600 ~/.pgpass
        

9.3.2. PostgreSQL監視機能の使い方

PostgreSQL監視では、PostgreSQLのDBサーバーの各種監視ができます。例えば、PostgreSQLのデータベースフラグメンテーション率、データベース接続数などの監視を行うことができます。

監視の定義を千手ブラウザより登録し、監視を実施します。監視結果は、各種モニタ画面(グローバルノードモニタ/ノードモニタ)にてその監視状況を表示できます。予め設定したしきい値により障害を検知した場合は、メッセージモニタにメッセージが通知されます。

PostgreSQL監視を行うには、千手ブラウザのツリービューで、<ドメイン>→"ノードグループ"→"全体"を選択します。そして、リストビューからDBサーバーのノードを選択し、マウスの右ボタンをクリックしてコンテキストメニューを表示し、[プロパティ]メニューを選択します。ノードのプロパティウィンドウが表示されますので、[拡張機能]タブを選択します。

../_images/3.1_setting_use_postgresql.PNG

図 9.2 ノードモニタのプロパティ([拡張機能]タブ)

定義の例としてここでは、「PostgreSQL:データベース サイズ(MB)」を登録し監視する場合について説明します。

「エクステンションごとのサマリ」フレームの一覧リストからカテゴリ名が「DBサーバー」でかつ、エクステンション名が「PostgreSQL監視」の行を選択します。「監視項目」フレームの一覧リストから監視項目名が「PostgreSQL:データベース サイズ(MB)」の行を選択して、[↓追加]ボタンを押下します。定義を作成するプロパティが開きます。

../_images/3.2_setting_use_postgresql.PNG

図 9.3 監視タスクのプロパティ

判定条件やパラメータ値などの各項目を入力し[OK]ボタンを押下します。その後、ノードのプロパティウィンドウにて[OK]ボタンを押下します。これにより、各項目の監視タスクが登録され、監視を開始します。

監視した結果は、千手ブラウザで[ツール]→[グローバルノードモニタ]メニューを選択して表示される、グローバルノードモニタや、グローバルノードモニタから、ノードをダブルクリックして表示されるノードモニタにて確認できます。

../_images/3.3_setting_use_postgresql.PNG

図 9.4 グローバルノードモニタ 及びノードモニタ([拡張機能]タブ)

グローバルノードモニタでは、DBサーバーの監視の結果は、DBサーバーのカラムに監視タスク毎に正常数(警告数を含む)、異常数として表示されます。

ノードモニタの[拡張機能]タブの「監視タスク」フレームの一覧リストの「PostgreSQL:データベース サイズ(MB)」に監視結果が表示されます。また、監視タスクを選択することにより、監視の対象毎に取得した値と、その状態が「監視対象」フレームの一覧リストに表示されます。

各監視タスクの現在の状態や値がノードモニタに表示されます。適切な異常・警告しきい値の設定の参考にして下さい。

参考

グローバルノードモニタにDBサーバーカラムが表示されていない場合は、グローバルノードモニタのビューの設定を変更します。詳細は ユーザーズガイドツールビュー設定ダイアログ を参照して下さい。