[pgpool-general-jp: 1627] Re: pcpコマンドでの.pcppassファイル使用方法, MASTERノードのpgpool停止時のdelegate IP移動について

Takeharu SATO takeharu.sato @ gmail.com
2020年 5月 17日 (日) 20:16:37 JST


お騒がせしております、佐藤です。

ようやく理解に至りました。pcpコマンドに対する-hオプションが、
.pcppassのエントリと一致している必要があるのですね。

| -bash-4.2$ pcp_watchdog_info -h pgpooldelegate -p 9898 -U pgpool -w
| 2 YES pgsql101:9999 Linux pgsql101 pgsql101
|
| pgsql101:9999 Linux pgsql101 pgsql101 9999 9000 4 MASTER
| pgsql102:9999 Linux pgsql102 pgsql102 9999 9000 7 STANDBY
| -bash-4.2$ pcp_watchdog_info -h pgsql101 -p 9898 -U pgpool -w
| 2 YES pgsql101:9999 Linux pgsql101 pgsql101
|
| pgsql101:9999 Linux pgsql101 pgsql101 9999 9000 4 MASTER
| pgsql102:9999 Linux pgsql102 pgsql102 9999 9000 7 STANDBY
| -bash-4.2$ pcp_watchdog_info -h pgsql102 -p 9898 -U pgpool -w
| 2 NO pgsql101:9999 Linux pgsql101 pgsql101
|
| pgsql102:9999 Linux pgsql102 pgsql102 9999 9000 7 STANDBY
| pgsql101:9999 Linux pgsql101 pgsql101 9999 9000 4 MASTER

以上のように解決いたしました。
有難うございました。

