pg_statsinfo-2.5 が収集した統計情報を元に、PostgreSQL サーバの利用統計情報をHTML形式のグラフィカルなレポートで出力します。
pg_stats_reporter は pg_statsinfo が統計情報(以降、スナップショットと呼びます)を蓄積しているデータベース(以降、リポジトリDBと呼びます)からレポート作成に必要な情報を取得し、HTML形式のグラフィカルなレポートを作成します。
pg_stats_reporter を利用する際には、以下の2つのレポート作成機能があります。
Webレポート機能では、Apache HTTP Server と連携して pg_stats_reporter が動作します。
WEBサーバにブラウザを利用してアクセスすることで、ブラウザ上での操作によりレポートを作成することが可能です。
コマンドライン機能では、端末上でのコマンド実行によりレポートを作成することができます。
コマンドライン機能の利用には Apache HTTP Server を必要としません。何らかの理由でApache HTTP Serverを実行出来ない場合や、crond等で一定期間のレポートを日々作成したい場合に特にお勧めします。
pg_stats_reporter のインストールについて説明します。インストールパッケージはこちらからダウンロードしてください。
ソースセットからインストールする場合は、ソースセットに同梱されている INSTALL.ja ファイルを参照してください。
依存するパッケージを yum コマンド、または rpm コマンドでインストールします。以下はインストール例です。
$ su /* yum コマンドを使用したインストール例 */ # yum install httpd php php-pgsql php-intl php-cli /* rpm コマンドを使用したインストール例 */ # rpm -ivh httpd-2.2.15-15.el6_2.1.x86_64.rpm \ php-common-5.3.3-3.el6_2.8.x86_64.rpm \ php-5.3.3-3.el6_2.8.x86_64.rpm \ php-pdo-5.3.3-22.el6.x86_64.rpm \ php-pgsql-5.3.3-3.el6_2.8.x86_64.rpm \ php-intl-5.3.3-3.el6_2.8.x86_64.rpm \ php-cli-5.3.3-22.el6.x86_64.rpm ※php-intl のRPMファイルは、インストールディスク2枚目の以下のパスに格納されています。 Packages/php-intl-5.3.3-22.el6.x86_64.rpm ※php-intl が未インストールの状態でも動作しますが、表示言語の自動設定が機能しなくなります。
rpm コマンドで pg_stats_reporter をインストールします。以下はインストール例です。
# rpm -ivh pg_stats_reporter-2.0.0-1.el6.noarch.rpm
以下はコマンドライン機能のみを使用する場合のインストール例です。
$ su /* yum コマンドを使用したインストール例 */ # yum install php-pgsql php-intl php-cli /* rpm コマンドを使用したインストール例 */ # rpm -ivh php-common-5.3.3-3.el6_2.8.x86_64.rpm \ php-pdo-5.3.3-22.el6.x86_64.rpm \ php-pgsql-5.3.3-3.el6_2.8.x86_64.rpm \ php-intl-5.3.3-3.el6_2.8.x86_64.rpm \ php-cli-5.3.3-22.el6.x86_64.rpm ※php-intl のRPMファイルは、インストールディスク2枚目の以下のパスに格納されています。 Packages/php-intl-5.3.3-22.el6.x86_64.rpm ※php-intl が未インストールの状態でも動作しますが、表示言語の自動設定が機能しなくなります。
rpm コマンドで pg_stats_reporter をインストールします。以下はインストール例です。
# rpm -ivh --nodeps pg_stats_reporter-2.0.0-1.el6.noarch.rpm
設定ファイルを編集し、リポジトリDBへの接続情報を設定します。設定ファイルの説明はこちらを参照してください。
設定例はこちらを参照してください。
Webレポート機能を使用する場合は、HTTP Server を起動します。
# service httpd start
Webレポート機能の操作方法の手順に従い HTTP Server にアクセスし、レポート画面が表示されることを確認してください。
コマンドライン機能の操作方法の手順に従いスナップショット一覧表示を実行し、スナップショット一覧が表示されることを確認してください。
ここでは、pg_stats_reporter の操作方法を説明します。
ブラウザから下記のURLにアクセスします。
URLのホスト名は pg_stats_reporter の実行環境にあわせて変更してください。
http://<ホスト名>/pg_stats_reporter/pg_stats_reporter.php
上記のURLにアクセスすると、初期状態のレポートを表示します。
画面の操作方法を以下に示します。
$ pg_stats_reporter [-R DBNAME] [-i INSTANCEID] [-a] [-O DIRECTORY] [-b SNAPID] [-e SNAPID] [-B DATE] [-E DATE]
以下にコマンド例を示します。
コマンド例では、リポジトリDB名 "sample" のリポジトリDBのスナップショットを元に、以下の条件のレポートを出力します。
なお、レポートの出力先ディレクトリにはHTML形式のレポートファイルの他に、CSSおよびJavaScriptが作成されます。
$ pg_stats_reporter -R sample
*1: スナップショットID指定と日時指定を混在して指定することはできません。
*2: レポート範囲の開始点と終了点の両方が省略された場合は、前日の午前0時から現在日時の範囲とします。
$ pg_stats_reporter -l [-R DBNAME] [-i INSTANCEID]
以下にコマンド例を示します。
コマンド例では、リポジトリDB名 "sample" のリポジトリDBに蓄積されているスナップショットの一覧を表示します。
$ pg_stats_reporter -l -R sample
$ pg_stats_reporter -L [-R DBNAME]
以下にコマンド例を示します。
コマンド例では、リポジトリDB名 "sample" のリポジトリDBに登録されている監視対象インスタンスの一覧を表示します。
$ pg_stats_reporter -L -R sample
$ pg_stats_reporter -s [-R DBNAME]
以下にコマンド例を示します。
コマンド例では、リポジトリDB名 "sample" のリポジトリDBに蓄積されているスナップショットのサイズを表示します。
$ pg_stats_reporter -s -R sample
$ pg_stats_reporter --index [-O DIRECTORY]
以下にコマンド例を示します。
コマンド例では、ディレクトリ名 "/var/report" 直下に存在するレポートのインデックスを作成します。
$ pg_stats_reporter --index -O /var/report
rpm コマンドでアンインストールします。
なお、アンインストールにより設定ファイル(/etc/pg_stats_reporter.ini)は削除されません。設定ファイルを削除したい場合は手動で削除してください。
$ su # rpm -e pg_stats_reporter-2.0.0-1.el6.noarch
ソースセットからインストールした場合のアンインストール手順は、ソースセットに同梱されている INSTALL.ja ファイルを参照してください。
設定ファイルは、"/etc" に "pg_stats_reporter.ini" という名称で配置されています。
設定ファイルの内容は、グローバル設定とリポジトリDB設定の2種類のセクションで構成されています。
グローバル設定は、セクション名 "[global_setting]" のセクションの設定項目です。
グローバル設定の設定項目は、RPMパッケージからインストールした場合は変更する必要はありません。
ソースセットからインストールした場合のみ変更してください。詳細はソースセットに同梱されている INSTALL.ja ファイルを参照してください。
グローバル設定以外のセクションがリポジトリDB設定のセクションとなり、1個のリポジトリDBにつき1個のセクションで設定項目を記述します。
この時、リポジトリDB設定のセクション名がリポジトリDB名となります。
リポジトリDB設定のセクションの設定項目を以下に示します。
記述例はこちらを参照してください。
設定項目 | 設定可能な値 | 項目省略時 | 設定値省略時 | 設定例 | 説明 |
---|---|---|---|---|---|
[リポジトリDB名] | 文字列 | 省略不可 | 省略不可 | [repository1] | 左側のリポジトリ選択メニューに表示するリポジトリDBの名称を指定します。 |
host | ホスト名または IP アドレス | (*1) | 空文字列 | host = localhost | 接続するリポジトリDBのホストを指定します。指定するホスト名は、PostgreSQLが受け付ける形式で指定する必要があります。 |
port | ポート番号 | (*1) | 空文字列 | port = 5432 | 接続するリポジトリDBのポート番号を指定します。PostgreSQL の待ち受けポートを指定してください。 |
dbname | 文字列 | (*1) | (*1) | dbname = postgres | 接続するリポジトリDBのデータベース名を指定します。pg_statsinfo でリポジトリDBとして使用しているデータベースの名称を指定してください。 |
username | 文字列 | (*1) | (*1) | username = postgres | リポジトリDBに接続するDBユーザの名称を指定します。リポジトリDBに参照権限のあるDBユーザの名称を指定してください。 |
password | 文字列 | パスワード指定なし | パスワード指定なし | password = | リポジトリDBへの接続で使用するパスワードを指定します。PostgreSQL への接続パスワードを .pgpass を使用して設定する場合は、値を設定しないでください。 |
language | auto/ja/en | auto | en | language = ja | レポートの表示言語の言語タグを設定します。auto を設定した場合は、表示するブラウザの設定を使用します。指定した言語に対応するメッセージが存在しない場合は英語で表示します。(*2) |
表示項目 (summary ? profiles) |
true/false | true | false | summary = true | レポートに項目の表示/非表示を bool 値で設定します。 |
*1: 設定項目または設定値を省略した場合の挙動については、PostgreSQL日本語ドキュメントのこちらを参照してください。
*2: php-intl が未インストールの状態で auto が設定されている場合は強制的に英語で表示されます。
pg_stats_reporter を使用する際には、以下の使用上の注意と制約があります。
pg_stats_reporter 1.0 からの変更点は以下の通りです。
pg_stats_reporter では、以下のライブラリを活用させていただいております。感謝いたします。