pgpool-ii将服务器显示为closures,但服务器运行正常

我正在使用stream式复制的Postgres 9.2。 我有1个主数据库和2个备用数据库,它托pipe在亚马逊EC2上,每个都有自己的服务器。 在单独的服务器上,我有负载平衡的pgpool(3.2.3)

在我有pgpoolconfiguration

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显示服务器状态为“down”,即使服务器运行良好,由于这个原因,我得到了很多问题。 另外我有在pgpoolconfiguration:

 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的地方,而不是实际的日志,这就是为什么你没有在那里find日志。

logging可以用两种方法中的任何一种来完成。 你已经设置了发送日志到STDERR,即错误消息的文件描述符。 在你用来启动pgpool的脚本中,你可以为STDERR添加一个redirect到一个文件,这个文件就是你的日志文件:

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

另一种方法是通过常规的syslog守护进程设置日志logging。 在这种情况下,像这样改变log_destination:

 log_destination 'syslog' 

这将发送设施local7上的日志。 如果你想把它发送到另一个设施,使用

 syslog_facility 'local0' 

或任何你喜欢的设施。 当然,你也需要configuration你的syslog守护进程来处理这个工具。

一旦完成了这个部分,就很容易找出其他问题。