[pgsql-jp: 39476] Re: サーバメッセージのファイル保存

Hisakazu Nakai nakai @ shinko.co.jp
2008年 6月 27日 (金) 15:25:52 JST


中井です。

EBIHARA, Yuichiro さんは書きました:
>>> pg_ctl startに"-l"というオプションがあって、PostgreSQLサーバの標準出力、標準エラー出力をログファイルに記録することができます。
>>> http://www.postgresql.jp/document/pg833doc/html/app-pg-ctl.html
>>
>> 一般的なOSのログ管理システムを使ってログを記録するのが前提の設定だと
>> 思います。OS側の設定に依っては、他のサーバに書き出すこともできます。
>> 毎日、ログファイルを日付ごとに分けたり、古いログを消したりも。
> 
> 他のサーバに書き出す、というのは、NFSやWindowsのネットワークドライブを使うということでしょうか。

標準出力をパイプでloggerを使って、syslogdに送り、syslog.confの
設定でsyslogを使って他のホストに流すことができます。
postgresql.confのlog_destinationにsyslogを指定すれば、同じように
syslogdに送り、syslog.confの設定で他のホストにログを転送することが
できます。

> ログローテーションに関しては、postgresql.confのパラメータを使うほうが便利そうな気がします。

そうですね。すいません、違ってました。前まではpg_ctlを使っていた
のですが、今はディストリビューションに付いているinit.dのpostgresql
スクリプトを使っています。
pg_ctlは、コマンドで標準出力を切り離すようにしないと、
sshでリモートログインしているときに、ログアウトできなくなるのです。
ディストリビューションのpostgresqlスクリプトは、標準出力も標準エラー
出力もシェルプロセスから切り離しています。
RedhatやFedoraのpostgresqlのrpmをインストールすると、/etc/init.d/に
起動用のスクリプトもインストールされます。これだけをちょっとコピー
しておき、postresqlのrpmを削除します。そして改めて最新のpostgresqlを
ソースからインストールしてます。もちろん、rpmに付いてきたpostgresql
スクリプトは適当に修正する必要があります。

>>> 手元でテストした限りでは、pg_ctl start -lで指定したファイルには、普段は何も書き込まれません。(0バイトのまま)
>>> pg_ctl startが失敗(二重起動など)したときのみ、ちょっとしたログが書き込まれたくらいなもんです。
>>
>> ログのレベルがデフォルトだとNOTICEだけだからじゃないでしょうか。
> 
> たぶんlog_directory、log_filenameが認識された時点で、PostgreSQLサーバの出力は全てそっちに流れてしまうと思うんですよ。
> なので、pg_ctl start
> -lのほうのファイルには、それらの認識前に生成されたメッセージや、pg_ctl自身のメッセージのみが出力されるんじゃないかと想像しているのですが。
> だとしたら、pg_ctl start -lのほうの出力は全部捨ててしまってもいいかな、と思ったり。
> 
> もしかしたらマニュアルに書いてある、
> 
> 「ログファイルを指定しない場合、pg_ctlの標準出力は、ファイルにリダイレクトするか、例えばrotatelogsなどのログ回転プログラムのような別プロセスにパイプで渡すべきです。
> そうしないと、postgresは出力を(バックグラウンドから)制御端末に書き出すので、シェルのプロセスグループから切り離すことができません。」
> 
> のほうが問題なのかもしれません。
> だったら、こうすればいい?
> 
> $pg_ctl start > /dev/null

私も実質そのようにやっています。ログは、postgresql.confの設定で、
syslog経由で取っています。

-- 
-=-=-=-=  SHINKO ELECTRIC INDUSTRIES CO., LTD.           =-=-=-=-
=-=-=-=-    Research & Development Div.                  -=-=-=-=
-=-=-=-=      Infomation Technology Research Dept.       =-=-=-=-
=-=-=-=-  Name:Hisakazu Nakai          TEL:026-263-3922  -=-=-=-=
-=-=-=-=  Mail:nakai @ shinko.co.jp      FAX:026-263-4562  =-=-=-=-



pgsql-jp メーリングリストの案内