Comment configurer Redis pour la haute disponibilité avec Sentinel dans CentOS 8 - Partie 2

Comment configurer Redis pour la haute disponibilité avec Sentinel dans CentOS 8 - Partie 2

Redis fournit une haute disponibilité via Redis Sentinel système distribué. Sentinelle aide à surveiller Redis Instances, défaillances de détection et feront des commutateurs de rôles automatiquement, permettant ainsi un Redis déploiement pour résister à tout type d'échecs.

Il propose une surveillance de Redis Instances (maître et répliques), prend en charge la notification d'autres services / processus ou l'administrateur système via un script, un basculement automatique pour promouvoir une réplique d'un maître lorsque le maître descend et fournit une configuration pour les clients pour découvrir le maître actuel offrant un service particulier.

Cet article montre comment mettre en place Redis pour une grande disponibilité avec Redis Sentinel dans Centos 8, y compris la configuration des sentinelles, la vérification de l'état de configuration et le test d'un Sentinelle basculement.

Prérequis:

  1. Comment configurer la réplication Redis (avec mode de cluster désactivé) dans CentOS 8 - partie 1

Configuration de l'environnement de test

Master Server et Sentinel1: dix.42.0.247 Redis réplique1 et sentinel2: dix.42.0.21 Redis réplique2 et sentinel3: dix.42.0.34 
Diagramme logique de configuration de Redis Sentinel

Selon le Redis Sentinel documentation, il en a besoin au moins trois Sentinelle Instances pour un déploiement robuste. Compte tenu de notre configuration ci-dessus, si le maître échoue, Sentinels2 et Sentinel3 sera d'accord sur l'échec et pourra autoriser un basculement, ce qui rend les opérations des clients en mesure de continuer.

Étape 1: Démarrage et activation du service Redis Sentinel

1. Sur Centos 8, le Redis Sentinel le service est installé à côté du Redis serveur (ce que nous avons déjà fait dans la configuration de la réplication Redis).

Pour démarrer le Redis Sentinel Service et activez-le pour démarrer automatiquement au démarrage du système, utilisez ce qui suit systemctl commandes. Confirmez également qu'il est opérationnel en vérifiant son statut (Faites cela sur tous les nœuds):

# systemctl start redis-sentinel # systemctl activer redis-sentinel # systemctl status redis-sentinell 
Démarrer le service Redis Sentinel

Étape 2: Configuration de Redis Sentinel sur tous les nœuds redis

2. Dans cette section, nous expliquons comment configurer Sentinelle Sur tous nos nœuds. Le Sentinelle Le service a un format de configuration similaire à celui du Redis serveur. Pour le configurer, utilisez le / etc / redis-sentinel.confli Fichier de configuration auto-documenté.

Tout d'abord, créez une sauvegarde du fichier d'origine et ouvrez-la pour l'édition.

# cp / etc / redis-sentinel.conf / etc / redis-sentinel.confli.orig # vi / etc / redis-sentinel.confli 

3. Par défaut, Sentinel écoute le port 26379, Vérifiez cela sur toutes les instances. Notez que vous devez quitter le lier Paramètre a commenté (ou défini sur 0.0.0.0).

port 26379 
Définir l'interface et le port d'écoute Sentinel

4. Ensuite, dites Sentinelle pour surveiller notre maître, Et pour le considérer dans le «Objectivement en bas”État que si au moins 2 sentinelles en quorum sont d'accord. Vous pouvez remplacer "mon maître»Avec un nom personnalisé.

#On Master Server et Sentinel1 Sentinel Monitor Mymaster 127.0.0.1 6379 2 #ON Replica1 et Sentinenel2 Sentinel Monitor Mymaster 10.42.0.247 6379 2 #ON Replica1 et Sentinel3 Sentinel Monitor Mymaster 10.42.0.247 6379 2 
Définissez Redis Master à surveiller

Important: L'énoncé Sentinel Monitor doit être placé devant le Sentinel pass-pass déclaration pour éviter l'erreur "Pas de tel maître avec le nom spécifié.«Lors du redémarrage du service Sentinel.

5. Si la Redis Master To Monitor a un ensemble de mots de passe (dans notre cas le maître), fournissez le mot de passe afin que l'instance Sentinel puisse s'authentifier avec l'instance protégée.

 Sentinel Auth-Pass Mymaster [e-mail protégé] 
Définir le mot de passe Master Auth

6. Définissez ensuite le nombre de millisecondes que le maître (ou toute réplique ou sentinelle ci-jointe) doit être inaccessible à la considérer dans le «Subjectivement en bas" État.

La configuration suivante signifie que le maître sera considéré comme défaillant dès que nous ne recevons aucune réponse de nos pings dans les 5 secondes (1 seconde équivaut à 1000 millisecondes).

