Custom Search

JITAKU_SVR_Wiki

PostreSQL

ログ出力設定

postgresのログ出力方法は大きく分けて『保存方法』、『内容』を設定する。
デフォルトだとserverlog(9.x~)に出ていたり、syslogに吐かれていたり、非常に分かりにくい。

更に、ログ出力方法をカスタマイズしないと、不必要な情報が大量に出たり、いつどんなエラーが出たかすら分からない状態。
運用者なら絶対に必要となる設定。

それぞれの説明は以下へ。

ログの出力先(場所、形式)

設定デフォルト説明
log_destination = 'stderr'stderrログを標準出力させる。log出力の方法を設定
logging_collector = onoffoffの状態だと何も記録されない
log_directory = '/usr/local/pgsql/pg_log'pg_logログを出力させるパス
log_filename = 'postgresql-%Y-%m-%d.log'postgresql-%Y-%m-%d_%H%M%S.log'出力させるログファイルのルール(以下)
log_truncate_on_rotation = offoffすでに同じ名前のファイルがある場合は上書きする
log_rotation_age = 14401440log_destinationがstterr、logging_collectorがonで有効
log_rotation_size = 010240単位はKB、0にするとサイズでのローテートをしない
log_file_mode = 0644600作成されるファイルの権限を変更
  • log_filenameについて
    %Y 年
    %m 月
    %d 日
    %H 時
    %M 分
    %S 秒



ログの出力先(内容)

以下の設定はそれぞれ運用する場面で値が異なるので、要検討部分。
ここで設定した部分は自分の環境でのあくまで一例。

設定デフォルト説明
log_min_messages = errornoticeログに出力するログレベル
log_min_error_statement = errorpanicエラーの原因となったSQL文の出力レベル
log_min_duration_statement = 15s-1特定秒を超えたSQL文の出力(スロークエリ、-1は出力なし)
log_connections = offoff接続したクライアント情報
log_disconnections = offoff接続を切断したクライアント情報
log_duration = offoffSQL文がかかった時間の表記
log_line_prefix = '%t:[%p]: 'unsetログに出力させる情報(デフォルトはSQL実行時刻すらなし、詳細は別途)
log_statement = 'none'noneサーバログに出力するSQL文
  • log_line_prefixについて
    %u ユーザー名
    %d データベース名
    %r クライアントホスト名あるいはIPアドレスと、ポート番号
    %h クライアントホスト名あるいはIPアドレス(8.1~)
    %p パックエンドプロセスのプロセスID
    %t 時刻(YYYY-MM-DDHH24:MI:SS)
    %m 時刻(YYYY-MM-DDHH24:MI:SS.MS)(8.1~)
    %i ログを出力したコマンド
    %c セッションID
       セッションの接続開始時刻とプロセスIDを基にそれぞれを16進数にした値
    %l プロセス毎のシーケンス番号
    %s セッションの接続開始時刻
    %x トランザクション識別子
    %q postmasterプロセスのログの場合、このエスケープ移行の出力をキャンセルする
    %% "%"文字

出力例

ex.)log_min_messages = debug5の時のログ出力
# ls -l /usr/local/pgsql/data/pg_log/postgresql-2013-12-02.log
-rw------- 1 postgres postgres 20777 12月  2 19:04 2013 /usr/local/pgsql/data/pg_log/postgresql-2013-12-02.log

# less /usr/local/pgsql/data/pg_log/postgresql-2013-12-02.log
2013-12-02 19:01:57 JST:[11676]: LOG:  database system was shut down at 2013-12-02 19:01:56 JST
2013-12-02 19:01:57 JST:[11676]: DEBUG:  checkpoint record is at 0/49C520
2013-12-02 19:01:57 JST:[11676]: DEBUG:  redo record is at 0/49C520; shutdown TRUE
2013-12-02 19:01:57 JST:[11676]: DEBUG:  next transaction ID: 0/400; next OID: 11512
2013-12-02 19:01:57 JST:[11676]: DEBUG:  next MultiXactId: 1; next MultiXactOffset: 0
2013-12-02 19:01:57 JST:[11676]: DEBUG:  transaction ID wrap limit is 2147484025, limited by database "template0
"
2013-12-02 19:01:57 JST:[11676]: DEBUG:  proc_exit(0)
2013-12-02 19:01:57 JST:[11676]: DEBUG:  shmem_exit(0)
2013-12-02 19:01:57 JST:[11676]: DEBUG:  exit(0)
2013-12-02 19:01:57 JST:[11674]: DEBUG:  reaping dead processes
2013-12-02 19:01:57 JST:[11674]: LOG:  database system is ready to accept connections
2013-12-02 19:01:57 JST:[11679]: LOG:  autovacuum launcher started

重要

上記のログ出力設定を行った場合、postgresqlを再起動させる必要がある。reloadでは反映されないので注意。

参考

http://www.asami.asia/tech/


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-17 (木) 16:40:21 (644d)