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ファンクションの登録が必要です。
- 設定手順
- 千手エージェントのインストール
監視対象ノードに千手エージェントがまだインストールされていない場合、千手エージェントをインストールします。インストール方法は 「千手エージェントのインストール」 を参照して下さい。
- 環境変数の設定
psqlコマンドへのパスが未設定の場合は、以下の手順で環境変数PATHにPostgreSQLをインストールしたディレクトリ配下のbinを追加設定します。
端末より千手稼働アカウントでログインします。
- 以下のコマンドを実行します。
(以下、PostgreSQLを/export/home/senju/psqlにインストールした場合の例)
% sj_source.com -cPATH=/export/home/senju/psql/bin:$PATH % exit %
- 設定した環境変数を確認するには、千手稼働アカウントで再ログインした後、以下のコマンドを実行して下さい。
% env | grep PATH
- 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メジャーバージョンは同一である必要があります。
- 設定手順
- 千手センサーの設定及び登録
PostgreSQLが稼働しているノードを、千手センサーとして千手システムに登録して下さい。詳細は、 「千手センサーの設定」 を参照して下さい。
- 千手センサーノードにおけるPostgreSQLの設定
- 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
- 接続条件の設定
千手センサーノードへの、プローブノードからの指定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
- pgstattupleファンクションの登録
監視対象データベースにpgstattupleファンクションを登録します。
参考
pgstattupleファンクションのインストールなどの詳細については、postgresql-contribのREADME.pgstattuple.euc_jpを参照してください。
(pgstattupleの登録例)
% psql sampledb; sampledb=# CREATE EXTENSION pgstattuple; CREATE EXTENSION sampledb=# \q %
- postgreSQLの再起動
上記設定後、千手センサーノードのPostgreSQLを再起動して下さい。
- プローブノードにおけるPostgreSQLの設定
- PostgreSQLのインストール
プローブノードでは、千手センサーノードと同一メジャーバージョンのpsqlコマンドが利用可能になっている必要があります。
PostgreSQLがインストールされていない場合にはPostgreSQLをインストールして下さい。
- 環境変数の設定
インストール後、 千手エージェント機能によるPostgreSQL監視の設定 の 「環境変数の設定」 を行って下さい。
- hostsの設定
プローブノードのファイル/etc/hostsに、千手センサーノードのホスト名とIPアドレスを設定して下さい。
- sjANM_monExtdの再起動
千手システムでpsqlを利用できるようにするため、ノードモニタよりsjANM_monExtdプロセスを停止・起動して下さい。
- パスワードの設定
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サーバーのノードを選択し、マウスの右ボタンをクリックしてコンテキストメニューを表示し、[プロパティ]メニューを選択します。ノードのプロパティウィンドウが表示されますので、[拡張機能]タブを選択します。
定義の例としてここでは、「PostgreSQL:データベース サイズ(MB)」を登録し監視する場合について説明します。
「エクステンションごとのサマリ」フレームの一覧リストからカテゴリ名が「DBサーバー」でかつ、エクステンション名が「PostgreSQL監視」の行を選択します。「監視項目」フレームの一覧リストから監視項目名が「PostgreSQL:データベース サイズ(MB)」の行を選択して、[↓追加]ボタンを押下します。定義を作成するプロパティが開きます。
判定条件やパラメータ値などの各項目を入力し[OK]ボタンを押下します。その後、ノードのプロパティウィンドウにて[OK]ボタンを押下します。これにより、各項目の監視タスクが登録され、監視を開始します。
監視した結果は、千手ブラウザで[ツール]→[グローバルノードモニタ]メニューを選択して表示される、グローバルノードモニタや、グローバルノードモニタから、ノードをダブルクリックして表示されるノードモニタにて確認できます。
グローバルノードモニタでは、DBサーバーの監視の結果は、DBサーバーのカラムに監視タスク毎に正常数(警告数を含む)、異常数として表示されます。
ノードモニタの[拡張機能]タブの「監視タスク」フレームの一覧リストの「PostgreSQL:データベース サイズ(MB)」に監視結果が表示されます。また、監視タスクを選択することにより、監視の対象毎に取得した値と、その状態が「監視対象」フレームの一覧リストに表示されます。
各監視タスクの現在の状態や値がノードモニタに表示されます。適切な異常・警告しきい値の設定の参考にして下さい。
参考
グローバルノードモニタにDBサーバーカラムが表示されていない場合は、グローバルノードモニタのビューの設定を変更します。詳細は ユーザーズガイド の ツール の ビュー設定ダイアログ を参照して下さい。