Локальная конфигурация
Локальная конфигурация определяется в файле postgres.yml (по умолчанию: /etc/pangolin-manager/postgres.yml) и имеет приоритет над динамической конфигурацией. Файл конфигурации может быть либо одним файлом YAML, либо каталогом. Когда это каталог, все файлы YAML загружаются по одному в алфавитном порядке имен файлов. В случае, если ключ определен в нескольких файлах, предпочтение отдается последнему файлу.
Изменение конфигурации
Локальная конфигурация может быть изменена (редактированием файла postgres.yml) и перезагружена во время выполнения (без перезапуска Pangolin Manager) отправкой сигнала SIGHUP процессу, выполнением запроса POST /reload к REST API или командой pangolin-manager-ctl reload.
При работе с YAML-файлами критически важно строго соблюдать отступы, так как их нарушение приведет к ошибкам парсинга или некорректной интерпретации иерархии данных.
Для применения изменений в локальной конфигурации необходимо выполнить одну из следующих команд:
-
через
pangolin-manager-ctl:pangolin-manager-ctl reload -
через REST API:
$ curl -s http://localhost:8008/reload -
средствами
systemctl:sudo systemctl reload pangolin-manager
Примеры
Изменение конфигурационных параметров
-
Выполните корректировку файла с помощью доступного текстового редактора.
Пример команды:
vim /etc/pangolin-manager/postgres.ymlК примеру, измените секцию
pg_hba.host replication postgres 127.0.0.1/32 scram-sha-256 -
Далее в интерактивном режиме запустить перечитывание конфигурации кластера. Перечитывание конфигурации будет выполнено в течении 10 секунд.
$ reload+ Cluster: $CLUSTERNAME (<cluster_id>) -------+-----------+-----+-------------+-----+------------+-----+
| Member | Host | Role | State | TL | Receive LSN | Lag | Replay LSN | Lag |
+-------------+----------------+--------------+-----------+-----+-------------+-----+------------+-----+
| srv1 | 127.0.0.1:5432 | Leader | running | 11 | | | | |
| srv2 | 127.0.0.1:5433 | Sync Standby | running | 11 | 0/C000000 | 0 | 0/C000000 | 0 |
+-------------+----------------+--------------+-----------+-----+-------------+-----+------------+-----+
Are you sure you want to reload members srv-1, srv-2? [y/N]: y
Reload request received for member srv-1 and will be processed within 10 seconds
Reload request received for member srv-2 and will be processed within 10 seconds
Команда reload является алиасом команды pangolin-manager-ctl reload:
[postgres@srv1 ~]$ alias reload
alias reload='pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml reload $CLUSTERNAME'
Справочник конфигурационных параметров
Глобальные параметры
Параметр | Тип данных | Описание |
|---|---|---|
|
| Имя хоста. Должно быть уникальным для кластера |
|
| Путь внутри хранилища конфигурации, где Pangolin Manager будет хранить информацию о кластере. Значение по умолчанию: |
|
| Имя кластера |
|
| Размер пула потоков, используемого Patroni для выполнения асинхронных задач и связи через REST API с другими участниками во время гонки лидеров или проверок отказоустойчивости. Минимальное значение: |
|
| Размер стека для потоков, запускаемых Patroni. Значение должно быть выровнено по 64 КБайт. Минимальное значение: |
|
| Управление активацией устаревших алгоритмов через подгрузку провайдера Legacy в OpenSSL 3.0.0+ (аналог Engine API в OpenSSL 1.+). Необходимо для обеспечения обратной совместимости с компонентами, использующими OpenSSL 1.+ |
Параметры журнала
Секция log: в конфигурационном файле:
Параметр | Тип данных | Описание |
|---|---|---|
|
| Тип форматирования логов |
|
| Уровень логирования. Значение по умолчанию: |
|
| Уровень трассировки стека вызовов. Значение по умолчанию: |
|
| Формат логов. Значение по умолчанию: |
|
| Формат даты и времени |
|
| Максимальный размер внутренней очереди журнала. Значение по умолчанию: |
|
| Назначение для вывода журнала. Возможные значения: |
|
| Шаблон названия журнала приложения. Значение по умолчанию — |
|
| Каталог для записи журналов приложений. Каталог должен существовать и быть доступным для записи пользователем, выполняющим Pangolin Manager |
|
| Количество журналов приложений, которые будут сохранены после ротации. Для активации ротации журнала необходимо задать как этот параметр, так и |
|
| Размер файла журнала (в байтах), который вызывает сворачивание журнала |
|
| Уровень регистрации для каждого модуля Python. Пример: |
|
| Статические поля, добавляемые в каждую запись журнала |
|
| Права доступа к файлу лога. Значение по умолчанию: |
|
| Минимальный размер свободного места (в Кбайтах) в системе для логирования, при достижении которого происходит переключение потока логирования в системный журнал. При установке |
Параметры аудита
Секция audit: в конфигурационном файле:
Параметр | Тип данных | Описание |
|---|---|---|
|
| Включить/выключить аудит событий безопасности |
|
| Путь к каталогу для файлов аудита. В случае если указанная директория не существует, Pangolin Manager попытается ее создать (права на директорию |
|
| Имя файла аудита. Значение по умолчанию: |
|
| Максимальное время использования отдельного лог-файла, после которого будет создан новый файл. Формат: |
|
| Максимальный размер отдельного лог-файла (в байтах), после достижения которого будет создан новый файл журнала. Формат: |
|
| Уровень логирования. Возможные значения: |
|
| Права доступа к файлу аудита. Значение по умолчанию: |
Параметры etcd
Если необходимо, чтобы Pangolin Manager работал с кластером etcd через протокол версии 3, нужно использовать секциюetcd3 в файле конфигурации. Все параметры конфигурации такие же, как и для etcd.
Ключ, созданный с использованием протокола версии 2, не виден при использовании протокола версии 3 и наоборот, поэтому невозможно переключиться с etcd на etcd3 просто обновив конфигурационный файл.
Большинство параметров являются необязательными, но необходимо указать один из host, hosts, url, proxy или srv. Параметры секции etcd: / etcd3::
Параметр | Тип данных | Описание |
|---|---|---|
|
| Имя хоста и порт для конечной точки etcd |
|
| Список конечных точек etcd в формате |
|
| Если установлено в |
|
| URL для etcd |
|
| Прокси-URL для etcd. Если подключаетесь к etcd с использованием прокси, используйте этот параметр вместо параметра |
|
| Домен для поиска записей SRV для автоматического обнаружения кластеров |
|
| Настраивает суффикс имени SRV, который запрашивается во время обнаружения. Используйте этот флаг для различения нескольких кластеров etcd под одним и тем же доменом. Работает только в сочетании с |
|
|
|
|
| Имя пользователя для аутентификации etcd |
|
| Пароль для аутентификации etcd |
|
| Сертификат центра сертификации. Если он присутствует, это позволит выполнить проверку подлинности |
|
| Файл с сертификатом клиента |
|
| Файл с ключом клиента. Может быть пустым, если ключ является частью |
Параметры СУБД
Параметры секции postgresql::
Параметр | Тип данных | Описание |
|---|---|---|
|
| Имя для суперпользователя, используемое Pangolin Manager для подключения к СУБД |
|
| Пароль для суперпользователя. Все пароли в конфигурации могут быть записаны как есть, открытым текстом, засекречены утилитой |
|
| Режим согласования TLS с сервером. Режимом по умолчанию является |
|
| Расположение секретного ключа, используемого с сертификатом клиента |
|
| Пароль для секретного ключа, указанного в |
|
| Расположение сертификата клиента |
|
| Расположение файла с сертификатами удостоверяющих центров (УЦ) для проверки сертификата сервера |
|
| Расположение файла со списком отозванных сертификатов |
|
| Расположение каталога с файлами, содержащими список отозванных сертификатов |
|
| Определяет, будет ли и с каким приоритетом устанавливаться безопасное соединение GSS TCP/IP с сервером |
|
| Контролирует использование клиентом привязки каналов |
|
| Имя пользователя для репликации. Пользователь будет создан во время инициализации. Реплики будут использовать этого пользователя для доступа к источнику репликации через потоковую репликацию |
|
| Пароль для репликации. Пользователь будет создан во время инициализации |
|
| Режим согласования TLS с сервером. Режимом по умолчанию является |
|
| Расположение секретного ключа, используемого с сертификатом клиента |
|
| Пароль для секретного ключа, указанного в |
|
| Расположение клиентского сертификата |
|
| Расположение файла с сертификатами удостоверяющих центров (УЦ) для проверки сертификата сервера |
|
| Расположение файла со списком отозванных сертификатов |
|
| Расположение каталога с файлами, содержащими список отозванных сертификатов |
|
| Определяет, будет ли и с каким приоритетом устанавливаться безопасное соединение GSS TCP/IP с сервером |
|
| Контролирует использование клиентом привязки каналов |
|
| Имя пользователя для |
|
| Пароль пользователя для |
|
| Режим согласования TLS с сервером. Режимом по умолчанию является |
|
| Расположение секретного ключа, используемого с сертификатом клиента |
|
| Пароль для секретного ключа, указанного в |
|
| Расположение сертификата клиента |
|
| Расположение файла с сертификатами удостоверяющих центров (УЦ) для проверки сертификата сервера |
|
| Расположение файла со списком отозванных сертификатов |
|
| Расположение каталога с файлами, содержащими список отозванных сертификатов |
|
| Определяет, будет ли установлена безопасная связь GSS TCP/IP с сервером и с каким приоритетом |
|
| Контролирует использование клиентом привязки каналов |
|
| Скрипт, выполняемый при перезагрузке конфигурации |
|
| Скрипт, выполняемый при перезапуске СУБД (без изменения роли) |
|
| Скрипт, выполняемый при повышении или понижении роли СУБД |
|
| Скрипт, выполняемый при запуске СУБД |
|
| Скрипт, выполняемый при остановке СУБД |
|
| IP-адрес и порт, через который СУБД доступна с других узлов и приложений |
|
| IP-адрес + порт, через который пул соединений (например, Pangolin Pooler) доступен. Значение записывается в членский ключ в DCS как |
|
| Упорядоченный список методов создания для преобразования узла в новую реплику. |
|
| Расположение каталога данных СУБД |
|
| Расположение каталога конфигурации СУБД, по умолчанию — каталог данных |
|
| Путь к двоичным файлам СУБД ( |
|
| Пользовательское имя для двоичного файла |
|
| Пользовательское имя для двоичного файла |
|
| Пользовательское имя для двоичного файла |
|
| Пользовательское имя для двоичного файла |
|
| Пользовательское имя для двоичного файла |
|
| Пользовательское имя для двоичного файла |
|
| Пользовательское имя для двоичного файла |
|
| IP-адрес и порт, к которому подключается СУБД. Допускаются несколько адресов, разделенных запятыми |
|
| Предпочитать использование юникс-сокетов для подключения к кластеру. Значение по умолчанию |
|
| Предпочитать использование юникс-сокетов для подключения пользователя репликации к кластеру. Значение по умолчанию |
|
| Путь к файлу паролей |
|
| Дополнительные параметры конфигурации, записываемые в |
|
| Путь к пользовательскому файлу |
|
| Путь до исполняемых файлов клиентской части ( |
|
| Список настроек конфигурации для СУБД |
|
| Список строк для генерации |
|
| Список строк для генерации |
|
| Массив строк конфигурации |
|
| Время ожидания pg_ctl при выполнении |
|
| Попытка использовать |
|
| При включении Pangolin Manager удалит каталог данных СУБД и воссоздаст реплику при неудаче |
|
| Pangolin Manager удаляет каталог данных СУБД и воссоздает реплику при расхождении временных шкал. Значение по умолчанию: |
|
| Для каждого метода создания реплик, отличного от базового резервного копирования, добавляется раздел конфигурации с тем же именем |
|
| Скрипт защиты от сбоев, выполняемый во время отказа после получения блокировки лидера, но до продвижения реплики |
|
| Скрипт, выполняемый непосредственно перед остановкой СУБД. Выполняется синхронно, блокируя завершение работы |
Все пароли в конфигурационном файле могут быть:
- записаны в открытом виде,
- зашифрованы утилитой pg_auth_password,
- не указаны вовсе, в таком случае будет проверяться хранилище pg_auth_config.
Параметры тегов
Параметры секции tags::
Параметр | Тип данных | Описание |
|---|---|---|
|
| Если |
|
| Если |
|
| IP-адрес/имя хоста другой реплики. Используется для поддержки каскадной репликации |
|
| Если |
|
| Контролирует, разрешено ли этому узлу участвовать в гонке лидеров и стать лидером. Значение по умолчанию: |
|
| Целое число, управляющее приоритетом узла во время отказа. Узлы с более высоким приоритетом предпочтительнее. Если |
Пользовательские теги |
| Можно добавить собственные теги (например, |
Укажите только один из параметровnofailover или failover_priority. Указание nofailover: true аналогично указанию failover_priority: 0, а указание nofailover: false присвоит узлу приоритет 1.
Параметры REST API
Параметры секции restapi::
Параметр | Тип данных | Описание |
|---|---|---|
|
| IP-адрес (или имя хоста) и порт для доступа к REST API Pangolin Manager. Все члены кластера должны иметь возможность подключаться к этому адресу |
|
| IP-адрес (или имя хоста) и порт, к которому Pangolin Manager будет прослушивать запросы для REST API |
|
| Имя пользователя для базовой аутентификации для защиты небезопасных конечных точек REST API |
|
| Пароль для базовой аутентификации для защиты небезопасных конечных точек REST API |
|
| Файл с сертификатом в формате PEM. Если не указан, сервер API будет работать без SSL |
|
| Файл с секретным ключом в формате PEM |
|
| Пароль для расшифровки |
|
| Файл с пакетом |
|
| Разрешенные наборы шифров (например, |
|
| Проверка клиентских сертификатов. Возможные значения: |
|
| Набор хостов, которым разрешено вызывать небезопасные конечные точки REST API. Один элемент может быть именем хоста, IP-адресом или сетевым адресом с использованием нотации CIDR. По умолчанию |
|
| Если |
|
| Заголовки HTTP для передачи дополнительной информации вместе с ответом HTTP |
|
| Заголовки HTTPS для передачи дополнительной информации вместе с ответом HTTP при включении TLS |
|
| Размер очереди запросов для сокета TCP, используемого REST API. Значение по умолчанию: |
|
| Размер пула потоков REST API. Минимальное значение: |
|
| Режим отображения токенов сервера. Возможные значения: |
|
| Путь к PKCS#12 файлу |
|
| Отключить TLS версии 1.3 |
|
| Каталог CA сертификатов |
|
| Путь к CRL файлу |
|
| Каталог CRL файлов |
Адрес для доступа к REST API (connect_address) должен быть доступен со всех узлов данного кластера Pangolin Manager. Внутренне Pangolin Manager использует его во время гонки лидеров для поиска узлов с минимальной задержкой репликации.
Если включить проверку подлинности клиентских сертификатов (verify_client установлен на required), необходимо предоставить действительные клиентские сертификаты в ctl:certfile, ctl:keyfile, ctl:keyfile_password.
Параметры CTL
Параметры секции ctl::
Параметр | Тип данных | Описание |
|---|---|---|
|
| Имя пользователя для базовой аутентификации при доступе к защищенным конечным точкам REST API |
|
| Пароль для базовой аутентификации при доступе к защищенным конечным точкам REST API |
|
| Разрешить соединения с REST API без проверки сертификатов SSL |
|
| Файл с CA_BUNDLE или каталог с сертификатами доверенных ЦС для проверки сертификатов SSL REST API |
|
| Файл с клиентским сертификатом в формате PEM |
|
| Файл с секретным ключом клиента в формате PEM |
|
| Пароль для расшифровки клиентского файла ключа |
Параметры Pangolin DCS
За параметры компонента Pangolin DCS отвечает секция pangolin_dcs:.
Обязательные параметры
Параметр | Описание |
|---|---|
| Адрес текущего узла в формате |
| Список адресов остальных узлов в формате |
| Путь к директории для хранения журнала операций и текущих значений ключей |
Необязательные параметры
Параметр | Описание | Значение по умолчанию |
|---|---|---|
| Максимальный размер в байтах для файла с журналом операций | 10 Мбайт |
| Время тайм-аута (в секундах), по истечении которого операция записи/чтения журнала считается неуспешной | Равен параметру |
| Число максимально содержащихся в памяти последних записей журнала |
|
| Выполнение перечитывания журнала операций при перезапуске службы |
|
| Путь к директории для хранения дампа | Берется из параметра |
| Интервал создания дампа, в секундах |
|
| Время тайм-аута (в секундах), по истечении которого операция записи/чтения дампа считается неуспешной | Равен параметру |
| Путь к файлу с логом от |
|
| Максимальный размер в байтах для файла с логом | 20 Мбайт |
| Интервал ротации файла с логом |
|
| Частота, с которой мастер DCS-кластера сообщает остальным узлам о своей доступности (в миллисекундах) | 100 миллисекунд |
| Таймаут ожидания heartbeat от мастера перед инициацией узлом нового голосования (в миллисекундах) | 400 миллисекунд |
| Серверный сертификат Pangolin DCS для установления SSL-подключений | Отсутствует |
| Закрытый ключ Pangolin DCS, соответствующий серверному сертификату | Отсутствует |
| Пароль для рассекречивания закрытого ключа (если защищен паролем) | Отсутствует |
| Корневой сертификат УЦ (CA) | Отсутствует |
| Путь к директории, содержащей файлы с доверенными сертификатами УЦ (CA) | Отсутствует |
| Путь к файлу со списком отозванных сертификатов (CRL) | Отсутствует |
| Путь к директории, содержащей файлы со списком отозванных сертификатов (CRL) | Отсутствует |
| Путь к файлу в формате JSON, который содержит данные для запроса сертификата из SecMan или парольную фразу для доступа к контейнеру PKCS#12 и путь к контейнеру | Отсутствует |
| Определяет, требуется ли запрашивать и проверять клиентский сертификат DCS | Возможные значения:
|
| Определяет, требуется ли запрашивать и проверять серверный сертификат DCS |
|
| На серверах с установленным OpenSSL 1.1.0 и выше позволяет переключиться с протокола TLSv1.3 на TLSv1.2 |
|
Дополнительные параметры
Ядро Patroni также предоставляет следующие секции с параметрами для интеграции с внешними компонентами. Подробнее об этом описано в исходной документации компонента Patroni: