Установка
Установка компонента Pangolin Pooler на этапе развертывания продукта СУБД Pangolin может происходить:
- автоматизированным способом с помощью Ansible-скриптов;
- вручную по инструкции пошаговой установки.
При эксплуатации СУБД Pangolin, установка происходит с помощью поставляемого deb/rpm-пакета компонента.
Особенности поставки и установки
- Компонент поставляется deb/rpm-пакетом в формате
pangolin-pooler-{version_component}-{OS}.x86_64.rpm
; - Исполняемый файл компонента находится по пути:
/opt/pangolin-pooler/bin/pangolin-pooler
; - Может быть установлена только одна версия Pangolin Pooler;
- Нумерация версии компонента начата с 1.1.0 после переименования с PgBouncer на Pangolin Pooler.
Последовательность выполнения
Шаг 1. Установка пакета pangolin-pooler
Выполните установку компонента Pangolin Pooler:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-pooler-{version_component}-{OS}.x86_64.rpm
sudo apt install pangolin-pooler-{version_component}-{OS}_amd64.deb
sudo apt-get install pangolin-pooler-{version_component}-{OS}.x86_64.rpm
Пример заполненной команды:
sudo apt-get install pangolin-pooler-1.1.0-altlinux10.x86_64.rpm
Шаг 2. Конфигурирование Pangolin Pooler
Отредактируйте файл pangolin-pooler.ini
:
sudo -iu postgres
vi /etc/pangolin-pooler/pangolin-pooler.ini
Если файл со стандартным конфигурационным файлом не создался во время установки, в качестве суперпользователя создайте его самостоятельно и отредактируйте:
sudo -iu postgres
sudo mkdir -p /etc/pangolin-pooler
sudo chown postgres:postgres /etc/pangolin-pooler
sudo chmod 0700 /etc/pangolin-pooler
# вставить конфигурационные параметры (см. пример файла pangolin-pooler.ini)
sudo vi /etc/pangolin-pooler/pangolin-pooler.ini
sudo chown postgres:postgres /etc/pangolin-pooler/pangolin-pooler.ini
sudo chmod 0600 /etc/pangolin-pooler/pangolin-pooler.ini
Пример файла pangolin-pooler.ini
[databases]
* = host=<ip адрес хоста> port=5432
[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/user/984/pangolin-pooler/pangolin-pooler.pid
admin_users = pgbouncer
max_client_conn = 400
pool_mode = transaction
min_pool_size = 0
default_pool_size = 105
max_db_connections = 105
max_user_connections = 105
ignore_startup_parameters = extra_float_digits
unix_socket_dir =
ndc_suspending_timeout = 0
client_tls_crl_path = /pg_ssl/crl
server_tls_crl_path = /pg_ssl/crl
client_tls_crl_file = /pg_ssl/crl/intermediate.crl
server_tls_crl_file = /pg_ssl/crl/intermediate.crl
# TLS settings
server_tls_protocols = secure
server_tls_ciphers = secure
server_tls_sslmode = verify-full
client_tls_protocols = secure
client_tls_ciphers = secure
client_tls_sslmode = prefer
server_tls_pkcs12_config_path = /pg_ssl/intermediate/pgbouncer.p12.cfg
client_tls_pkcs12_config_path = /pg_ssl/intermediate/server.p12.cfg
Шаг 3. Конфигурирование userlist.txt
-
Измените файл
userlist.txt
(путь до файла/etc/pangolin-pooler/userlist.txt
) при помощи текстового редактора, добавив следующие строки:"<user>" "<password>"
Пример файла
userlist.txt
:"user" "qwerty"
Или в засекреченном виде:
"user" "md5175c641eaed0b6c05ae8444b73d789f0"
-
Измените права и владельца файла:
sudo chown postgres:postgres /etc/pangolin-pooler/userlist.txt
sudo chmod 0600 /etc/pangolin-pooler/userlist.txt
Шаг 4. Настройка ротации журналов
-
Выполните конфигурирование ротации журналов. Содержимое файла
pangolin-pooler
перенесите из аналогичного файла на мастере:sudo -iu postgres
sudo cp /opt/pangolin-pooler/share/doc/logrotate/pangolin-pooler /etc/logrotate.d/pangolin-pooler
sudo vi /etc/logrotate.d/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/user/984/pangolin-pooler/pangolin-pooler.pid 2> /dev/null` 2>/dev/null ||true
endscript
} -
Назначьте права:
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
Проверка результата
После завершения процесса установки рекомендуется выполнить проверку корректности установка компонента 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>
— версия продукта.