1.サーバーログ(PostgreSQLログ)
目的: データベースサーバの動作状況、SQL実行、エラーなどを記録
出力先: postgresql.conf の設定で制御(ファイル、syslog、journaldなど)
| ログの種類 | 役割 | 主な設定項目 |
|---|---|---|
| エラーログ | 起動・停止、エラー、警告など | log_min_messages |
| 接続ログ | クライアントの接続・切断 | log_connections, log_disconnections |
| チェックポイントログ | チェックポイント処理の実施状況 | log_checkpoints |
| オートVACUUMログ | autovacuum(不要な領域を解放)が実行された記録 | log_autovacuum_min_duration |
| スロークエリログ | 実行に時間がかかったSQL | log_min_duration_statement |
| 全SQLログ | 実行されたすべてのSQL | log_statement |
| 統計ログ | クエリ統計や計画情報 | log_statement_stats, log_parser_statsなど(デバッグ用途) |
ログの出力場場所
log_destination = 'stderr' # 出力先 (stderr, csvlog, syslog, eventlogなど)
logging_collector = on # ファイルへの収集を有効化
log_directory = 'log' # 出力ディレクトリ
log_filename = 'postgresql-%Y-%m-%d.log'
2.WALログ(Write-Ahead Log)
目的: トランザクションの整合性維持(障害時リカバリに使用)
場所: pg_wal ディレクトリ(旧名 pg_xlog)
・データ変更を実ファイルへ書く前に WAL に追記する(先行書き込み)
・クラッシュ後、WALを再生して整合性を回復(クラッシュリカバリ)
・バックアップ・レプリケーションでも利用(WALアーカイブ)
| 設定 | 役割 |
|---|---|
wal_level | 生成するWALの詳細度(minimal / replica / logical) |
archive_mode / archive_command | WALアーカイブ有効化と転送コマンド |
wal_keep_size | ストリーミングレプリケーション用に保持するサイズ |
max_wal_size, min_wal_size | WALファイル管理の上限・下限 |
3.統計ログ
目的: サーバ・テーブル・SQLなどの統計情報を収集して管理・分析に利用
| 種類 | 内容 | View |
|---|---|---|
| アクティビティ統計 | セッションの実行状態 | pg_stat_activity |
| テーブル統計 | SELECT/INSERT/UPDATE/DELETE回数など | pg_stat_user_tables |
| インデックス統計 | 利用回数など | pg_stat_user_indexes |
| 関数統計 | 関数呼び出し回数・時間 | pg_stat_user_functions |
| 種類 | 目的 | ログの保存場所 | 主用途 |
|---|---|---|---|
| サーバーログ | 運用・障害解析 | $PGDATA/log/ 等 | エラーやSQL解析 |
| WALログ | リカバリ・レプリケーション | $PGDATA/pg_wal/ | 障害復旧・レプリカ同期 |
| 統計ログ | 性能監視・調整 | システムカタログ(pg_stat_*) | チューニング・監視 |
ご参考まで