Установка
Установка компонента Pangolin Pooler на этапе развертывания продукта СУБД Pangolin может происходить:
- автоматизированным способом с помощью Ansible-скриптов;
- вручную по инструкции пошаговой установки.
При эксплуатации СУБД Pangolin, установка происходит с помощью поставляемого rpm/deb-пакета компонента.
Особенности поставки и установки
- Компонент поставляется rpm/deb-пакетом в формате
pangolin-pooler-{version_component}-{OS}.x86_64.rpm; - Исполняемый файл компонента находится по пути:
/opt/pangolin-pooler/bin/pangolin-pooler; - Может быть установлена только одна версия Pangolin Pooler;
- Нумерация версии компонента начата с 1.1.0 после переименования с PgBouncer на 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 = 6544
listen_addr = *
auth_type = scram-sha-256
auth_file = /etc/pangolin-pooler/userlist.txt
logfile = /pangolinlogs/pangolin-pooler/pangolin-pooler.log
pidfile = /var/run/pangolin-pooler/pangolin-pooler.pid
admin_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 10
su postgres postgres
missingok
sharedscripts
notifempty
compress
daily
create 0600 postgres postgres
postrotate
/bin/kill -HUP `cat /var/run/pangolin-pooler/pangolin-pooler.pid 2> /dev/null` 2>/dev/null ||true
endscript
} -
Перенесите готовый файл в системный каталог ротации логов и назначьте права:
sudo cp /opt/pangolin-pooler/share/doc/logrotate/pangolin-pooler /etc/logrotate.d/pangolin-pooler
sudo chown postgres:postgres /etc/logrotate.d/pangolin-pooler
sudo 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 PostgreSQL
Loaded: loaded (/usr/lib/systemd/system/pangolin-pooler.service; disabled; preset: disabled)
Active: active (running) since Mon 2026-02-02 18:58:35 MSK; 4s ago
Process: 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.8M
CPU: 18ms
CGroup: /system.slice/pangolin-pooler.service
└─2292616 /opt/pangolin-pooler/bin/pangolin-pooler -d /etc/pangolin-pooler/pangolin-pooler.ini
Feb 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 Pooler.
Проверка состояния сервиса
-
Выполните проверку статуса службы Pangolin Pooler (на мастере и реплике):
-
Если служба Pangolin Pooler была запущена под пользователем
postgres, то необходимо переключиться на данного пользователя и выполнить команду:systemctl status --user pangolin-pooler -
Если служба Pangolin Pooler была запущена под пользователем
root, то необходимо переключиться на данного пользователя и выполнить команду:systemctl status pangolin-pooler
Ожидаемый результат:
● pangolin-pooler.service - Pangolin Pooler connection pooling for PostgreSQL
Loaded: loaded (/home/postgres/.config/systemd/user/pangolin-pooler.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2025-02-25 14:56:58 MSK; 6min ago
Process: 1662006 ExecStartPost=/bin/sleep 1 (code=exited, status=0/SUCCESS)
Process: 1662003 ExecStart=/opt/pangolin-pooler/bin/pangolin-pooler -d ${POOLERCONF} (code=exited, status=0/SUCCESS)
Process: 1662001 ExecStartPre=/bin/chown -R postgres:postgres /var/run/user/993/pangolin-pooler (code=exited, status=0/SUCCESS)
Process: 1661999 ExecStartPre=/bin/mkdir -p /var/run/user/993/pangolin-pooler (code=exited, status=0/SUCCESS)
Main PID: 1662005 (pangolin-pooler)
CGroup: /user.slice/user-993.slice/user@993.service/pangolin-pooler.service
└─1662005 /opt/pangolin-pooler/bin/pangolin-pooler -d /etc/pangolin-pooler/pangolin-pooler.iniОбратите внимание на параметр
Active. Данный параметр должен быть равенactive (running). -
Проверка подключения к БД через Pangolin Pooler
-
Выполните команду:
psql -h <pgbouncer_host> -p <pgbouncer_port> -U <username> -d <database> -c 'SELECT product_version();'Где:
pgbouncer_host- fqdn/IP-адрес сервера с установленным Pangolin Pooler;pgbouncer_port- порт для работы с Pangolin Pooler. По умолчанию порт равен6544;username- имя пользователя БД;database- имя БД.
Ожидаемый результат:
product_version
---------------------------
Platform V Pangolin <version>
(1 row)Где
<version>— версия продукта.