PostgreSQL に格納した任意のデータを使って 汎用的な HTML レポートを作成します。
pg_statsinfo-2.x と併用することで、pg_statsinfoで取得したサーバの利用統計情報のグラフィカルな出力が可能になります。
pg_statsinfo で取得した利用統計情報を用いたレポート例はこちらをご覧ください。また、レポート出力結果の見方についてはこちらをご覧ください
pg_reporter は、テンプレートを使って PostgreSQL に格納したデータからレポートを作成します。
ユーザは自由にテンプレートを作成でき、そのテンプレートを元にレポートを出力することができます。(オリジナルのレポートを作成するには SQL と HTML の知識が必要です。)
pg_repoter には、以下の動作モードがあります。
pg_reporterのインストールについて説明します。各インストールパッケージはこちらからダウンロードして下さい。
$ su # rpm -ivh pg_reporter-1.0.1-1.pg84.rhel5.x86_64.rpm
pg_reporter のsourceからのインストールは、標準のcontribモジュールと同様ですが、PostgreSQLが --with-libxml 付きでビルドされている必要があります。(RPMはデフォルトで--with-libxmlが付いています)
pgxs を使ってビルドできます。
$ cd pg_reporter $ make USE_PGXS=1 $ make USE_PGXS=1 install
注意:
PostgreSQL9.0のRPMでは、各種ファイルのインストールディレクトリが変更されているため、
pg_reporterのRPMもそれと同じディレクトリへ各ファイルをインストールするようになっています。
例えば、実行ファイルは従来"/usr/bin"配下に配置されていましたが、PostgreSQL9.0用のRPMでは"/usr/pgsql-9.0/bin"になっています。
pg_reporter に付属するレポート・テンプレートは pg_statsinfo のレポジトリを表示させるためのものです。
前もって pg_statsinfo のレポジトリを初期化してください。
スキーマ情報表示のみであれば、特にデータベースへの登録作業は必要ありません。
コマンドラインモードで、レポートを作成する手順を説明します。
レポートを作成するためのフォルダを作成します。指定したディレクトリがすでに存在する場合は、エラーとなりますので注意してください。
pg_reporter -i statsinfo
statsinfo にディレクトリを移動し、レポートを作成します。
この時、他のほとんどの PostgreSQL ユーティリティと同様、libpq でサポートされる環境変数を使用できます。詳細については、PostgreSQL文書の環境変数の項目を参照してください。
下記の例では、stats というデータベースに接続し、添付のテンプレート details.xml を使い、さらにスナップショットIDが1から10の情報を用いた出力結果を、レポートとして report.html に作成しています。
$ cd statsinfo $ pg_reporter -U postgres -d postgres -t template/details.xml -o files/report.html -a "begin=1&end=10"
完成したレポートは、ブラウザで見ることができます。
CGIモードで、レポートを作成するための手順を説明します。
pg_reporter をCGI モードで使用する場合、Apache HTTP Server のインストールを行います。
# rpm -ivh httpd-2.2.11-1.x86_64.rpm
Apache HTTP Serverの設定ファイルに以下を追加します。
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^/files$ /report [R,L,QSA] RewriteRule ^/([0-9A-Za-z]+)/([^\./]+)$ \ /cgi-bin/pg_reporter?id=$1&template=$2 [R,L,QSA] </IfModule> <Directory "/var/www/html/report"> Options Indexes </Directory>
Apache HTTP ServerのCGI格納ディレクトリにpg_reporterを格納します。
以下はPostgreSQL8.4のrpmをインストールした場合の格納の例です。
# cp /usr/bin/pg_reporter /var/www/cgi-bin
レポートを作成するフォルダを作成します。
下記の例は、ApacheをRPMでインストールした場合の標準のドキュメントツリーを、レポート用ディレクトリとして初期化しています。指定したディレクトリがすでに存在する場合は、エラーとなりますので注意してください。
$ pg_reporter -i /var/www/html
データベース接続情報を記述します。
下記の例は、localhostのリポジトリDBへの接続情報をDB001として記述しています。
$ vi /var/www/html/.dbnames DB001 localhost 5432 postgres postgres postgres
Apache HTTP Server を起動します。
# service httpd start
ブラウザからアクセスします。記述形式の詳細はこちらを参照してください。
下記の例は、Apache HTTP Serverを起動したマシンでブラウザを起動して、DB001で登録されたリポジトリDBに接続し、テンプレートdetails.xmlを使い、スナップショットIDが1から10の情報を用いた出力結果を表示します。
http://localhost/DB001/details?begin=1&end=10
httpdモードで、レポートを作成する手順を説明します。
レポートを作成するフォルダを作成します。指定したディレクトリがすでに存在する場合は、エラーとなりますので注意してください。
下記の例は、カレントディレクトリの htdocs を、レポート用ディレクトリとして初期化しています。
$ pg_reporter -i htdocs
データベース接続情報を記述します。
下記の例は、localhostのリポジトリDBへの接続情報をDB001として記述しています。
$ vi htdocs/.dbnames DB001 localhost 5432 postgres postgres postgres
httpdモードで pg_reporter を起動します。
下記の例は、接続ポートを8080で、ローカルホストからのみ接続可能な状態で起動します。
$ pg_reporter -D htdocs
ブラウザからローカルホストの8080番ポートにアクセスします。
下記の例で接続した場合、スナップショットの一覧からのナビゲーションを利用したレポートの閲覧が利用できます。
http://localhost:8080/
また、直接URLに記述してレポートを作成することも可能です。記述形式の詳細はこちらを参照してください。
下記の例は、DB001で登録されたリポジトリDBに接続し、テンプレートdetails.xmlを使い、スナップショットIDが1から10の情報を用いた出力結果を表示します。
http://localhost:8080/DB001/details?begin=1&end=10
初期化モードで作成したレポート用ディレクトリは残りますので、別途手動で削除してください。また、CGIモードで使用するためにpg_reporterをCGI格納ディレクトリに格納した場合も同様に手動で削除してください。
rpmからインストールした場合はrpmコマンドでアンインストールします。
$ su # rpm -e pg_reporter-1.0.1-1.pg84.rhel5
ビルドした環境でアンインストールします。
$ cd pg_reporter $ make USE_PGXS=1 uninstall
各モードのコマンド記述形式を示します。
初期化 pg_reporter { -i DIR | --init=DIR } コマンドラインモード pg_reporter [options1] [options3] { TEMPLATE | -t TEMPLATE | --template=TEMPLATE } CGIモード pg_reporter httpdモード pg_reporter [options2] [options3] { -D DIR | --httpd-dir=DIR }
初期化実行時に作成されるレポート用ディレクトリの構成を以下に示します。
DIR +- css/ +- files/ +- js/ +- template/ +- xsl/ +- .dbnames
データベース接続情報は .dbnames で指定します。
DB001 db1.example.com 5432 postgres postgres postgres DB002 db2.example.com 5432 stats postgres postgres
CGIモードおよびhttpdモードは以下の形式のURLを受け付けます。
http://localhost/DB001/details?begin=1&end=10
pg_reporter を使用する際には、以下の使用上の注意と制約があります。
pg_reporter -s xsl/html.xsl -t template/details-83-date.xml -a "host=192.168.0.1&port=5432&begin=2011-01-01 00:00:00&end=2011-01-02 00:00:00"
pg_reporterのパッケージに含まれるテンプレートに指定できるパラメータを以下に示します。
pg_reporterでは、Report の作成に「HTML5.JP - 次世代HTML標準 HTML5情報サイト(http://www.html5.jp/)」のJavaScriptライブラリを活用させていただいております。感謝いたします。