説明
PostgreSQL の log_disconnections は、セッションの終了と継続時間をログに記録します。記録がないと、接続履歴とセッションの長さを照合した調査が難しくなる場合があります。
終了ログだけで、すべての異常終了の原因や実行された SQL が分かるわけではありません。必要な接続ログやエラー記録と併せて使う必要があります。
想定される影響
- セッションが終了した時刻や継続時間を確認する資料が不足するおそれがあります。
- 接続の問題や不審なセッション利用の調査に時間がかかる場合があります。
対処方法
- セッション終了の記録が必要なら
log_disconnectionsをonにしてください。併せて必要な接続ログとエラーログも確認してください。 - テスト用セッションを接続して終了し、ログの受信と継続時間の記録を確認してください。保持期間、アクセス権限、ログ量を管理してください。
例
インスタンス設定の一部を示す例です。サポートされるエンジンバージョンとマシンタイプを選び、省略した必須設定を用意してください。
変更前
hcl
resource "google_sql_database_instance" "db" {
name = "postgres-instance"
database_version = "POSTGRES_15"
region = "us-central1"
settings {
database_flags {
name = "log_disconnections"
value = "off"
}
}
}
変更後
hcl
resource "google_sql_database_instance" "db" {
name = "postgres-instance"
database_version = "POSTGRES_15"
region = "us-central1"
settings {
tier = "db-f1-micro"
database_flags {
name = "log_disconnections"
value = "on"
}
}
}
補足:
- 変更前: 切断ログを無効にします。
- 変更後: 切断ログを有効にします。この設定自体で異常なセッションを遮断するわけではありません。