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

Takuma Hoshiai hoshiai @ sraoss.co.jp
2020年 5月 18日 (月) 14:07:09 JST


星合です。

On Sun, 17 May 2020 20:16:37 +0900
Takeharu SATO <takeharu.sato @ gmail.com> wrote:

> お騒がせしております、佐藤です。
> 
> ようやく理解に至りました。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
> 
> 以上のように解決いたしました。
> 有難うございました。

どちらも、問題が解決したようで良かったです。
また何かあれば、MLなどで質問していただければと思います。


> 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>


-- 
Takuma Hoshiai <hoshiai @ sraoss.co.jp>



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