Home –  未分類 – pgwatchを試してみる

pgwatchを試してみる

PostgreSQL用の統計情報(キャッシュヒット率やディスク利用量など)を見やすくしてくれるツールはないものかと思いなんとなく調べてみたらpgwatchというものをがあるというのをしりました。

http://www.cybertec.at/en/postgresql_products/pgwatch-cybertec-enterprise-postgresql-monitor

どうやらWeb上で統計情報がみれるみたい?ということで早速インストールしてみました。
なおこのソフトですがPostgreSQLのバージョンが9.0以降のものにしか対応していないようです。

1.事前準備

ドキュメントを覗くと

- Apache (webserver)
 - PHP 5 (scripting language)
 - pgsql extension for PHP (see http://www.php.net/manual/en/book.pgsql.php)
 - PostgreSQL 9 (to store the data we collect)
 - dblink (contribution module for PostgreSQL 9)

と書いてあります。
ハードルは高くないとは思いますが dblink をインストールしておかないと行けないというのがミソでしょうか。contribをそのまま入れてれば問題ないのかなと思っています。

2.インストール

http://www.cybertec.at/en/ressources/postgresql_downloads

上記URLのページからpgwatch(私が確認したときはVersion1.0)をダウンロードします。
ダウンロードしたファイルを解凍した上でWeb公開用のディレクトリに配置します。

今回私は/var/www/html/pgwatchに配置しました。

 

セットアップにいくつかの方法があるようです。

  • Webからのセットアップ(http://ホスト名/インストールディレクトリ/setup.php)
  • コンソールからのセットアップ(/var/www/html/pgwatch/setup.sh)

またpgwatch自身もDBが必要な為、予めアカウントとデータベースは作成しておきました。
(よく分かってないのですが、セットアップ中にアカウント、データベースの作成もしてくれる感じでもありました。)

 

今回、SSHで接続してコンソールからセットアップしています。

データベースサーバが192.168.1.240, pgwatchをインストールしたサーバは192.168.1.238という環境でのセットアップのログを下記に記載します。

cd /var/www/html/pcwatch
./setup.sh

[root@postgres01 pgwatch]# ./setup.sh
Please enter the host name of the application (localhost): 192.168.1.238
Host name will be "192.168.1.238"
Please enter the folder name inside the host this app is located in (pgwatch):
Folder name will be "pgwatch"

Application url: http://192.168.1.238/pgwatch
Path to PostgreSQL binaries (/usr/bin)?
Binaries will be used in "/usr/bin"
Database server host (localhost)? 192.168.1.240
Connection will go to host 192.168.1.240
Database server port (5432)?
Connection will work through port 5432
Please enter the database name to create (pgwatch):
Database name will be "pgwatch"
Please enter the database user's password: pgwatch
Database password will be "pgwatch"
Create new user to use pgwatch (Y/n)? n
Existing user will be used.
Please enter the database user to connect by (pgwatch):
Database user will be "pgwatch"
Creating database pgwatch with owner pgwatch...
Creating database content...

Remember to add the following row to cron of user www-data (or so):
0 * * * * cd /var/www/html/pgwatch && /usr/bin/php util/getraw_d.php

You can acces now the application on http://192.168.1.238/pgwatch

Ready.

激しく手抜きなのですがここまでrootユーザーでやってきてます(´・ω:;.:…

www-dataユーザーでcrontab設定しろとか言われてますが、このままrootユーザーでcrontab設定しました。
実行ユーザー等はインストール環境に応じて設定して下さい(ディレクトリのオーナー等)

上に書いてある通りcrontabを設定しました。が、ちょっとだけ変更をしました。

0 * * * * cd /var/www/html/pgwatch && /usr/bin/php util/getraw_d.php > /dev/null

といっても > /dev/null しているだけですが・・・。
cronの結果がメールで届くような形にしている場合、毎回やたら長い実行中の内容(?)が出力されるのでそれは必要ないと思った次第です。

3. 実行確認

ブラウザで http://インストールしたサーバ/インストールしたディレクトリ/へアクセスして下さい。
(今回私の場合はhttp://192.168.1.238/pgwatch/となります。)

そうすると監視先のデータベースサーバのアカウントなどの設定する画面が出てきますので、設定して下さい。
ポイントとしては接続するアカウントはスーパーユーザーが必要みたいです。一般ユーザーでアクセスしても統計情報が取得できませんでした。(当たり前のような気もしますが・・・)

ホントは画像入りで書こうと思ったのですが面倒で・・・・(;´Д`)

上手く設定できれば↓のようなページで色々と情報を見ることが可能です。

4. 感想など

個人的には結構手軽に設置出来てWebページでグラフィカルに見えるので非常にありがたいツールかなと思います。

またDBサーバに設置する必要もないのでそういった点もありがたいです。
監視先のサーバはpgwatch用のデータベースのあるサーバとは全く別のサーバも設置できますので、複数台DBサーバがあってもpgwatchはひとつだけインストールしておけば大丈夫です。

PostgreSQL9.0以降という制約がありますが簡単にインストール出来るので一度使ってみる価値はあるのではないかと思いました。

コメントを残す