web-dev-qa-db-ja.com

RedisSentinelの構成とホスト名

2つのセンチネルと2つのredisサーバーがあります。 redisサーバーのホスト名を使用してセンチネルを構成したい。現在、hostsファイルで各ホスト名をこのように定義しています。

10.22.20.156    clsupport1  
10.22.20.157    clsupport2

そして、私はこのように歩哨を構成しようとします。

daemonize yes
pidfile "/var/run/redis_sentinel_26379.pid"
loglevel notice
logfile "/var/log/redis_sentinel_26379.log"

port 26379
dir "/tmp"

sentinel monitor redis-prod clsupport2 6379 1
sentinel config-Epoch redis-prod 3
sentinel leader-Epoch redis-prod 4
sentinel known-slave redis-prod clsupport1 6379

歩哨を開始すると、ホスト名がIPアドレスに自動的に置き換えられます。再起動後。

daemonize yes
pidfile "/var/run/redis_sentinel_26379.pid"
loglevel notice
logfile "/var/log/redis_sentinel_26379.log"

port 26379
dir "/tmp"

sentinel monitor redis-prod 10.22.20.157 6379 1
sentinel config-Epoch redis-prod 3
sentinel leader-Epoch redis-prod 4
sentinel known-slave redis-prod 10.22.20.156 6379
# Generated by CONFIG REWRITE
...

しかし、私はホスト名を保持したいと思います。どうすればそれを達成できますか?

1
bhdrkn

Redis Sentinelは、構成ファイルを動的に書き換えて、monitorコマンドを再作成する必要があります。生成するコマンドにIPアドレスの代わりにホスト名を挿入するためのプロビジョニングはありません。これが、Sentinelのドキュメントでこの位置のIPアドレスが明示的に規定されている理由でもあります。

したがって、現在のバージョンのSentinelでは、要求していることは不可能です。構成にホスト名を使用するための要件を再評価することをお勧めします。

2
Tilman Schmidt

IPアドレスの下または上にコメントしてください。

redis-sentinelは、クラスターノードのアドレスをフェッチし、ステータスが変更されるとredis構成を更新するように設計されています。あなたの最良のチャンスはコメントにipでホスト名を書き留めることです

0
Chao Guo