Como configurar Redis para alta disponibilidade com o Sentinel no CentOS 8 - Parte 2

- 4443
- 591
- Robert Wunsch DVM
Redis fornece alta disponibilidade via Redis Sentinel sistema distribuído. Sentinela ajuda a monitorar Redis Instâncias, detectar falhas e fará com que as funções sejam alternadas, permitindo assim, permitindo um Redis implantação para resistir a qualquer tipo de falha.
Possui monitoramento de Redis Instâncias (mestre e réplicas), suporta a notificação de outros serviços/processos ou o administrador do sistema por meio de um script, failover automático para promover uma réplica para um mestre quando o mestre desce e fornece configuração para os clientes descobrirem o mestre atual que oferece um serviço específico.
Este artigo demonstra como configurar Redis Para alta disponibilidade com Redis Sentinel em CENTOS 8, incluindo a configuração dos sentinels, verificando o status de configuração e testando um Sentinela failover.
Pré -requisito:
- Como configurar a replicação Redis (com o modo de cluster desativado) no CentOS 8 - Parte 1
Configuração do ambiente de teste
Servidor mestre e sentinel11: 10.42.0.247 REPLICA REDIS1 E SENTINEL2: 10.42.0.21 REPLICA REDIS e Sentinel3: 10.42.0.34

De acordo com Redis Sentinel Documentação, é preciso pelo menos três Sentinela Instâncias para uma implantação robusta. Considerando a nossa configuração acima, se o mestre falha, Sentinels2 e Sentinel3 concordará com o fracasso e poderá autorizar um failover, tornando as operações do cliente capazes de continuar.
Etapa 1: Iniciar e ativar o serviço Redis Sentinel
1. Sobre CENTOS 8, o Redis Sentinel O serviço está instalado ao lado do Redis Servidor (que já fizemos na configuração de replicação Redis).
Para começar o Redis Serviço Sentinel e permite que ele inicie automaticamente na inicialização do sistema, use o seguinte SystemCtl comandos. Além disso, confirme que está em funcionamento verificando seu status (Faça isso em todos os nós):
# SystemCtl Start Redis-Sentinel # SystemCtl Ativar Redis-Sentinel # Systemctl Status Redis-Sentinel

Etapa 2: Configurando o Redis Sentinel em todos os nós Redis
2. Nesta seção, explicamos como configurar Sentinela Em todos os nossos nós. O Sentinela o serviço tem um formato de configuração semelhante ao Redis servidor. Para configurá -lo, use o /etc/Redis-Sentinel.conf arquivo de configuração autocumentado.
Primeiro, crie um backup do arquivo original e abra -o para edição.
# cp /etc /redis-sentinel.conf /etc /redis-sentinel.conf.orig # vi /etc /redis-sentinel.conf
3. Por padrão, Sentinel escuta na porta 26379, Verifique isso em todas as instâncias. Observe que você tem que deixar o vincular Parâmetro comentado (ou definido como 0.0.0.0).
Porta 26379

4. Em seguida, diga Sentinela para monitorar nosso mestre, e considerá -lo no “Objetivamente para baixoDeclare apenas se pelo menos 2 sentinelas de quorum concordar. Você pode substituir “meu mestre”Com um nome personalizado.
#On Master Server e Sentinel1 Sentinel Monitor Mymaster 127.0.0.1 6379 2 #ON REPLICA1 E SENTINEL2 Monitor Sentinel Mymaster 10.42.0.247 6379 2 #on réplica1 e Sentinel3 Sentinel Monitor Mymaster 10.42.0.247 6379 2

Importante: A declaração do monitor Sentinel deve ser colocada antes do Sentinel AUTH-PASS declaração para evitar o erro “Nenhum mestre com o nome especificado.”Ao reiniciar o serviço Sentinel.
5. Se o Redis Master to Monitor tem um conjunto de senha (no nosso caso o mestre), forneça a senha para que a instância do Sentinel possa autenticar com a instância protegida.
Sentinel Auth-Pass Mymaster [Email Protected]

6. Em seguida, defina o número de milissegundos, o mestre (ou qualquer réplica ou sentinela anexada) deve ser inacessível para considerá -lo no “Subjetivamente para baixo" estado.
A configuração a seguir significa que o mestre será considerado falhando assim que não recebermos nenhuma resposta de nossos pings dentro de 5 segundos (1 segundo é equivalente a 1000 milissegundos).
Sentinel Down-After-milissegunds Mymaster 5000

