Назад | Перейти на главную страницу

pgpool-ii показывает, что сервер не работает, но сервер работает нормально

Я использую postgres 9.2 с потоковой репликацией. У меня есть 1 основная БД и 2 резервные БД, они размещены на amazon EC2, у каждой есть свой сервер. На отдельном сервере у меня есть pgpool (3.2.3), который выполняет балансировку нагрузки

В конфигурации pgpool у меня есть

num_init_children=290, 
max_pool- 2, 
child_life_time - 0
child_max_connections - 100, 
connection_life_time- 100, 
client_idle_limit - 0
do not cache onnections

Иногда pgpool показывает статус сервера как «неработающий», даже если сервер работает нормально, из-за этого у меня возникает много проблем. Также у меня есть в конфигурации pgpool:

health_check_timeout - 60
health_check_period - 30
health_check_max_retries - 3
health_check_retry_delay -5

Также pgpool не ведет журнал :( Я установил логирование как

log_destination "stderr"
debug_level 0
logdir /var/tmp

Проверил разрешения у него 777, так что дело не в этом. Когда я запускаю pgpool, я запускаю его с параметром «-n», чтобы он мог писать журнал.

Есть идеи, почему сервер отображается как неработающий и где мои журналы?

Вот ответ по поводу логов.

Во-первых, log_directory это место, где записывается pgpool_status, а не фактические журналы, поэтому вы не найдете там журналы.

Ведение журнала можно выполнить двумя способами. У вас настроена отправка журналов в STDERR, то есть файловый дескриптор для сообщений об ошибках. В сценарии, который вы используете для запуска pgpool, вы можете добавить перенаправление для STDERR в файл, который затем будет вашим файлом журнала:

pgpool [whatever options you use] > /var/tmp/pgpool.log 2>&1

Другой способ - настроить ведение журнала через обычный демон syslog. В этом случае измените log_destination следующим образом:

log_destination 'syslog'

Это отправит журналы на объект local7. Если вы хотите отправить его в другое учреждение, используйте

syslog_facility 'local0'

или любой другой объект, который вам нравится. Конечно, вам также необходимо настроить демон системного журнала для обработки этой возможности.

Как только эта часть будет завершена, скорее всего, вам будет легче решить другие проблемы.