[pgcluster: 166] Re: リモートからの状態の監視

Jun Kuriyama kuriyama @ imgsrc.co.jp
2004年 2月 25日 (水) 15:49:18 JST


At Tue, 24 Feb 2004 23:33:06 +0900 (JST),
Tatsuo Ishii wrote:
> ただ組み込み関数にすると,後々メインテナンスが面倒なので,ユーザ定義関
> 数にして,後付けで組み込めるようにしたほうが良いような気がします.
> # デバッグも楽ですし.

 これ、デバッグが楽だ、というのは shared library にした場合に
unload/reload ですぐに新しいものが試せる、ってことでいいのかな。とりあ
えず libpq/replicate.c に直書きして試していますが……。この場合、組み
込み関数とユーザ定義関数の違いは postgres.bki で定義されて initdb 時に
作成されるのと、ユーザーが明示的に create function すると使える、とい
う違い……と理解したんですが、後者はなんかデフォルトで既に create
function した状態を提供できたりするのかな。

http://www.imgsrc.co.jp/~kuriyama/pgcluster/patch-libpq:replicate.c

の後ろの方に関数作ってみました。これで

template1=# create function pgr_current_replicator () returns text as 'pgr_current_replicator' language internal with (isStrict);
CREATE FUNCTION

とかできるはずです。あとは

template1=# select pgr_current_replicator();
   pgr_current_replicator
-----------------------------
 replicator.example.org:8777
(1 row)

って感じですか。

 あと、こっちには pgreplicate 側で cluster の状態を返すパケットの処理
を加えてみました。

http://www.imgsrc.co.jp/~kuriyama/pgcluster/patch-main.c

 で、これらを使って、nagios (http://www.nagios.org/) で監視するための
スクリプトが

http://www.imgsrc.co.jp/~kuriyama/pgcluster/check_pgcluster.pl
http://www.imgsrc.co.jp/~kuriyama/pgcluster/check_pgreplicate.pl

です。もうちと手元で揉んでから FreeBSD Ports に commit してみます。


-- 
Jun Kuriyama <kuriyama @ imgsrc.co.jp> // IMG SRC, Inc.



pgcluster メーリングリストの案内