Перейти к основному содержимому
Версия: 6.2

Подготовка PostgreSQL

Сетевой доступ и роль мониторинга​

Разрешите подключения от Smart Monitor Data Collector к каждому инстансу PostgreSQL. Создайте отдельную роль без прав суперпользователя:

CREATE ROLE sm_monitor LOGIN PASSWORD '<пароль>';
GRANT pg_monitor TO sm_monitor;

Проверьте, что роль выполняет запрос к pg_stat_activity на каждом узле. Не используйте учетную запись владельца приложения или суперпользователя.

Расширения Tier 1​

Для статистики запросов добавьте pg_stat_statements в shared_preload_libraries, перезапустите PostgreSQL и создайте расширение в наблюдаемой базе:

CREATE EXTENSION pg_stat_statements;

Для анализа bloat создайте pgstattuple. Для профиля ожиданий установите стороннее расширение pg_wait_sampling. Значения track_io_timing = on и compute_query_id = on или auto расширяют состав доступных сигналов.

Журнал и pgaudit​

Журнал и аудит поддерживаются для PostgreSQL 15-17. Настройте:

logging_collector = on
log_destination = 'jsonlog'

Для аудита используйте профиль ddl, role и объектный аудит через роль-маркер:

CREATE ROLE sm_auditor NOLOGIN;
GRANT SELECT, INSERT, UPDATE, DELETE ON <объект> TO sm_auditor;
pgaudit.role = 'sm_auditor'
pgaudit.log = 'ddl, role'
pgaudit.log_parameter = off
pgaudit.log_catalog = off
pgaudit.log_relation = on
pgaudit.log_statement_once = on

Параметр pgaudit.log_parameter должен оставаться выключенным. Иначе в журнал могут попасть значения параметров запросов и содержимое прикладных таблиц.

Если кластером управляет Patroni, меняйте параметры PostgreSQL через DCS, а не только в postgresql.conf. После изменения сверяйте конфигурацию Patroni и фактические значения pg_settings на каждом узле.

TLS​

Защитите четыре участка маршрута:

УчастокТребование
Smart Monitor Data Collector - PostgreSQLssl = on, сертификат узла и sslmode=verify-full
Smart Monitor Data Collector - Patroni RESTHTTPS и проверка корневого сертификата
Smart Monitor Data Collector - PgBouncerclient_tls_sslmode = require
Smart Beat - Smart Monitor Data CollectorTLS на входе beats и проверка сертификата агентом

Сертификат PostgreSQL должен содержать адрес подключения в Subject Alternative Name. Используйте удостоверяющий центр инсталляции.

Проверьте потребителей Patroni REST

Перевод Patroni REST на HTTPS влияет на балансировщики, patronictl и внешние системы мониторинга. Обновите их конфигурации в том же окне работ. Иначе чтение состояния может продолжить работать, а операции switchover или проверки здоровья завершатся ошибкой.