説明
Cloud SQL for PostgreSQL の log_min_messages は、サーバーログに記録するメッセージの最低レベルを指定します。無効な値は設定の適用失敗につながる可能性があります。有効な値でも、運用目的に合っていなければ、必要な記録が抜けたりログが過剰になったりします。
PostgreSQL の既定値は warning です。サーバーログでは log は error より上、fatal より下のレベルなので、log を選ぶと通常の warning と error のメッセージは除外されます。値が有効であることと、必要なメッセージをすべて記録できることは同じではありません。
想定される影響
- 必要な警告やエラーの記録が欠けると、障害や異常の調査が難しくなる可能性があります。
- 詳細すぎる記録は、ログ処理コストや運用上のノイズを増やす可能性があります。
対処方法
settings.database_flagsのlog_min_messagesにサポート対象の値を指定し、必要な警告やエラーを含むレベルを選んでください。- 他の PostgreSQL ログ設定も併せて確認してください。この設定だけですべてのデータベース操作の監査記録が得られるわけではありません。
- 変更後に実際のメッセージ収集、ログ量、性能への影響を確認してください。
google.cloud 1.14.0 の SQL モジュールは既存インスタンスの更新に対応していません。以下は作成用の例です。既存インスタンスのフラグは、対応する Cloud SQL ツールや API で変更してください。
例
サポート対象の PostgreSQL バージョンとインスタンスのマシンタイプ、実際のプロジェクト名とリソース名、サービスアカウントの JSON ファイルを使用してください。以下の例はメッセージレベルの有効性と記録範囲を比較します。
変更前
yaml
- name: Cloud SQL 인스턴스 생성
google.cloud.gcp_sql_instance:
auth_kind: serviceaccount
database_version: POSTGRES_13
name: "{{ resource_name }}-2"
project: test_project
region: us-central1
service_account_file: /tmp/auth.pem
settings:
database_flags:
- name: log_min_messages
value: debug6
tier: db-custom-1-3840
state: present
debug6 はサポート対象のメッセージレベルではなく、有効なデプロイ設定として使用できません。
変更後
yaml
- name: Cloud SQL 인스턴스 생성
google.cloud.gcp_sql_instance:
auth_kind: serviceaccount
database_version: POSTGRES_13
name: "{{ resource_name }}-2"
project: test_project
region: us-central1
service_account_file: /tmp/auth.pem
settings:
database_flags:
- name: log_min_messages
value: log
tier: db-custom-1-3840
state: present
log は有効な値ですが、通常の warning と error のメッセージを除外します。必要な記録範囲に合うか確認し、警告から収集する場合は warning など適切なレベルを選んでください。