7. Em seguida, defina o tempo limite de failover em milissegundos que definem muitas coisas (leia a documentação do parâmetro no arquivo de configuração).
Sentinel Failover-timeout Mymaster 180000

8. Em seguida, defina o número de réplicas que podem ser reconfiguradas para usar o novo mestre após um failover ao mesmo tempo. Como temos duas réplicas, definiremos uma réplica, pois a outra será promovida ao novo mestre.
Sentinel Parallel-Syncs Mymaster 1

Observe que os arquivos de configuração em REPLICA REDIS1 e Sentinel2, e REPLICA REDDIS1 e Sentinel2 deve ser idêntico.
9. Em seguida, reinicie o Sentinela Serviços em todos os nós para aplicar as mudanças recentes.
# SystemCtl reinicie o Redis-Sentinel
10. Em seguida, porta aberta 26379 no firewall em todos os nós para ativar o Sentinela Instâncias para começar a falar, receber conexões do outro Sentinela Instâncias, usando o Firewall-CMD.
# firewall-cmd-zone = public --permanent --add-port = 26379/tcp # firewall-cmd--reload
11. Todas as réplicas serão descobertas automaticamente. Importante, Sentinela Atualizará a configuração automaticamente com informações adicionais sobre réplicas. Você pode confirmar isso abrindo o Sentinela arquivo de configuração para cada instância e examine -o.
Por exemplo, quando você olha para o final do arquivo de configuração do mestre, você deve ver o Sentinelas conhecidas e Replica conhecida declarações como mostrado na captura de tela a seguir.

Deve ser o mesmo caso Replica1 e Replica2.


Observe que o Sentinela A configuração também é reescrita/atualizada toda vez que uma réplica é promovida ao status mestre durante um failover e toda vez que um novo Sentinel é descoberto na configuração.
Etapa 3: verifique o status de configuração do Redis Sentinel
12. Agora verifique o Sentinela status/informações sobre o mestre, usando o Info Sentinel comando da seguinte forma.
# Redis -cli -P 26379 Informações Sentinel
A partir da saída do comando, como visto na captura de tela a seguir, temos duas réplicas/escravos e três sentinelas.

13. Para mostrar informações detalhadas sobre o mestre (chamado meu mestre), use o Sentinel Master comando.
# Redis -cli -P 26379 Sentinel Master Mymaster

14. Para mostrar informações detalhadas sobre o escravos e sentinelas, use o Escravos Sentinel comando e Sentinel Sentinels comando respectivamente.
# Redis -cli -P 26379 Sentinel Slaves Mymaster # Redis -Cli -P 26379 Sentinel Sentinels Mymaster
15. Em seguida, pergunte o endereço do mestre pelo nome das instâncias de escravos usando o Sentinel Get-mestres-addr-by-name comando da seguinte forma.
A saída deve ser o endereço IP e a porta da instância principal atual:
# Redis-cli -P 26379 Sentinel Get-mestres-addr-by-name Mymaster

Etapa 4: teste o failover do Sentinel
16. Finalmente, vamos testar o failover automático em nosso Sentinela configurar. No Redis/Sentinel mestre, faça o Redis Mestre (executando na porta 6379) para dormir para 60 segundos. Em seguida, consulte o endereço do mestre atual nas réplicas/escravos da seguinte forma.
# Redis -cli -p 6379 127.0.0.1: 6379> Auth [email protegido] 127.0.0.1: 6379> Debug Sleep 60 # Redis-cli -P 26379 Sentinel Get-mestres-addr-by-name MyMaster # Redis-cli -p 26379 Sentinel Get-meter-add-by-name Mymaster
Da saída para a consulta, o novo mestre está agora Réplica/Slave2 com endereço IP 10.42.0.34 Como visto na captura de tela seguinte.

Você pode obter mais informações da documentação Redis Sentinel. Mas se você tem algum pensamento para compartilhar ou consultas, o formulário de feedback abaixo é o seu gateway para nós.
Na próxima e na última parte desta série, veremos como configurar um cluster Redis no CentOS 8. Será um artigo independente dos dois primeiros.
- « Como instalar o Lamp Server no CentOS 8
- Use olhares para monitorar o Linux Remote no modo de servidor da Web »