Sentinel en bas après-millisecondes Mymaster 5000 
Définir le temps pour maître

7. Ensuite, définissez le délai de basculement en millisecondes qui définit beaucoup de choses (lire la documentation du paramètre dans le fichier de configuration).

Sentinel de basculement Timeout Mymaster 180000 
Définir l'échec au fil du délai

8. Définissez ensuite le nombre de répliques qui peuvent être reconfigurées pour utiliser le nouveau maître après un basculement en même temps. Puisque nous avons deux répliques, nous définirons une réplique car l'autre sera promue au nouveau maître.

Sentinel-Syncs parallèles Mymaster 1 
Définir le nombre de répliques de synchronisation parallèle

Notez que les fichiers de configuration sur Redis réplique1 et Sentinel2, et Reddis Replica1 et Sentinel2 devrait être identique.

9. Ensuite, redémarrez le Sentinelle Services sur tous les nœuds pour appliquer les changements récents.

# SystemCTL Redémarrer Redis-Sentinel 

dix. Ensuite, Open Port 26379 dans le pare-feu de tous les nœuds pour activer le Sentinelle Instances pour commencer à parler, recevoir des connexions de l'autre Sentinelle instances, en utilisant le pare-feu-CMD.

# Firewall-Cmd --zone = public --permanent --add-port = 26379 / tcp # Firewall-CMD - Reload 

11. Toutes les répliques seront automatiquement découvertes. En bonne place, Sentinelle mettra à jour la configuration automatiquement avec des informations supplémentaires sur les répliques. Vous pouvez confirmer cela en ouvrant le Sentinelle Fichier de configuration pour chaque instance et regardez-le.

Par exemple, lorsque vous regardez la fin du fichier de configuration du maître, vous devriez voir le connu et Replica connu déclarations comme indiqué dans la capture d'écran suivante.

Configuration générée automatique dans le maître

Ce devrait être le même cas sur réplique1 et réplique2.

Configuration générée automatique dans réplique1 Configuration générée automatique dans réplique2

Notez que le Sentinelle La configuration est également réécrite / mise à jour chaque fois qu'une réplique est promue à l'état maître pendant un basculement et chaque fois qu'une nouvelle sentinelle est découverte dans la configuration.

Étape 3: Vérifiez l'état de configuration de Redis Sentinel

12. Maintenant, vérifiez le Sentinelle État / informations sur le maître, en utilisant le Info Sentinel Commande comme suit.

# redis-Cli -p 26379 info Sentinel 

D'après la sortie de la commande comme indiqué dans la capture d'écran suivante, nous avons deux répliques / esclaves et trois sentinelles.

Vérifiez les informations de Sentinel sur Master

13. Affiche des informations détaillées sur le maître (appelé mon maître), Utilisez le Maître Sentinel commande.

# redis-Cli -P 26379 Sentinel Master Mymaster 
Afficher les informations détaillées sur Sentinel Master

14. Affiche des informations détaillées sur le des esclaves et sentinelles, Utilisez le esclaves sentinelles commande et Sentinel Sentinelles commande respectivement.

# Redis-Cli -P 26379 Sentinel Slaves Mymaster # redis-Cli -P 26379 Sentinel Sentinels Mymaster 

15. Ensuite, demandez l'adresse du maître par son nom à partir des instances d'esclaves en utilisant le Sentinel Get-Master-Addr-by-Name Commande comme suit.

La sortie doit être l'adresse IP et le port de l'instance de maître actuelle:

# redis-Cli -P 26379 Sentinel Get-Master-Addr-by-Name Mymaster 
Obtenez l'adresse de maître par son nom sur les esclaves

Étape 4: Testez le basculement Sentinel

16. Enfin, testons le basculement automatique dans notre Sentinelle installation. Sur le Redis / sentinel maître, faire le Redis Master (en cours d'exécution sur le port 6379) dormir pour 60 secondes. Puis interrogez l'adresse du maître actuel sur les répliques / esclaves comme suit.

# redis-Cli -p 6379 127.0.0.1: 6379> Auth [Protégé par e-mail] 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 

De la sortie de la requête, le nouveau maître est maintenant réplique / esclave2 avec adresse IP dix.42.0.34 Comme on le voit dans la capture d'écran suivante.

Tester Redis Sentinel Bascilor

Vous pouvez obtenir plus d'informations à partir de la documentation Redis Sentinel. Mais si vous avez des pensées à partager ou à requêtes, le formulaire de rétroaction ci-dessous est votre passerelle vers nous.

Dans la prochaine et dernière partie de cette série, nous examinerons comment mettre en place un cluster Redis dans Centos 8. Ce sera un article indépendant des deux premiers.