Comment configurer Redis pour la haute disponibilité avec Sentinel dans CentOS 8 - Partie 2
- 2273
- 108
- Jeanne Dupont
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:
- 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.34Diagramme 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-sentinellDé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 26379Dé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 2Dé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 5000Dé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 180000Dé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 1Dé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îtreCe 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éplique2Notez 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 Master13. 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 MymasterAfficher 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 MymasterObtenez 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 BascilorVous 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.
- « Comment installer le serveur de lampes sur Centos 8
- Utilisez des regards pour surveiller Linux distant en mode serveur Web »