Настройка узла-свидетеля repmgr в Debian

Я пытаюсь настроить repmgr версии 5 на Debian с PostgtrSql 11.
Похоже, что документация больше ориентирована на centos/RHEL.

Когда я пытаюсь настроить узел witnes для запуска демона repmgr, я получаю сообщение об ошибке, не зная, где искать причину ошибки.

Это мой файл repmgr.conf:

node_id=3
node_name='PG-Node-Witness'
conninfo='host=10.97.7.140 user=repmgr dbname=repmgr connect_timeout=2'
data_directory='/var/lib/postgresql/11/main'
failover='automatic'
promote_command='/usr/bin/repmgr standby promote -f /etc/repmgr.conf --log-to-file'
follow_command='/usr/bin/repmgr standby follow -f /etc/repmgr.conf --log-to-file --upstream-node-id=%n'
priority=60
monitor_interval_secs=2
connection_check_type='ping'
reconnect_attempts=6
reconnect_interval=8
primary_visibility_consensus=true
standby_disconnect_on_failover=true
repmgrd_service_start_command='sudo /etc/init.d/repmgrd start'  #??????
repmgrd_service_stop_command='sudo //etc/init.d/repmgrd stop'#??????
service_start_command='sudo /usr/bin/systemctl start [email protected]'
service_stop_command='sudo /usr/bin/systemctl stop [email protected]'
service_restart_command='sudo /usr/bin/systemctl restart [email protected]'
service_reload_command='sudo /usr/bin/systemctl relaod [email protected]'
monitoring_history=yes
log_status_interval=60

регистрация в порядке:

repmgr -f /etc/repmgr.conf witness register -h 10.97.7.97

INFO: connecting to witness node "PG-Node-Witness" (ID: 3)
INFO: connecting to primary node
NOTICE: attempting to install extension "repmgr"
NOTICE: "repmgr" extension successfully installed
INFO: witness registration complete
NOTICE: witness node "PG-Node-Witness" (ID: 3) successfully registered

Пробный запуск демона repmgr тоже ОК:

$repmgr -f /etc/repmgr.conf daemon start --dry-run
INFO: prerequisites for starting repmgrd met
DETAIL: following command would be executed:
 sudo /usr/bin/systemctl start [email protected]

Я настраиваю /etc/default/repmgrd с помощью:

REPMGRD_ENABLED=yes

а также

REPMGRD_CONF="/etc/repmgr.conf"

Но все еще получаю ошибку при попытке запустить запуск демона:

$ repmgr -f /etc/repmgr.conf daemon start

Я получил:

NOTICE: executing: "sudo  /etc/init.d/repmgrd start"
ERROR: repmgrd does not appear to have started after 15 seconds
HINT: use "repmgr service status" to confirm that repmgrd was successfully started

person Tamar    schedule 02.07.2020    source источник


Ответы (2)


По-видимому, правильная команда для запуска демона repmgr: repmgrd -f /etc/prepmgr.conf

person Tamar    schedule 03.07.2020

Рекомендуется запускать repmgrd как службу systemd. Согласно документам ( для debian) вам может сначала понадобиться настроить /etc/default/repmgrd, моя конфигурация выглядит так:

# default settings for repmgrd. This file is source by /bin/sh from
# /etc/init.d/repmgrd

# disable repmgrd by default so it won't get started upon installation
# valid values: yes/no
REPMGRD_ENABLED=yes

# configuration file (required)
REPMGRD_CONF="/etc/repmgr/12/repmgr.conf"

# additional options
REPMGRD_OPTS="--daemonize=false"

# user to run repmgrd as
REPMGRD_USER=postgres

# repmgrd binary
REPMGRD_BIN=/bin/repmgrd

# pid file
REPMGRD_PIDFILE=/var/run/repmgrd.pid

Во-вторых, я бы пересмотрел sudoers (visudo), чтобы проверить, может ли пользователь non-root выполнить sudo /etc/init.d/repmgrd start.

Кроме того, пользователь, который запускает команды repmgr, должен иметь возможность писать журналы в зависимости от вашей конфигурации.

person Krishan Thisera    schedule 02.03.2021