Temos três servidores redis 3.2.7. Cada servidor redis é executado redis e o redis sentinel (para failover). Aqui está a configuração sentinela para cada nó
Escravo 1 (sentinela) 192.168.0.15
bind 192.168.0.15
port 26379
logfile "/var/log/sentinel.log"
sentinel myid 57ge72174330d523tcec8adcd1e039c7f51c298c
sentinel monitor mymaster 192.168.0.16 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster super-secret-password
sentinel config-epoch mymaster 77
dir "/"
sentinel leader-epoch mymaster 0
sentinel known-sentinel mymaster 192.168.0.17 26379 2b72876887f0e2c8db75e6d407babb60eb1a7185
sentinel known-sentinel mymaster 192.168.0.16 26379 06b84b7e6e320797ef49681c2e0598364b673c15
sentinel current-epoch 78
Mestre (sentinela) - 192.168.0.16
bind 192.168.0.16
port 26379
logfile "/var/log/sentinel.log"
sentinel myid 06b84b7e6e320797ef49681c2e0598364b673c15
sentinel monitor mymaster 192.168.0.16 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster super-secret-password
dir "/"
sentinel config-epoch mymaster 77
sentinel leader-epoch mymaster 0
sentinel known-sentinel mymaster 192.168.0.17 26379 2b72876887f0e2c8db75e6d407babb60eb1a7185
sentinel known-sentinel mymaster 192.168.0.15 26379 57ge72174330d523tcec8adcd1e039c7f51c298c
sentinel current-epoch 78
Escravo S (sentinela) 192.168.0.17
bind 192.168.0.17
port 26379
logfile "/var/log/sentinel.log"
sentinel myid 2b72876887f0e2c8db75e6d407babb60eb1a7185
sentinel monitor mymaster 192.168.0.16 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster super-secret-password
dir "/"
sentinel config-epoch mymaster 77
sentinel leader-epoch mymaster 0
sentinel known-sentinel mymaster 192.168.0.16 26379 06b84b7e6e320797ef49681c2e0598364b673c15
sentinel known-sentinel mymaster 192.168.0.15 26379 57ge72174330d523tcec8adcd1e039c7f51c298c
sentinel current-epoch 78
Se eu parar o redis-server e o redis-sentinel no nó Master, vejo o seguinte nos escravos:
2664:X 01 Mar 16:17:15.563 # +sdown master mymaster 192.168.0.16 6379
Então as sentinelas estão vendo o Mestre como baixo. No entanto, nenhum failover ocorre. Se eu verificar os escravos usando:
redis-cli -h 127.0.0.1 -p 26379 -a super-secret-password sentinel get-master-addr-by-name mymaster
Eu recebo:
1) "192.168.0.16"
2) "6379"
Então eles estão vendo o velho Mestre (que foi desligado como ainda é seu Mestre. Se eles estão vendo o Mestre como baixo, porque eles não estão elegendo um novo Mestre?
A propósito, acredito que esta configuração estava funcionando quando estávamos rodando o Redis 2.8.9. Então eu só posso imaginar que o sentinela redis pode ter mudado em 3.2.7. Eu não tenho certeza de onde começar a procurar.
Qualquer ajuda ou ponteiros serão apreciados.
Obrigado Brad