PostgreSQLログ出力設定

skywalker

■ログ出力ファイル
/var/log/pgsql

■設定作業メモ
● PostgreSQLの設定ファイル(/var/lib/pgsql/data/postgresql.conf)
変更箇所
---------------------
syslog = 1 # range 0-2; 0=stdout; 1=both; 2=syslog
syslog_facility = 'LOCAL5'
syslog_ident = 'postgres'
---------------------
log_min_messages = notice
---------------------
log_statement = true
---------------------

●syslogの設定ファイル(/etc/syslog.conf)
変更箇所
---------------------
local5.* /var/log/pgsql
---------------------
※ファシリティはPostgreSQLの設定ファイルで設定したものと併せる必要があり。

●PostgreSQLとsyslogプロセスの再起動
syslogプロセスの再起動。
---------------------
# /etc/init.d/syslog restart
---------------------
PostgreSQLのプロセスを再起動。
---------------------
# /etc/init.d/postgresql restart
---------------------

●logrotateの設定
ログファイルが肥大化しないよう適当な周期で退避させるように、logrotateに設定。
ログは、syslogを経由して行われている為、logrotateにデフォルトで存在するsyslog関連の設定をまとめた設定ファイル(/etc/logrotate.d/syslog)に、PostgreSQLのログファイルを追記。
---------------------
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/pgsql {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
---------------------

※参考
http://ameblo.jp/itboy/entry-10050328841.html
----------------
http://www.asahi-net.or.jp/~AA4T-NNGK/pgsql.html
http://www.postgresql.jp/document/pg820doc/html/runtime-config-logging.html
http://d.hatena.ne.jp/fuyunoarashi/20080520/p1