2010年8月4日水曜日

postgresqlのクエリログ(スロウログ)を取得

どうも、俺@仕事中です。

以前にもpostgresqlのslow-log::オデの日記と題してpostgresqlでSlowログを取得する方法を書いたのですが、
この方法はsyslogを利用する方法だったので連携が難しいというか面倒というか、syslogの設定も変更する必要があったので、今回はpostgresqlだけでログを取得する方法についてメモします。

PostgreSQLのバージョンは8.4.xです。(8.3~であれば共通なはず)

# vim postgresql.conf
# 以下を追加

log_destination = 'stderr'
logging_collector = 'on'
# ログの出力先ディレクトリ(postgresユーザで書込み権限あるように)
log_directory = '/usr/local/pgsql/data'
# 出力ファイル名 (
log_filename = 'postgresql_%Y%m%d%H%M_log'
# ログが100KBになったらローテートする
log_rotation_size = 100
# ログを1日おきにローテート
#log_rotation_age = 86400
# 1000ミリ秒以上のクエリを出力(0の場合はすべてのクエリ)
log_min_duration_statement = 1000
です。

あとは
postgres $ pg_ctl restart
と再起動します。

以上どえぇぇぇす。

0 件のコメント: