Redis biedt hoge beschikbaarheid via het gedistribueerde systeem Redis Sentinel. Sentinel helpt bij het monitoren van Redis-instanties, het detecteren van storingen en zal automatisch rollen overschakelen, waardoor een Redis-implementatie bestand is tegen allerlei soorten storingen.
Het biedt monitoring van Redis-instanties (master en replica’s), ondersteunt meldingen van andere services/processen of de systeembeheerder via een script, automatische failover om een replica te promoten naar een master wanneer de master uitvalt, en biedt configuratie voor clients om de huidige master te ontdekken die een bepaalde service aanbiedt.
Dit artikel demonstreert hoe je Redis kunt instellen voor hoge beschikbaarheid met Redis Sentinel in CentOS 8, inclusief het configureren van sentinels, het controleren van de installatiestatus en het testen van een Sentinel-failover.
Vereiste:
Opzetten van testomgeving
Master Server and Sentinel1: 10.42.0.247 Redis Replica1 and Sentinel2: 10.42.0.21 Redis Replica2 and Sentinel3: 10.42.0.34

Volgens de documentatie van Redis Sentinel heeft men minstens drie Sentinel instanties nodig voor een robuuste implementatie. Als de master uitvalt, zullen Sentinels2 en Sentinel3 het falen bevestigen en in staat zijn om een failover te autoriseren, waardoor clientoperaties kunnen doorgaan.
Stap 1: Starten en inschakelen van de Redis Sentinel-service
1. Op CentOS 8 wordt de Redis Sentinel-service geïnstalleerd naast de Redis-server (die we al hebben ingesteld in de Redis Replicatie Setup).
Om de Redis-sentinel-service te starten en in te schakelen om automatisch te starten bij het opstarten van het systeem, gebruikt u de volgende systemctl-opdrachten. Controleer ook of deze actief is door de status te controleren (doe dit op alle knooppunten):
# systemctl start redis-sentinel # systemctl enable redis-sentinel # systemctl status redis-sentinel

Stap 2: Configuratie van Redis Sentinel op alle Redis-nodes
2. In dit gedeelte leggen we uit hoe u Sentinel configureert op al onze knooppunten. De Sentinel-service heeft een vergelijkbaar configuratieformaat als de Redis-server. Gebruik het zelfgedocumenteerde configuratiebestand /etc/redis-sentinel.conf om het te configureren.
Maak eerst een back-up van het originele bestand en open het voor bewerking.
# cp /etc/redis-sentinel.conf /etc/redis-sentinel.conf.orig # vi /etc/redis-sentinel.conf
3. Standaard luistert Sentinel op poort 26379, controleer dit op alle instanties. Let op dat je de bind parameter uitgecommentarieerd moet laten (of ingesteld op 0.0.0.0).
port 26379

4. Vertel vervolgens Sentinel om onze master te controleren, en om deze alleen als “Objectief Down” te beschouwen als minstens 2 quorum-sentinels het ermee eens zijn. Je kunt “mymaster” vervangen door een aangepaste naam.
#On Master Server and Sentinel1 sentinel monitor mymaster 127.0.0.1 6379 2 #On Replica1 and Sentinel2 sentinel monitor mymaster 10.42.0.247 6379 2 #On Replica1 and Sentinel3 sentinel monitor mymaster 10.42.0.247 6379 2

Belangrijk: De sentinel monitorverklaring MOET worden geplaatst vóór de sentinel auth-pass verklaring om de fout “Geen master met de opgegeven naam.” te voorkomen bij het herstarten van de sentinelservice.
5. Als de te controleren Redis-master een wachtwoord heeft ingesteld (in ons geval heeft de master dat), geef dan het wachtwoord op zodat de Sentinel-instantie kan verifiëren met de beveiligde instantie.
sentinel auth-pass mymaster Securep@55Here

6. Stel vervolgens het aantal milliseconden in dat de master (of een gekoppelde replica of sentinel) onbereikbaar moet zijn om deze in de “Subjectief Down” toestand te beschouwen.
De volgende configuratie betekent dat de master als falend wordt beschouwd zodra we geen antwoord meer ontvangen van onze pings binnen 5 seconden (1 seconde is equivalent aan 1000 milliseconden).
sentinel down-after-milliseconds mymaster 5000

7. Stel vervolgens de failover-timeout in milliseconden in, die veel dingen definieert (lees de documentatie van de parameter in het configuratiebestand).
sentinel failover-timeout mymaster 180000

8.Stel vervolgens het aantal replica’s in dat opnieuw geconfigureerd kan worden om de nieuwe master te gebruiken na een failover tegelijkertijd. Aangezien we twee replica’s hebben, zullen we één replica instellen aangezien de andere zal worden gepromoveerd tot de nieuwe master.
sentinel parallel-syncs mymaster 1

Merk op dat de configuratiebestanden op Redis Replica1 en Sentinel2, en Reddis Replica1 en Sentinel2 identiek moeten zijn.
9.Herstart vervolgens de Sentinel-services op alle knooppunten om de recente wijzigingen toe te passen.
# systemctl restart redis-sentinel
10.Open vervolgens poort 26379 in de firewall op alle knooppunten om de Sentinel-instanties in staat te stellen met elkaar te communiceren, verbindingen van de andere Sentinel-instanties te ontvangen, met behulp van de firewall-cmd.
# firewall-cmd --zone=public --permanent --add-port=26379/tcp # firewall-cmd --reload
11.Alle replica’s worden automatisch ontdekt. Belangrijk is dat Sentinel de configuratie automatisch bijwerkt met aanvullende informatie over replica’s. Dit kun je bevestigen door het Sentinel-configuratiebestand voor elke instantie te openen en door te nemen.
Bijvoorbeeld, wanneer je aan het einde van het configuratiebestand van de master kijkt, zou je de known-sentinels en known-replica-verklaringen moeten zien zoals getoond in de volgende schermafbeelding.

Dit zou ook het geval moeten zijn voor replica1 en replica2.


Merk op dat de Sentinel-configuratie ook elke keer opnieuw wordt herschreven/bijgewerkt wanneer een replica tijdens een failover wordt gepromoveerd tot masterstatus en elke keer wanneer een nieuwe Sentinel in de setup wordt ontdekt.
Stap 3: Controleer de status van de Redis Sentinel Setup
12. Controleer nu de Sentinel status/informatie op de master, met behulp van het info sentinel commando zoals hieronder.
# redis-cli -p 26379 info sentinel
Uit de output van het commando zoals te zien is in de volgende schermafbeelding, hebben we twee replica’s/slaven en drie sentinels.

13. Om gedetailleerde informatie over de master (genaamd mymaster) te tonen, gebruik het sentinel master commando.
# redis-cli -p 26379 sentinel master mymaster

14. Om gedetailleerde informatie over de replica’s en sentinels te tonen, gebruik respectievelijk het sentinel slaves commando en het sentinel sentinels commando.
# redis-cli -p 26379 sentinel slaves mymaster # redis-cli -p 26379 sentinel sentinels mymaster
15. Vraag vervolgens het adres van de master op naam van de slave-instanties op met behulp van het sentinel get-master-addr-by-name commando zoals hieronder.
De output zou het IP-adres en poort van de huidige master instantie moeten zijn:
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

Stap 4: Test de Sentinel Failover
16. Tenslotte, laten we automatische failover testen in onze Sentinel setup. Laat de Redis/Sentinel master, de Redis master (draaiend op poort 6379), 60 seconden slapen. Vraag vervolgens het adres van de huidige master op bij de replica’s/slaven zoals hieronder.
# redis-cli -p 6379 127.0.0.1:6379> AUTH Securep@55Here 127.0.0.1:6379> debug sleep 60 # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
Uit de output voor de query blijkt dat de nieuwe master nu replica/slave2 is met IP-adres 10.42.0.34 zoals te zien in de volgende schermafbeelding.

U kunt meer informatie krijgen uit de Redis Sentinel documentatie. Maar als u gedachten wilt delen of vragen heeft, is het feedbackformulier hieronder uw toegangspoort tot ons.
In het volgende en laatste deel van deze serie zullen we bekijken hoe u een Redis Cluster instelt in CentOS 8. Het zal een onafhankelijk artikel zijn van de eerste twee.
Source:
https://www.tecmint.com/setup-redis-high-availability-with-sentinel-in-centos-8/