Перейти к основному содержимому

Установка

Установка компонента Pangolin Pooler на этапе развертывания продукта СУБД Pangolin может происходить:

При эксплуатации СУБД 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:

sudo dnf 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

  1. Измените файл userlist.txt (путь до файла /etc/pangolin-pooler/userlist.txt) при помощи текстового редактора, добавив следующие строки:

    "<user>" "<password>"

    Пример файла userlist.txt:

    "user" "qwerty"

    Или в засекреченном виде:

    "user" "md5175c641eaed0b6c05ae8444b73d789f0"
  2. Измените права и владельца файла:

    sudo chown postgres:postgres /etc/pangolin-pooler/userlist.txt
    sudo chmod 0600 /etc/pangolin-pooler/userlist.txt

Шаг 4. Настройка ротации журналов

  1. Выполните конфигурирование ротации журналов. Содержимое файла 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
    }
  2. Назначьте права:

    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.

Проверка состояния сервиса

  1. Выполните проверку статуса службы 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

  1. Выполните команду:

    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> — версия продукта.