2020年5月17日(日) 18:58 Takeharu SATO <takeharu.sato @ gmail.com>:
>
> 先週水曜日に質問を行いました、佐藤です。
>
> ご回答いただき、有難うございました。
>
> pgpool-II停止時にdelegateIPが移らない現象につきましては、ご指摘いただきました
> enable_consensus_with_half_votesをonに変更することで、意図した通りの動作となりま
> した。有難うございました。
>
> 2020年5月15日(金) 15:53 Takuma Hoshiai <hoshiai @ sraoss.co.jp>:
> >
> > はじめまして、星合です。
> >
> >
> > On Wed, 13 May 2020 21:01:32 +0900
> > Takeharu SATO <takeharu.sato @ gmail.com> wrote:
> >
> > > 皆様、はじめまして。
> > >
> > > つい先日からpgpool-IIを試し始めた者です。色々と設定に失敗しているようで、
> > > 何が誤っているか(または誤っている箇所の調査方法)をご教示いただきたくメール
> > > をお送りします。
> >
> > エラーが発生する、正常に動作しない場合は、設定ファイルや事象再現時のログ、
> > 判明していれば再現手順も合わせて共有していただけると、回答してくれる方が
> > 多いかと思います。パスワードやIP情報など載せられない情報がある場合は適宜
> > マスキングしていただければと思います。
>
> 有難うございます。実は質問を行う前、試しにlog_min_messages, client_min_messages
> をdebug3に設定してログを眺めるなどして、幾つかの設定ミス(ポート番号の書き間違い)を
> 発見するなどしておりました。しかし、あまりにもログ出力が大量で、内容的にもsourceを
> 知っていないと手も付けられないのではないかと思い、困惑しておりました。
>
>
> > > 現在、ドキュメントの「8.3. Pgpool-II + Watchdogの構築の例」にしたがいつ
> > > つ、2台構成でVirtualBox上に構築を試みています。PostgreSQLのバージョンが
> > > 10のため、11を前提としたPATH設定は修正済みです。また、NICのdeviceはeth0
> > > ではなくenp0s8のため、該当部分も変更済みです。
> > > https://www.pgpool.net/docs/latest/ja/html/example-cluster.html
> > >
> > > 環境は次のとおりです。
> > > OS: CentOS 7.7.1908 (yum upgrade実行済)
> > > PostgreSQL: postgresql10-server-10.12-1PGDG.rhel7.x86_64
> > >             postgresql10-libs-10.12-1PGDG.rhel7.x86_64
> > >             postgresql10-10.12-1PGDG.rhel7.x86_64
> > >             (https://www.postgresql.org/download/linux/redhat/ を利用)
> > > Pgpool-II: pgpool-II-pg10-4.1.1-1pgdg.rhel7.x86_64
> > >            pgpool-II-pg10-extensions-4.1.1-1pgdg.rhel7.x86_64
> > >            (pgpool-II-release-4.1-1.noarch を利用してyum install)
> > >
> > > ホスト名  | IPADDR
> > > ---------+--------------
> > > pgsql101 | 192.168.56.11
> > > pgsql102 | 192.168.56.12
> > >
> > > delegate IPADDR: 192.168.56.13
> > >
> > > 【現象1】
> > > pcpコマンドに-wオプションを付けるとパスワードファイルを利用して認証を行う
> > > と認識していますが、正常に行えない状況が発生しています。
> > >
> > > -wオプション無しで実行した場合は、正常に実行できています。
> > > | -bash-4.2$ pcp_watchdog_info -h 192.168.56.13 -p 9898 -U pgpool
> > > | Password:
> > > | 2 YES pgsql101:9999 Linux pgsql101 pgsql101
> > > |
> > > | pgsql101:9999 Linux pgsql101 pgsql101 9999 9000 4 MASTER
> > > | pgsql102:9999 Linux pgsql102 pgsql102 9999 9000 7 STANDBY
> > >
> > > -wオプションを付けると、認証エラーが返されます。
> > > | -bash-4.2$ pcp_watchdog_info -h 192.168.56.13 -p 9898 -U pgpool -w
> > > | FATAL:  authentication failed for user "pgpool"
> > > | DETAIL:  username and/or password does not match
> > >
> > > straceで調べたところ、~/.pcppassは正常に読み込めているようですし、権限も
> > > 正しく設定できているようです。以下、straceの結果から終了直前部分を一部抜粋
> > > します。試しで構築している関係上、pgpoolのパスワードをpgpoolとして設定し
> > > てあります。
> >
> > 以下の結果を見る限り、ホスト名がlocalhostになっております。
> > こちらをpcpを実行する際に指定するhost名と一致させても認証うまくいかないか
> > 試していただければと思います。それでもうまくいかない場合、log_min_messagesを
> > debug以下のレベルに変更して、上記エラー事象を再現した際のログも合わせて
> > 共有していただければと思います。
>
> .pcpassを変更し、各ホスト名でマッチするようにして再度実行しましたが、現象が再現し
> てしまいました。以下、実行状況です。
>
> (log_min_messagesおよびclient_min_messagesをdebug1に設定した状態)
> | -bash-4.2$ cat .pcppass
> | localhost:9898:pgpool:pgpool
> | pgsql101:9898:pgpool:pgpool
> | pgsql102:9898:pgpool:pgpool
> | pgpooldelegate:9898:pgpool:pgpool
> | -bash-4.2$ cat /etc/hosts
> | 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
> | ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
> | 192.168.56.11   pgsql101
> | 192.168.56.12   pgsql102
> | 192.168.56.13   pgpooldelegate
> | -bash-4.2$ hostname
> | pgsql101
> | -bash-4.2$ date; pcp_watchdog_info -h 192.168.56.11 -p 9898 -U pgpool
> | 2020年  5月 17日 日曜日 18:17:16 JST
> | Password:
> | 2 YES pgsql101:9999 Linux pgsql101 pgsql101
> |
> | pgsql101:9999 Linux pgsql101 pgsql101 9999 9000 4 MASTER
> | pgsql102:9999 Linux pgsql102 pgsql102 9999 9000 7 STANDBY
> | -bash-4.2$ date; pcp_watchdog_info -h 192.168.56.13 -p 9898 -U pgpool
> | 2020年  5月 17日 日曜日 18:17:34 JST
> | Password:
> | 2 YES pgsql101:9999 Linux pgsql101 pgsql101
> |
> | pgsql101:9999 Linux pgsql101 pgsql101 9999 9000 4 MASTER
> | pgsql102:9999 Linux pgsql102 pgsql102 9999 9000 7 STANDBY
> | -bash-4.2$ date; pcp_watchdog_info -h 192.168.56.13 -p 9898 -U pgpool -w
> | 2020年  5月 17日 日曜日 18:17:45 JST
> | FATAL:  authentication failed for user "pgpool"
> | DETAIL:  username and/or password does not match
>
> →ファイル: pgsql101-pgpool.log-20200517181716-20200517181803.log
>
>
> (log_min_messagesおよびclient_min_messagesをdebug5に設定した状態)
> | -bash-4.2$ date; pcp_watchdog_info -h 192.168.56.13 -p 9898 -U pgpool -w;date
> | 2020年  5月 17日 日曜日 18:47:46 JST
> | FATAL:  authentication failed for user "pgpool"
> | DETAIL:  username and/or password does not match
>
> →ファイル: pgsql101-pgpool.log-20200517184745-20200517184750.log
>
> お手数おかけしますが、何卒よろしくお願いいたします。
>
>
> > > | stat("/var/lib/pgsql/.pcppass", {st_mode=S_IFREG|0600, st_size=29, ...}) = 0
> > > | open("/var/lib/pgsql/.pcppass", O_RDONLY) = 4
> > > | fstat(4, {st_mode=S_IFREG|0600, st_size=29, ...}) = 0
> > > | mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
> > > -1, 0) = 0x7f619659c000
> > > | read(4, "localhost:9898:pgpool:pgpool\n", 4096) = 29
> > > | read(4, "", 4096)                       = 0
> > > | close(4)                                = 0
> > > | munmap(0x7f619659c000, 4096)            = 0
> > > | write(3, "M\0\0\0\4", 5)                = 5
> > > | select(4, [3], NULL, [3], NULL)         = 1 (in [3])
> > > | read(3, "m\0\0\0\10B\342H*", 1024)      = 9
> > > | write(3, "R\0\0\0,pgpool\0fd5d959733067cc6dbca"..., 45) = 45
> > > | select(4, [3], NULL, [3], NULL)         = 1 (in [3])
> > > | read(3, "E\0\0\0xSFATAL\0CXX000\0Mauthenticati"..., 1024) = 121
> > > | close(3)                                = 0
> > > | write(2, "FATAL:  authentication failed fo"..., 98FATAL:
> > > authentication failed for user "pgpool"
> > > | DETAIL:  username and/or password does not match
> > > |
> > > | ) = 98
> > > | exit_group(1)                           = ?
> > > | +++ exited with 1 +++
>
>
> --
> Takeharu SATO <takeharu.sato @ gmail.com>



-- 
Takeharu SATO <takeharu.sato @ gmail.com>


pgpool-general-jp メーリングリストの案内