Ответ
Основной конфигурационный файл PgBouncer — pgbouncer.ini. Стандартные пути расположения:
/etc/pgbouncer/pgbouncer.ini(чаще всего в пакетных установках)/etc/pgbouncer.ini- Можно указать произвольный путь через флаг
-dпри запуске:pgbouncer -d /path/to/pgbouncer.ini
Минимальный пример pgbouncer.ini:
[databases]
mydb = host=localhost port=5432 dbname=production
[pgbouncer]
listen_port = 6432
listen_addr = 0.0.0.0
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
pool_mode = transaction
max_client_conn = 100
default_pool_size = 20
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
Сопутствующие файлы:
auth_file(обычноuserlist.txt) — содержит пары"username" "md5-hashed-password". Пароль генерируется командой:echo "md5$(echo -n 'password123' | md5sum | cut -d ' ' -f1)"- PID-файл — хранит Process ID для управления службой.
- Сокет-файл — для локальных подключений (если настроен
unix_socket_dir).
DevOps-практики:
- Хранить
pgbouncer.iniв системе управления конфигурациями (Ansible, Chef) или как ConfigMap в Kubernetes. - Использовать environment variables для чувствительных данных (паролей) вместо хранения в файле.
- Настраивать мониторинг логов (
/var/log/pgbouncer/) и метрик (через SHOW команд в PgBouncer).