Ручная пошаговая установка кластерной конфигурации (cluster)
При переходе к данному разделу предполагается, что изучена информация общего блока ручной установки.
Данный раздел рассматривает процесс ручной пошаговой установки экземпляра СУБД Pangolin и компонентов в составе продукта в кластерной конфигурации. Для полноценной установки потребуется наличие трех узлов: мастер, реплика и арбитр.
Для кластерной конфигураций все действия необходимо выполнить поочередно на каждом узле экземпляра СУБД. На каждом узле шаги инструкции выполняются полностью (установка экземпляра СУБД и компонентов), если явно не указано иное. Для узла арбитра выполняются только те этапы, которые помечены как применимые для данного узла.
Все приведенные команды и примеры заполненных конфигураций являются примерами. Их необходимо отредактировать в соответствии с требуемыми параметрами и конфигурациями.
Обозначения
В инструкции используются переменные для динамической настройки. Перед выполнением команд скорректируйте значение относительно реализуемого сценария установки:
{OS}- операционная система;{version_OS}- версия операционной системы;{path}- полный путь к директорииdistributiveили путь к дистрибутиву;{product_version}- версия продукта (текущая версия: 7.3.2);{short_version}- короткая версия продукта (текущая: 7.3);{base_version}- основная версия продукта (текущая: 7);{version_component}- версия компонента.
Подготовка к ручной установке
В случае использования сертифицированной ОС Astra Linux «Смоленск» обратитесь к разделу особенностей работы с данной ОС.
-
Проверьте что порт для работы СУБД (по умолчанию
5432) не заблокирован на уровне сети или виртуальной машины. -
Проверьте занятость
uid/gid. Для установки экземпляра СУБД Pangolin по умолчанию используется:uid/gid: 26дляpostgres,uid/gid: 126дляkmadmin_pgиgid: 226для группыpangolin_users. Пример команды проверки:getent passwd | grep 26getent passwd | grep 126getent group | grep 226В случае занятости данных
uid/gidпереопределите переменные через изменение значений. Пример измененияuid/gidдля пользователяpostgres:sudo POSTGRES_USER_GUID=<unused_uid> POSTGRES_GROUP_GUID=<unused_gid> dnf install pangolin-dbms-7ВажноИзменение актуально для ОС Astra Linux, в связи с занятостью
gid: 126группойtapeи для ОС Альт СП 10 версии 2 (занятостьgid=26):error: group with gid=126 already existsСписок переменных окружения, использующих
uid/gid:POSTGRES_USER_GUID # изменение uid пользователя postgres (по умолчанию 26)POSTGRES_GROUP_GUID # изменение gid группы postgres (по умолчанию 26)KMADMIN_PG_USER_GUID # изменение uid пользователя kmadmin_pg (по умолчанию 126)KMADMIN_PG_GROUP_GUID # изменение gid группы kmadmin_pg (по умолчанию 126)PANGOLIN_USERS_GROUP_GUID # изменение gid группы pangolin_users (по умолчанию 226) -
Проверьте, что виртуальные машины, которые будут использоваться для установки СУБД, находятся в области видимости. Воспользуйтесь командой
ping.СведенияВыполните данный пункт в случае установки кластерной конфигурации (cluster).
Замените переменные на значения DNS/IP-адресов хостов и выполните команды с мастера:
ping <dns/ip-address replica>ping <dns/ip-address arbiter> -
Убедитесь, что дистрибутив распакован с использованием скрипта
unpacker-distrib.sh(с ключом--not-pack) и каталог дистрибутива присутствует на всех узлах кластера.
Использование мета-пакетов может упростить дальнейшие шаги установки rpm/deb-пакетов. Особенно в случае, когда требуется установка нескольких компонентов.
Установка экземпляра СУБД Pangolin
Данный раздел описывает сценарий процесса ручной установки на операционные системы (ОС), такие как:
- Platform V SberLinux OS Server;
- РЕД ОС;
- CentOS;
- Astra Linux / Astra Linux релиз «Смоленск»;
- Альт СП / Альт Сервер.
Для уточнения поддерживаемых версий указанных ОС обратитесь к списку в разделе «Системные требования».
Для развертывания СУБД Pangolin на окружении 1С выполните шаги с пометкой «для окружения 1С», вместо «обычное окружение».
Порядок установки
Шаги процесса ручной установки:
- Установка rpm/deb-пакетов серверной и клиентской части СУБД.
- Создание системных директорий необходимых для работы СУБД.
- Выполнение импорта лицензии.
- Подготовка переменных окружения.
- Инициализация кластера СУБД.
- Конфигурирование СУБД Pangolin.
- Запуск СУБД.
- Проверка результата.
- Ознакомление с дальнейшими шагами.
Шаг 1. Установка rpm/deb-пакетов
Установите пакеты серверной и клиентской части СУБД:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/pangolin-dbms-{base_version}-7.3.2-{OS}.x86_64.rpm
sudo dnf install /{path}/pangolin-dbms-{base_version}-client-7.3.2-{OS}.x86_64.rpm
sudo apt install /{path}/pangolin-dbms-{base_version}-7.3.2_amd64.deb
sudo apt install /{path}/pangolin-dbms-{base_version}-client_7.3.2_amd64.deb
sudo apt-get install /{path}/pangolin-dbms-{base_version}-7.3.2-altlinux{version_OS}.x86_64.rpm
sudo apt-get install /{path}/pangolin-dbms-{base_version}-client-7.3.2-altlinux{version_OS}.x86_64.rpm
Пример заполненной команды:
sudo dnf -y install ~/distributive/pangolin-dbms-7-7.3.2-sberlinux9.x86_64.rpm
sudo dnf -y install ~/distributive/pangolin-dbms-7-client-7.3.2-sberlinux9.x86_64.rpm
В случае использования настроенного локального репозитория используйте упрощенные команды для установки пакетов. Например, sudo dnf -y install pangolin-dbms-{short_version}. Пакетный менеджер самостоятельно найдет нужный пакет в репозитории и предложит его к установке.
Шаг 2. Создание системных директорий
Создайте директории /pgdata, /pangolinlogs:
sudo mkdir -p /pgdata /pangolinlogs/pangolin-dbms
sudo chown -R postgres:postgres /pgdata /pangolinlogs
sudo chmod -R 700 /pgdata /pangolinlogs
Шаг 3. Импорт лицензии
Для целей соблюдения лицензионных условий продукта применяется файл, содержащий параметры лицензии и подписанный цифровой подписью с использованием приватного ключа.
Лицензия поставляется вместе с дистрибутивом в личном кабинете клиента. В случае ее отсутствия, обратитесь к менеджеру.
Добавьте файл с лицензией license.json в папку /opt/pangolin-license/ и назначьте необходимые права:
sudo mkdir -p /opt/pangolin-license
sudo mv /{path}/license.json /opt/pangolin-license
sudo chown -R postgres:pangolin_users /opt/pangolin-license
sudo chmod 770 /opt/pangolin-license
sudo chmod 440 /opt/pangolin-license/license.json
Шаг 4. Подготовка переменных окружения
Из под пользователя postgres измените файл .bash_profile (в случае ОС Astra Linux - .profile) при помощи текстового редактора, добавив следующие строки с переменными окружения (замените переменные в скобках { } на актуальные значения). После перечитайте переменные окружения для .bash_profile/.profile:
sudo -iu postgres
umask 022
export PG_PLUGINS_PATH=/opt/pangolin-dbms-server-7/lib
export PG_LICENSE_PATH=/opt/pangolin-license
export PGHOME=/opt/pangolin-dbms-server-7
export PGHOME_CLIENT=/opt/pangolin-dbms-client-7
export PGDATABASE=postgres
export PGUSER=postgres
export PGHOST=127.0.0.1
export PGPORT=5432
export PGCLIENTENCODING=UTF8
export PGDATA=/pgdata/07/data
export MANPATH=$MANPATH:$PGHOME/share/man
. ~/.bash_profile
exit
Шаг 5. Инициализация кластера СУБД
Выполните данный шаг только на узле мастер.
Инициализируйте новый кластер СУБД Pangolin:
-
обычное окружение:
sudo -iu postgresinitdb --locale en_US.UTF-8 -k -D /pgdata/07/data/exit -
окружение с 1С:
sudo -iu postgresinitdb --locale ru_RU.UTF-8 -k -D /pgdata/07/data/exitДля окружения с 1С крайне важно указать локаль, в будущем она будет использоваться для инициализации БД, которая создает 1С.
Шаг 6. Конфигурирование СУБД Pangolin
-
Отредактируйте конфигурационный файл
/pgdata/0{base_version}/data/postgresql.conf:-
Рекомендуется выполнять конфигурирование СУБД при помощи вспомогательного инструмента Pangolin Tuner. Описание утилиты и шаги по запуску описаны в подразделе «Установка компонента Pangolin Tuner».
-
С помощью текстового редактора под пользователем
postgresизмените значение конфигурационного параметраenabled_extra_auth_methodsс указанием методов аутентификации (эти же методы нужно будет указать вpg_hba.confв следующем пункте) к использованию:-
обычное окружение:
enabled_extra_auth_methods = 'peer, trust' -
окружение с 1С:
enabled_sec_admin_extra_auth_methods = 'md5,trust,peer,cert'enabled_extra_auth_methods = 'md5,trust,peer,cert'
ПримечаниеПараметр
enabled_sec_admin_extra_auth_methodsотвечает за список дополнительно разрешенных к использованию методов аутентификации для ролей администраторов безопасности, тогда как вenabled_extra_auth_methodsпередается список для всех остальных ролей. -
-
С помощью текстового редактора под пользователем
postgresзадайте для параметраlisten_addressesзначение0.0.0.0, чтобы разрешить подключение к СУБД по IP-адресу сервера Pangolin.listen_addresses = '0.0.0.0' -
Аналогично измените параметр
log_directory, который должен быть равен пути до каталогаpangolinlogs, созданного на шаге 2.log_directory = /pangolinlogs/pangolin-dbms
-
-
С помощью текстового редактора под пользователем
postgresизмените конфигурационный файл/pgdata/0{base_version}/data/pg_hba.conf(добавьте строки в конец файла):local all all peerhost all all 0.0.0.0/0 trust
Шаг 7. Запуск СУБД
Запустите экземпляр СУБД Pangolin:
sudo -iu postgres
pg_ctl -D /pgdata/07/data/ start
exit
Результат
После завершения процесса установки экземпляра СУБД рекомендуется провести чек-лист проверки корректности работы.
Установка компонентов продукта СУБД Pangolin
Установка компонента Pangolin Tuner
Pangolin Tuner — это инструмент для работы с конфигурацией Postgres-like СУБД, предназначенный для оптимизации производительности баз данных в различных сценариях использования. Инструмент автоматически определяет оптимальные настройки в зависимости от профиля рабочей нагрузки / профиля использования. Это позволяет значительно сократить время настройки и минимизировать риски, связанные с неправильной конфигурацией. Подробнее смотрите в отдельном разделе про утилиту Pangolin Tuner.
Порядок установки
Шаги процесса ручной установки компонента:
- Установка rpm/deb-пакета утилиты.
- Описание процесса оптимизации конфигурационного файла СУБД.
Шаг 1. Установка rpm/deb-пакета
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/utilities/pangolin-tuner-{version_component}-{OS}.x86_64.rpm
sudo apt install /{path}/utilities/pangolin-tuner-{version_component}_amd64.deb
sudo apt-get install /{path}/utilities/pangolin-tuner-{version_component}-altlinux{version_OS}.x86_64.rpm
Пример заполненной команды:
sudo dnf -y install ~/distributive/utilities/pangolin-tuner-1.2.0-sberlinux9.x86_64.rpm
Шаг 2. Оптимизация конфигурационного файла СУБД
-
Выберите профиль рабочей нагрузки, соответствующий конкретным потребностям для использования оптимальных значений параметров.
-
Запустите утилиту Pangolin Tuner с необходимыми настройками и сконфигурируйте файл под нужный профиль:
-
Профиль OLTP:
sudo -iu postgres/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/07/data/postgresql.conf --profile oltp --output-file /pgdata/07/data/postgresql.conf.oltpexit -
Профиль OLAP:
sudo -iu postgres/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/07/data/postgresql.conf --profile olap --output-file /pgdata/07/data/postgresql.conf.olapexit -
Профиль 1C (для окружения 1С):
sudo -iu postgres/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/07/data/postgresql.conf --profile 1c --output-file /pgdata/07/data/postgresql.conf.1cexit
-
-
Примените созданный конфигурационный файл:
sudo -iu postgresmv /pgdata/07/data/postgresql.conf.oltp /pgdata/07/data/postgresql.confchmod 600 /pgdata/07/data/postgresql.confexitСведенияPangolin Tuner не конфигурирует индивидуальные настройки, связанные с количеством подключений либо с активацией расширений. Данные параметры необходимо настроить самостоятельно.
Описание параметров, по которым утилита Pangolin Tuner формирует значение, расположено в разделе «Тюнинг параметров» документа «Руководство администратора».
Установка компонента Pangolin Pooler
Компонент Pangolin Pooler – это доработанная версия PgBouncer, а именно программа, управляющая пулом соединений Pangolin DBMS. Любое клиентское приложение может подключиться к Pangolin Pooler, как если бы это был непосредственно сервер DBMS, и Pangolin Pooler создаст подключение к реальному серверу, либо задействует одно из ранее установленных подключений. Предназначение Pangolin Pooler — минимизировать издержки, связанные с установлением новых подключений к Pangolin DBMS.
Подробное описание компонента представлено в разделе «Администрирование Pangolin Pooler» документа «Руководство администратора».
Порядок установки
Шаги процесса ручной установки компонента:
- Установка rpm/deb-пакета компонента Pangolin Pooler.
- Создание системных директорий, необходимых для работы компонента.
- Конфигурирование Pangolin Pooler.
- Настройка ротации журналов.
- Запуск компонента.
Шаг 1. Установка rpm/deb-пакета
Выполните установку компонента Pangolin Pooler под пользователем root:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/pangolin-pooler-{version_component}-{OS}.x86_64.rpm
sudo apt install /{path}/pangolin-pooler-{version_component}-{OS}_amd64.deb
sudo apt-get install /{path}/pangolin-pooler-{version_component}-{OS}.x86_64.rpm
Пример заполненной команды:
sudo dnf install -y ~/distributive/pangolin-pooler-1.6.1-sberlinux9.x86_64.rpm
Шаг 2. Создание системных директорий
Создайте директории /pangolinlogs/pangolin-pooler:
sudo mkdir -p /pangolinlogs/pangolin-pooler
sudo chown -R postgres:postgres /pangolinlogs
sudo chmod -R 700 /pangolinlogs
Шаг 3. Конфигурирование Pangolin Pooler
-
С помощью текстового редактора под пользователем
postgresотредактируйте файл/etc/pangolin-pooler/pangolin-pooler.ini, заполнив поля значениями, соответствующими данным вашего стенда:Пример файла pangolin-pooler.ini с минимальными настройками
[databases]* = host=<ip-address> port=<port>[pgbouncer]listen_port = 6544listen_addr = *auth_type = scram-sha-256auth_file = /etc/pangolin-pooler/userlist.txtlogfile = /pangolinlogs/pangolin-pooler/pangolin-pooler.logpidfile = /var/run/pangolin-pooler/pangolin-pooler.pidadmin_users = pgbouncer -
С помощью текстового редактора под пользователем
postgresизмените файл/etc/pangolin-pooler/userlist.txt, заполнив поля значениями, соответствующими данным вашего стенда:"<user>" "<password>"Пример файла
userlist.txt:"user" "qwerty"Или в засекреченном виде:
"user" "md5175c641eaed0b6c05ae8444b73d789f0"
Шаг 4. Настройка ротации журналов
-
С помощью текстового редактора под пользователем
rootизмените файл/opt/pangolin-pooler/share/doc/logrotate/pangolin-pooler, заполнив поля значениями, соответствующими данным вашего стенда:Пример файла
pangolin-pooler:/pangolinlogs/pangolin-pooler/pangolin-pooler.log {rotate 10su postgres postgresmissingoksharedscriptsnotifemptycompressdailycreate 0600 postgres postgrespostrotate/bin/kill -HUP `cat /var/run/pangolin-pooler/pangolin-pooler.pid 2> /dev/null` 2>/dev/null ||trueendscript} -
Перенесите готовый файл в системный каталог ротации логов и назначьте права:
sudo cp /opt/pangolin-pooler/share/doc/logrotate/pangolin-pooler /etc/logrotate.d/pangolin-poolersudo chown postgres:postgres /etc/logrotate.d/pangolin-poolersudo chmod 0644 /etc/logrotate.d/pangolin-pooler
Шаг 5. Запуск Pangolin Pooler
-
Произведите запуск службы Pangolin Pooler:
sudo systemctl restart pangolin-pooler -
Проверьте корректность запуска и состояние сервиса. Пример статуса:
sudo systemctl status pangolin-poolerПример успешного старта сервиса pangolin-pooler
● pangolin-pooler.service - Pangolin Pooler connection pooling for PostgreSQLLoaded: loaded (/usr/lib/systemd/system/pangolin-pooler.service; disabled; preset: disabled)Active: active (running) since Mon 2026-02-02 18:58:35 MSK; 4s agoProcess: 2292612 ExecStartPre=/bin/mkdir -p /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)Process: 2292613 ExecStartPre=/bin/chown -R postgres:postgres /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)Process: 2292614 ExecStart=/opt/pangolin-pooler/bin/pangolin-pooler -d ${POOLERCONF} (code=exited, status=0/SUCCESS)Process: 2292617 ExecStartPost=/bin/sleep 1 (code=exited, status=0/SUCCESS)Main PID: 2292616 (pangolin-pooler)Tasks: 2 (limit: 50508)Memory: 3.8MCPU: 18msCGroup: /system.slice/pangolin-pooler.service└─2292616 /opt/pangolin-pooler/bin/pangolin-pooler -d /etc/pangolin-pooler/pangolin-pooler.iniFeb 02 18:58:34 srv-123 systemd[1]: Starting Pangolin Pooler connection pooling for PostgreSQL...Feb 02 18:58:35 srv-123 systemd[1]: Started Pangolin Pooler connection pooling for PostgreSQL...
Установка компонента Pangolin Manager
Компонент Pangolin Manager – это доработанная версия Patroni, python-приложения для создания и управления Pangolin DBMS-кластерами, работающими на основе потоковой репликации.
Pangolin Manager - это оркестратор кластера Pangolin, который преобразует систему из двух и более узлов Pangolin в высокодоступный кластер с поддержкой контролируемого и аварийного переключения. Также он автоматизирует добавление, обновление и удаление реплик, и реализует одновременное изменение конфигурации Pangolin на всех узлах кластера.
Далее представлены шаги для установки Pangolin Manager. Предполагается, что выбран тип конфигурации cluster, так как данный компонент используется в кластерной конфигурации.
Все шаги процесса установки являются обязательными, кроме шагов с указанием признака в заголовке: опциональный.
Порядок установки
Шаги процесса ручной установки компонента:
- Установка rpm/deb-пакетов компонента и его зависимости.
- Создание пользователя для репликации.
- Добавление пользователя в засекреченного хранилища паролей (опциональный шаг).
- Создание системных директорий, необходимых для работы Pangolin Manager.
- Выбор распределенного хранилища конфигурации.
- Конфигурирование Pangolin Manager.
- Настройка перезагрузки компонентов (опциональный шаг).
- Запуск Pangolin Manager.
Шаг 1. Установка rpm/deb-пакетов
Выполните данный шаг также на арбитре, если выбран модуль Pangolin DCS, в качестве распределенного хранилища конфигурации.
-
Установите пакет
pangolin-manager-venv, который является обязательной зависимостью для пакетаpangolin-manager. Предварительно распакуйте архив3rdparty.tar.gz:tar -xzf /{path}/3rdparty/3rdparty.tar.gz -C /{path}/3rdparty/- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/3rdparty/pangolin-manager-venv/pangolin-manager-venv-{version_component}-{OS}.x86_64.rpmsudo apt install /{path}/3rdparty/pangolin-manager-venv/pangolin-manager-venv-{version_component}_amd64.debsudo apt-get install /{path}/3rdparty/pangolin-manager-venv/pangolin-manager-venv-{version_component}-{OS}.x86_64.rpmПример заполненной команды:
tar -xzf ~/distributive/3rdparty/3rdparty.tar.gz -C ~/distributive/3rdparty/sudo dnf install -y ~/distributive/3rdparty/pangolin-manager-venv/pangolin-manager-venv-3.1.1-sberlinux9.x86_64.rpm -
Установите пакет
pangolin-manager:- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/pangolin-manager-{version_component}-{OS}.x86_64.rpmsudo apt install /{path}/pangolin-manager-{version_component}_amd64.debsudo apt-get install /{path}/pangolin-manager-{version_component}-{OS}.x86_64.rpmПример заполненной команды:
sudo dnf install -y ~/distributive/pangolin-manager-3.1.1-sberlinux9.x86_64.rpm
Шаг 2. Создание пользователя для репликации
-
Создайте пользователя для работы репликации в СУБД Pangolin с паролем согласно парольной политике только на мастере:
sudo -iu postgrespsql -c "CREATE USER patroni WITH ENCRYPTED PASSWORD '<sample_password>';"exit -
Отключите срок действия пароля и выставьте лимит подключений только на мастере:
sudo -iu postgrespsql -c "ALTER ROLE patroni LOGIN SUPERUSER REPLICATION VALID UNTIL 'infinity' CONNECTION LIMIT 5;"exit
Шаг 3. Добавление пользователя в засекреченного хранилища паролей (опционально)
Выполните данный шаг при использовании функциональности засекречивания паролей.
Добавьте пользователя СУБД, созданного на предыдущем шаге, в хранилище на мастере и реплике:
sudo -iu postgres
/opt/pangolin-dbms-server/bin/pg_auth_config add -h $HOSTNAME -p 5432 -U patroni -d postgres
/opt/pangolin-dbms-server/bin/pg_auth_config add -h $HOSTNAME -p 5432 -U patroni -d replication
/opt/pangolin-dbms-server/bin/pg_auth_config add -h localhost -p 5432 -U patroni -d postgres
/opt/pangolin-dbms-server/bin/pg_auth_config add -h localhost -p 5432 -U patroni -d replication
exit
Шаг 4. Создание системных директорий
Выполните данный шаг также на арбитре, если выбран модуль Pangolin DCS, в качестве распределенного хранилища конфигурации.
Создайте директорию /pangolinlogs/pangolin-manager на всех узлах кластера:
sudo mkdir -p /pangolinlogs/pangolin-manager
sudo chown -R postgres:postgres /pangolinlogs
sudo chmod -R 700 /pangolinlogs
Шаг 5. Выбор распределенного хранилища конфигурации
Для установки распределенного хранилища конфигурации выберите одну из инструкций:
Шаг 6. Конфигурирование Pangolin Manager
Выполните данный шаг также на арбитре, если выбран модуль Pangolin DCS, в качестве распределенного хранилища конфигурации.
При установке пакета pangolin-manager создается конфигурационный файл Pangolin Manager - /etc/pangolin-manager/postgres.yml, содержащий значения переменных по умолчанию.
Заполнение конфигурационного файла postgres.yml требуется на всех узлах экземпляра СУБД (мастере, реплике, арбитре).
-
С помощью текстового редактора под пользователем
postgresотредактируйте в конфигурационный файл Pangolin Manager/etc/pangolin-manager/postgres.ymlследующие параметры:postgresql:parameters– необходимо вручную из уже существующего/pgdata/0{base_version}/data/postgresql.confперенесите параметры СУБД;postgresql:pg_hba– необходимо вручную из уже существующего/pgdata/0{base_version}/data/pg_hba.confперенесите параметры СУБД;log:dir- необходимо указать путь до логов компонента Pangolin Manager (/pangolinlogs/pangolin-manager/);scope– необходимо указать имя кластера (например,cluster);name– необходимо указать имя текущего сервера (hostname);postgresql:listen- необходимо указать адрес подключения к СУБД Pangolin (0.0.0.0:<port>);postgresql:connect_address- необходимо указать адрес подключения к СУБД Pangolin (hostname:<port>);postgresql:bin_dir- необходимо указать путь до исполняемых файлов серверной части (/opt/pangolin-dbms-server/bin);postgresql:bin_dir_client- необходимо указать путь до исполняемых файлов клиентской части (/opt/pangolin-dbms-client/bin);postgresql:data_dir- необходимо указать путь до файлов данных СУБД (/pgdata/0{base_version}/data/);restapi:listen- необходимо указать адрес для доступа к REST API утилиты Pangolin Manager (0.0.0.0:8008);restapi:connect_address- необходимо указать адрес подключения к REST API утилиты Pangolin Manager (hostname:8008);restapi:authentication:username- необходимо указать имя пользователя для доступа к REST API утилиты Pangolin Manager (pangolinmanager), который создается на шаге 8;restapi:authentication:password- необходимо указать пароль пользователя для доступа к REST API утилиты Pangolin Manager;postgresql:authentication:replication:username- необходимо указать имя пользователя репликации для аутентификации (patroni), который создается на шаге 2;postgresql:authentication:replication:password- необходимо указать пароль пользователя репликации для аутентификации;postgresql:authentication:superuser:username- необходимо указать имя пользователя для аутентификации (patroni), который создается на шаге 2;postgresql:authentication:superuser:password- необходимо указать пароль пользователя для аутентификации;tags- секцию необходимо оставить без изменений;bootstrap:dcs- секцию необходимо оставить без изменений;pangolin_dcsилиetcd- секции заполняются на шаге настройки распределенного хранилища.
Пример заполненного файла
/etc/pangolin-manager/postgres.yml:scope: clustername: abc-0.11restapi:listen: 0.0.0.0:8008connect_address: abc-0.11:8008authentication:username: pangolinmanagerpassword: <sample_password>bootstrap:dcs:ttl: 135retry_timeout: 60loop_wait: 10maximum_lag_on_failover: 1048576synchronous_mode: truesynchronous_mode_strict: falsepostgresql:parameters:wal_log_hints: onwal_level: replicamax_wal_senders: 10max_replication_slots: 10log:dir: /pangolinlogs/pangolin-managerpostgresql:listen: 0.0.0.0:5432bin_dir: /opt/pangolin-dbms-server/binbin_dir_client: /opt/pangolin-dbms-client/binconnect_address: abc-0.11:5432data_dir: /pgdata/07/data/authentication:replication:username: patronipassword: <sample_password>superuser:username: patronipassword: <sample_password>parameters:port: 5432listen_addresses: 0.0.0.0pg_hba:- host all patroni 127.0.0.1/32 scram-sha-256- host all patroni <ip-address_master>/32 scram-sha-256- host all patroni <ip-address_replica>/32 scram-sha-256- host replication patroni 127.0.0.1/32 scram-sha-256- host replication patroni <ip-address_master>/32 scram-sha-256- host replication patroni <ip-address_replica>/32 scram-sha-256tags:nofailover: falsenoloadbalance: falseclonefrom: falsenosync: false -
Для репликации и корректной работы Pangolin Manager, c помощью текстового редактора под пользователем
postgresна мастере добавьте следующие строки в конец конфигурационного файла СУБД/pgdata/0{base_version}/data/pg_hba.confна мастере:host all patroni 127.0.0.1/32 scram-sha-256host all patroni <ip-address_master>/32 scram-sha-256host all patroni <ip-address_replica>/32 scram-sha-256host replication patroni 127.0.0.1/32 scram-sha-256host replication patroni <ip-address_master>/32 scram-sha-256host replication patroni <ip-address_replica>/32 scram-sha-256
Шаг 7. Настройка перезагрузки компонентов (опционально)
Выполните данный шаг при наличии компонента Pangolin Pooler.
-
Под пользователем
postgresсоздайте файл/etc/pangolin-pooler/pangolin-pooler-restart.sh, который будет использовать Pangolin Manager при перезагрузке кластера для перезагрузки Pangolin Pooler (reload) и назначьте права:sudo -iu postgrestouch /etc/pangolin-pooler/pangolin-pooler-restart.shchmod 500 /etc/pangolin-pooler/pangolin-pooler-restart.shexit -
С помощью текстового редактора из-под
rootдобавьте в файл/etc/pangolin-pooler/pangolin-pooler-restart.shсодержимое:#!/bin/shsudo systemctl restart pangolin-pooler
Шаг 8. Запуск Pangolin Manager
-
Перечитайте обновленную конфигурацию Pangolin (reload):
sudo -iu postgrespg_ctl reloadexit -
Запустите сервис
pangolin-managerпоследовательно, сначала на узле мастер, затем на реплике и после на арбитре, при необходимости:sudo systemctl start pangolin-manager -
Проверьте корректность запуска и состояние сервиса. Пример статуса:
sudo systemctl status pangolin-managerПример успешного старта сервиса pangolin-manager
● pangolin-manager.service - Runners to orchestrate a high-availability PostgreSQLLoaded: loaded (/usr/lib/systemd/system/pangolin-manager.service; disabled; preset: disabled)Active: active (running) since Mon 2026-02-02 20:58:12 MSK; 11ms agoProcess: 2325458 ExecStartPre=/bin/mkdir -p /var/run/pangolin-dbms (code=exited, status=0/SUCCESS)Process: 2325459 ExecStartPre=/bin/chown -R postgres:postgres /var/run/pangolin-dbms (code=exited, status=0/SUCCESS)Main PID: 2325464 (pangolin-manage)Tasks: 1 (limit: 50508)Memory: 2.7MCPU: 16msCGroup: /system.slice/pangolin-manager.service└─2325464 /opt/pangolin-manager/bin/pangolin-manager-bin/pangolin-manager.bin /etc/pangolin-manager/postgres.ymlFeb 02 20:58:12 srv-123 systemd[1]: Starting Runners to orchestrate a high-availability PostgreSQL...Feb 02 20:58:12 srv-123 systemd[1]: Started Runners to orchestrate a high-availability PostgreSQL.Feb 02 20:57:53 srv-123 pangolin-manager.bin[2325269]: 2026-02-02 20:57:53,336 INFO: Failed to import patroni.dcs.consul
Установка компонентов продукта СУБД Pangolin
Установка компонента Pangolin Tuner
Pangolin Tuner — это инструмент для работы с конфигурацией Postgres-like СУБД, предназначенный для оптимизации производительности баз данных в различных сценариях использования. Инструмент автоматически определяет оптимальные настройки в зависимости от профиля рабочей нагрузки / профиля использования. Это позволяет значительно сократить время настройки и минимизировать риски, связанные с неправильной конфигурацией. Подробнее смотрите в отдельном разделе про утилиту Pangolin Tuner.
Порядок установки
Шаги процесса ручной установки компонента:
- Установка rpm/deb-пакета утилиты.
- Описание процесса оптимизации конфигурационного файла СУБД.
Шаг 1. Установка rpm/deb-пакета
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/utilities/pangolin-tuner-{version_component}-{OS}.x86_64.rpm
sudo apt install /{path}/utilities/pangolin-tuner-{version_component}_amd64.deb
sudo apt-get install /{path}/utilities/pangolin-tuner-{version_component}-altlinux{version_OS}.x86_64.rpm
Пример заполненной команды:
sudo dnf -y install ~/distributive/utilities/pangolin-tuner-1.2.0-sberlinux9.x86_64.rpm
Шаг 2. Оптимизация конфигурационного файла СУБД
-
Выберите профиль рабочей нагрузки, соответствующий конкретным потребностям для использования оптимальных значений параметров.
-
Запустите утилиту Pangolin Tuner с необходимыми настройками и сконфигурируйте файл под нужный профиль:
-
Профиль OLTP:
sudo -iu postgres/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/07/data/postgresql.conf --profile oltp --output-file /pgdata/07/data/postgresql.conf.oltpexit -
Профиль OLAP:
sudo -iu postgres/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/07/data/postgresql.conf --profile olap --output-file /pgdata/07/data/postgresql.conf.olapexit -
Профиль 1C (для окружения 1С):
sudo -iu postgres/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/07/data/postgresql.conf --profile 1c --output-file /pgdata/07/data/postgresql.conf.1cexit
-
-
Примените созданный конфигурационный файл:
sudo -iu postgresmv /pgdata/07/data/postgresql.conf.oltp /pgdata/07/data/postgresql.confchmod 600 /pgdata/07/data/postgresql.confexitСведенияPangolin Tuner не конфигурирует индивидуальные настройки, связанные с количеством подключений либо с активацией расширений. Данные параметры необходимо настроить самостоятельно.
Описание параметров, по которым утилита Pangolin Tuner формирует значение, расположено в разделе «Тюнинг параметров» документа «Руководство администратора».
Установка компонента Pangolin Pooler
Установка модуля Pangolin DCS
При переходе к данному этапу предполагается, что установка Pangolin Manager уже пройдена.
Pangolin DCS — это модуль распределенного хранилища конфигурации внутри компонента Pangolin Manager, который реализует Raft-алгоритм.
Pangolin DCS является частью Pangolin Manager и может заменить сторонний компонент etcd. Развертывание Pangolin DCS происходит поэтапно.
Порядок установки
Шаги процесса ручной установки модуля:
- Создание системных директорий, необходимых для работы Pangolin DCS.
- Конфигурирование Pangolin DCS.
- Добавление ролевой модели
Шаг 1. Создание системных директорий
Создайте директории /pangolinlogs/pangolin-manager/raft и /pgdata на всех узлах кластера:
sudo mkdir -p /pangolinlogs/pangolin-manager/raft /pgdata
sudo chown -R postgres:postgres /pangolinlogs /pgdata
sudo chmod -R 700 /pangolinlogs /pgdata
Шаг 2. Конфигурирование Pangolin DCS
-
Настройка Pangolin Manager DCS осуществляется параметрами в секции
pangolin_dcsв конфигурационном файле Pangolin Manager/etc/pangolin-manager/postgres.yml. С помощью текстового редактора под пользователемpostgresотредактируйте конфигурационный файл Pangolin Manager/etc/pangolin-manager/postgres.ymlна всех узлах кластера:pangolin_dcs:self_addr– необходимо указать адрес для прослушивания соединений Raft (hostname:2481);pangolin_dcs:partner_addrs– необходимо указать список других узлов кластера (<hostname_replica>:2481,<hostname_arbiter_>:2481);pangolin_dcs:data_dir– необходимо указать путь к директории для хранения журнала операций и текущих значений ключей (/pgdata/0{base_version}/raft_data);pangolin_dcs:logfile– необходимо указать путь до файла логов (/pangolinlogs/pangolin-manager/raft/raft.log);pangolin_dcs:restapi:listen– необходимо указать адрес для доступа к REST API утилиты Pangolin DCS (0.0.0.0:8009);pangolin_dcs:restapi:connect_address– необходимо указать адрес подключения к REST API утилиты Pangolin DCS (hostname:8009);pangolin_dcs:restapi:authentication.username– необходимо указать имя пользователя для доступа к REST API утилиты Pangolin DCS (pangolindcs). Создается на следующем шаге Добавление ролевой модели;pangolin_dcs:restapi:authentication.password– необходимо указать пароль пользователя для доступа к REST API утилиты Pangolin DCS.
Пример заполненной секции
pangolin_dcsв файле/etc/pangolin-manager/postgres.yml:pangolin_dcs:self_addr: abc-0.11:2481partner_addrs: abc-0.12:2481,abc-0.13:2481data_dir: /pgdata/07/raft_datalogfile: /pangolinlogs/pangolin-manager/raft/raft.logrestapi:listen: 0.0.0.0:8009connect_address: abc-0.11:8009partner_address: abc-0.12:8009,abc-0.13:8009authentication:username: pangolindcspassword: <sample_password> -
С помощью текстового редактора под пользователем
postgresвыставьте значение параметраinstaller.cluster_typeв конфигурационном файле Pangolin Manager/etc/pangolin-manager/postgres.ymlв значениеcluster-patroni-dcs-pgbouncerна мастере и на реплике.Пример корректно заполненного параметра
installer.cluster_type:postgresql:parameters:installer.cluster_type: cluster-patroni-dcs-pgbouncer
Дополнительная информация о конфигурировании DCS описана в разделе «Администрирование Pangolin DCS» в документе «Руководство администратора».
Шаг 3. Добавление ролевой модели
-
Перечитайте конфигурацию Pangolin Manager последовательно (сначала на узле мастер, затем на реплике и после на арбитре):
sudo systemctl reload pangolin-managersudo systemctl restart pangolin-manager -
Проверьте, что все узлы кластера доступны:
sudo -iu postgres/opt/pangolin-manager/bin/pangolin-dcs-ctl member listexitПример успешной работы узлов
abc-0.11, connected, Trueabc-0.12, connected, Falseabc-0.13, connected, False -
Под пользователем
postgresна узле арбитра выполните следующие команды для добавления ролевой модели:/opt/pangolin-manager/bin/pangolin-dcs-ctl user add root:'<root_password>'/opt/pangolin-manager/bin/pangolin-dcs-ctl user add pangolindcs:'<sample_password>'/opt/pangolin-manager/bin/pangolin-dcs-ctl user add pangolinmanager:'<sample_password>'/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<root_password>' role add pangolindcsapi/opt/pangolin-manager/bin/pangolin-dcs-ctl role grant-permission pangolindcsapi readwrite --prefix /service//opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<root_password>' user grant-role pangolindcs pangolindcsapi/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<root_password>' user grant-role pangolinmanager pangolindcsapi/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<root_password>' auth enableПример успешного выполнения команд
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl user add root:'root_password'User root created[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl user add pangolindcs:'sample_password'User pangolindcs created[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl user add pangolinmanager:'sample_password'User pangolinmanager created[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password 'root_password' role add pangolindcsapiRole pangolindcsapi created[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl role grant-permission pangolindcsapi readwrite --prefix /service/Role pangolindcsapi updated[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password 'root_password' user grant-role pangolindcs pangolindcsapiRole pangolindcsapi is granted to user pangolindcs[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password 'root_password' user grant-role pangolinmanager pangolindcsapiRole pangolindcsapi is granted to user pangolinmanager[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password 'root_password' auth enableAuthentication Enabled -
Перечитайте конфигурацию Pangolin Manager последовательно (сначала на узле мастер, затем на реплике и после на арбитре):
Внимание!Убедитесь что в кофигурационном файле
/etc/pangolin-manager/postgres.ymlуказаны актуальные данные аутентификации для пользователей в секцииrestapi:authenticationиpangolin_dcs:restapi:.sudo systemctl reload pangolin-managersudo systemctl restart pangolin-manager
Установка компонента etcd
При переходе к данному этапу предполагается, что установка Pangolin Manager уже пройдена.
etcd - это строго согласованное, распределенное хранилище информации в формате ключ-значение.
Существует модуль Pangolin DCS, который является частью Pangolin Manager и может заменить компонент etcd.
В кластерной конфигурации (Pangolin Manager+etcd) Etcd устанавливается из стандартных репозиториев ОС. Все действия по установке etcd выполняются под системным пользователем root. Поддерживаемая версия пакета стороннего компонента под разных ОС указана на странице «Системные требования».
Версии etcd 3.4.42, 3.5.28 и 3.6.9 не рекомендуются к использованию из-за проблем совместимости, возникающих в патчевых версиях компонента. Рекомендуемые версии etcd для эксплуатации: 3.4.23, 3.5.26, 3.6.5.
Порядок установки
Шаги процесса ручной установки компонента:
- Установка компонента.
- Создание системных директорий, необходимых для работы Pangolin DCS.
- Конфигурирование Pangolin Manager.
- Конфигурирование etcd.
- Создание service-файла etcd.
- Запуск etcd.
- Добавление ролевой модели.
Шаг 1. Установка компонента etcd
Важно чтобы версия etcd на всех устанавливаемых машинах была одинаковая.
Установите пакет etcd:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install -y etcd
sudo apt install -y etcd
sudo apt-get install -y etcd
Шаг 2. Создание системных директорий
-
Создайте на узле арбитра пользователя и группу postgres:
sudo useradd postgres -
Создайте директорию
/pangolinlogs/etcdна всех узлах кластера:sudo mkdir -p /pangolinlogs/etcdsudo chown -R postgres:postgres /pangolinlogssudo chmod -R 700 /pangolinlogs
Шаг 3. Конфигурирование Pangolin Manager
-
Настройка Pangolin Manager DCS осуществляется параметрами в секции
etcdв конфигурационном файле Pangolin Manager/etc/pangolin-manager/postgres.yml. С помощью текстового редактора под пользователемpostgresотредактируйте конфигурационный файл Pangolin Manager/etc/pangolin-manager/postgres.ymlна всех узлах кластера:etcd:hosts– необходимо указать список узлов кластера (<ip-address_master>:2379,<ip-address_replica>:2379,<ip-address_arbiter>:2379);etcd:username– необходимо указать имя пользователя для доступа к REST API etcd (patronietcd), который создается на шаге 7;etcd:password– необходимо указать пароль пользователя для доступа к REST API etcd.
Пример заполненной секции
etcdв файле/etc/pangolin-manager/postgres.yml:etcd:hosts: <ip-address_master>:2379,<ip-address_replica>:2379,<ip-address_arbiter>:2379username: patronietcdpassword: <sample_password> -
С помощью текстового редактора под пользователем
postgresвыставьте значение параметраinstaller.cluster_typeв конфигурационном файле Pangolin Manager/etc/pangolin-manager/postgres.ymlв значениеcluster-patroni-etcd-pgbouncerна мастере и на реплике.Пример корректно заполненного параметра
installer.cluster_type:postgresql:parameters:installer.cluster_type: cluster-patroni-etcd-pgbouncer
Шаг 4. Конфигурирование etcd
-
С помощью текстового редактора под пользователем
rootскорректируйте конфигурационный файл etcd/etc/etcd/etcd.confпо следующему шаблону:ETCD_NAME="<hostname -s>"ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"ETCD_ADVERTISE_CLIENT_URLS="http://<hostname>:2379"ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"ETCD_INITIAL_ADVERTISE_PEER_URLS="http://<hostname>:2380"ETCD_INITIAL_CLUSTER_TOKEN="single"ETCD_INITIAL_CLUSTER="<hostname -s master>=http://<hostname_master_>:2380,<hostname_ -s replica_>=http://<hostname_replica_>:2380,<hostname -s arbiter>=http://<hostname_arbiter_>:2380"ETCD_INITIAL_CLUSTER_STATE="new"ETCD_DATA_DIR="/var/lib/etcd"ETCD_ELECTION_TIMEOUT="5000"ETCD_HEARTBEAT_INTERVAL="1000"ETCD_ENABLE_V2="true"ETCD_LOG_OUTPUTS="/pangolinlogs/etcd/etcd.log"ETCD_LOGGER="zap"Обозначения
Описание параметров
etcd.conf:ETCD_LISTEN_CLIENT_URLS— список ссылок, с которых собирается трафик клиентов;ETCD_ADVERTISE_CLIENT_URLS— список ссылок клиентов этого элемента кластера для публичной передачи. Передаваемые ссылки клиентов будут доступны системам, взаимодействующим с кластером etcd. Клиентские библиотеки обрабатывают эти ссылки для подключения к кластеру etcd;ETCD_LISTEN_PEER_URLS— список ссылок, с которых собирается трафик одноранговых узлов;ETCD_INITIAL_ADVERTISE_PEER_URLS— список ссылок пиров этого элемента кластера для передачи другим элемента кластера;
ETCD_INITIAL_CLUSTER— исходная конфигурация кластера для начальной загрузки. Все узлы и их URL (конструкция выглядит следующим образом«host_name_1=http://ip_iddress:2379,host_name_2=http://ip_iddress:2379,host_name_3=http://ip_iddress:2379);ETCD_INITIAL_CLUSTER_STATE— исходное состояние кластера (newилиexisting);ETCD_INITIAL_CLUSTER_TOKEN— исходный токен кластера etcd во время начальной загрузки. При использовании нескольких кластеров позволяет избежать непреднамеренного взаимодействия между ними;ETCD_DATA_DIR- каталог, в котором находится база данных etcd, wal и снепшоты etcd;ETCD_HEARTBEAT_INTERVAL— время (мс) периода проверки (heartbeat);ETCD_ELECTION_TIMEOUT— время (в мс) тайм-аута алгоритма выбора;ETCD_ENABLE_V2- поддержка версии API v2;ETCD_LOG_OUTPUTS- путь до логов etcd;ETCD_LOGGER- уровень детализации журнала. :::
-
Назначьте права на конфигурационный файл etcd
/etc/etcd/etcd.conf:sudo chmod 700 -R /etc/etcd /var/lib/etcdsudo chown postgres:postgres -R /etc/etcd /var/lib/etcd
Шаг 5. Создание service-файла etcd
-
С помощью текстового редактора под пользователем
rootотредактируйте файл/usr/lib/systemd/system/etcd.serviceпо следующему шаблону:СведенияЕсли файл
etcd.serviceне был создан при установке пакета, создайте вручную.[Unit]Description=etcd ServerAfter=network.targetAfter=network-online.targetWants=network-online.target[Service]Type=notifyWorkingDirectory=/var/lib/etcd/EnvironmentFile=-/etc/etcd/etcd.confUser=postgres## set GOMAXPROCS to number of processorsExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) ionice -c2 -n0 /usr/bin/etcd"Restart=on-failureLimitNOFILE=65536[Install]WantedBy=multi-user.target -
Назначьте права на сервисный файл etcd
/usr/lib/systemd/system/etcd.service:sudo chmod 600 /usr/lib/systemd/system/etcd.servicesudo chown postgres:postgres /usr/lib/systemd/system/etcd.service -
Перечитайте конфигурацию systemd:
sudo systemctl daemon-reload
Шаг 6. Запуск etcd
-
Запустите etcd:
sudo systemctl start etcd -
Проверьте корректность запуска и состояния сервиса:
sudo systemctl status etcdПример запуска сервиса
● etcd.service - etcd ServerLoaded: loaded (/usr/lib/systemd/system/etcd.service; disabled; preset: disabled)Active: active (running) since Mon 2026-02-02 21:18:59 MSK; 48s agoMain PID: 2332389 (etcd)Tasks: 10 (limit: 50508)Memory: 9.6MCPU: 107msCGroup: /system.slice/etcd.service└─2332389 /usr/bin/etcdFeb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.522788+0300","caller":"etcdserver/server.go:2144","msg":"published local member to cluster through raft","local-memb>Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.522829+0300","caller":"embed/serve.go:124","msg":"ready to serve client requests"}Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.522929+0300","caller":"etcdmain/main.go:44","msg":"notifying init daemon"}Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.523010+0300","caller":"etcdmain/main.go:50","msg":"successfully notified init daemon"}Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.522898+0300","caller":"membership/cluster.go:587","msg":"set initial cluster version","cluster-id":"ead42cd4ad83b6eb>Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.523078+0300","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"}Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.523096+0300","caller":"etcdserver/server.go:2721","msg":"cluster version is updated","cluster-version":"3.5"} -
Проверьте состояние узлов кластера:
ETCDCTL_API=2 etcdctl --endpoints http://abs-0.11:2379,http://abs-0.12:2379,http://abs-0.13:2379 cluster-healthETCDCTL_API=3 etcdctl --endpoints=http://abs-0.11:2379,http://abs-0.12:2379,http://abs-0.13:2379 member list -w tableПример успешного выполнения команд
[root]# ETCDCTL_API=2 etcdctl --endpoints http://abs-0.11:2379,http://abs-0.12:2379,http://abs-0.13:2379 cluster-healthmember 50b3cea48056d248 is healthy: got healthy result from http://abs-0.11:2379member a52b0ae6e860d8f8 is healthy: got healthy result from http://abs-0.12:2379member ba15750e235af505 is healthy: got healthy result from http://abs-0.13:2379cluster is healthy[root]# ETCDCTL_API=3 etcdctl --endpoints=http://abs-0.11:2379,http://abs-0.12:2379,http://abs-0.13:2379 member list -w table+------------------+---------+----------+----------------------+----------------------+------------+| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |+------------------+---------+----------+----------------------+----------------------+------------+| 50b3cea48056d248 | started | abs-0-11 | http://abs-0.11:2380 | http://abs-0.11:2379 | false || a52b0ae6e860d8f8 | started | abs-0-12 | http://abs-0.12:2380 | http://abs-0.12:2379 | false || ba15750e235af505 | started | abs-0-13 | http://abs-0.13:2380 | http://abs-0.13:2379 | false |+------------------+---------+----------+----------------------+----------------------+------------+
Шаг 7. Добавление ролевой модели
-
Из под пользователя
postgresна узле арбитра выполните следующие команды для добавления ролевой модели:# для версии API v3export ETCDCTL_API=3etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 user add root:'<root_password>'etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 user add patronietcd:'<sample_password>'etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 --user=root:'<root_password>' role add patronietcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 role grant-permission patroni readwrite --prefix=true /service/etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 --user=root:'<root_password>' user grant-role patronietcd patronietcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 --user=root:'<root_password>' auth enable# для версии API v2export ETCDCTL_API=2etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 user add root:'<root_password>'etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 user add patronietcd:'<sample_password>'etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 -u root:'<root_password>' role add patronietcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 role grant patroni -path '/service/*' -readwriteetcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 -u root:'<root_password>' user grant patronietcd -roles patronietcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 -u root:'<root_password>' auth enableetcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 -u root:'<root_password>' role revoke guest -path '/*' --readwriteПример успешного выполнения команд
[root]# export ETCDCTL_API=3[root]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 user add root:'root_password'User root created[root]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 user add patronietcd:'sample_password'User patronietcd created[root]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 --user=root:'root_password' role add patroniRole patroni created[root]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 role grant-permission patroni readwrite --prefix=true /service/Role patroni updated[pprb_dev]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 --user=root:'root_password' user grant-role patronietcd patroniRole patroni is granted to user patronietcd[pprb_dev]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 --user=root:'root_password' auth enableAuthentication Enabled[root]# export ETCDCTL_API=2[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 user add root:'root_password'User root created[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 user add patronietcd:'sample_password'User patronietcd created[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 -u root:'root_password' role add patroniRole patroni created[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 role grant patroni -path '/service/*' -readwriteRole patroni updated[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 -u root:'root_password' user grant patronietcd -roles patroniUser patronietcd updated[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 -u root:'root_password' auth enableAuthentication Enabled[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 -u root:'root_password' role revoke guest -path '/*' --readwriteRole guest updated
Дальнейшие шаги
После завершения ручного пошагового конфигурирования кластера СУБД Pangolin доступно:
- настроить ролевую модель;
- установить необходимые расширения;
- установить утилиту резервного копирования CopyWala;
- подключить и настроить доступные функциональности безопасности продукта СУБД Pangolin и установить другие требуемые функциональности.
Шаги по установке других поставляемых пакетов представлены в соответствующих разделах их функциональности.