- 数据库主机上按实例运行 prometheus-community/postgres_exporter 0.20.1, 以实例 OS 用户走本地 socket,经 peer + ident 映射到仅有 pg_monitor 的 homelab_monitor 角色;无密码、不经 Bao。版本与官方 sha256sums.txt 同源。 - prod/dev 启用 pg_stat_statements;monitoring.yml 仅在未生效时 reload/重启 (prod 走 Patroni pending restart),重复执行 changed=0。 - 告警以上游 postgres_mixin 为底改写为 PrometheusRule,阈值对齐 Patroni failover lag 与 max_slot_wal_keep_size;抓取目标带 env 标签。 - Alertmanager 新增 env="dev" 路由到独立 dev 频道,dev SQL 检查告警补 env。 Co-Authored-By: Claude Opus 5.5 <[email protected]>
22 lines
796 B
Django/Jinja
22 lines
796 B
Django/Jinja
listen_addresses = '{{ pg_address }}'
|
|
port = {{ pg_profile.port }}
|
|
unix_socket_directories = '{{ pg_socket_dir }}'
|
|
unix_socket_permissions = 0700
|
|
hba_file = '{{ pg_config_dir }}/pg_hba.conf'
|
|
ident_file = '{{ pg_config_dir }}/pg_ident.conf'
|
|
password_encryption = 'scram-sha-256'
|
|
shared_buffers = '{{ pg_profile.shared_buffers }}'
|
|
max_connections = {{ pg_profile.max_connections }}
|
|
work_mem = '4MB'
|
|
maintenance_work_mem = '32MB'
|
|
max_wal_size = '512MB'
|
|
ssl = on
|
|
ssl_cert_file = '{{ pg_config_dir }}/server.crt'
|
|
ssl_key_file = '{{ pg_config_dir }}/server.key'
|
|
ssl_ca_file = '{{ pg_config_dir }}/ca.crt'
|
|
archive_mode = off
|
|
log_statement = none
|
|
log_min_error_statement = panic
|
|
# postmaster 级参数:变更后需由 monitoring.yml 重启 dev 实例。
|
|
shared_preload_libraries = 'pg_stat_statements'
|