Jak skonfigurować Redis dla wysokiej dostępności z Sentinel w Centos 8 - Część 2

Jak skonfigurować Redis dla wysokiej dostępności z Sentinel w Centos 8 - Część 2

Redis zapewnia wysoką dostępność przez Redis Sentinel system rozproszony. Posterunek pomaga monitorować Redis instancje, wykryć awarie i automatycznie wykonują przełączniki role Redis wdrażanie w celu oporu wszelkiego rodzaju awarii.

Ma monitorowanie Redis Instancje (Master i Replicas), obsługuje powiadomienie o innych usługach/procesach lub administratora systemu za pośrednictwem skryptu, automatyczne przełączanie awaryjne w celu promowania repliki do mistrza, gdy Master upadnie i zapewnia konfigurację klientom w odkryciu obecnego głównego oferowania określonej usługi.

Ten artykuł pokazuje, jak skonfigurować Redis dla wysokiej dostępności z Redis Sentinel W Centos 8, w tym konfiguracja wartowników, sprawdzanie statusu konfiguracji i testowanie a Posterunek przełączanie awaryjne.

Warunek wstępny:

  1. Jak skonfigurować replikację Redis (z wyłączonym w trybie klastra) w Centos 8 - Część 1

Konfiguracja środowiska testowego

Serwer główny i Sentinel1: 10.42.0.247 Redis Replica1 i Sentinel2: 10.42.0.21 Redis Replica2 i Sentinel3: 10.42.0.34 
Schemat logiczny konfiguracji Redis Sentinel

Według Redis Sentinel Dokumentacja, potrzebuje co najmniej trzech Posterunek instancje solidnego wdrożenia. Biorąc pod uwagę naszą konfigurację powyżej, jeśli gospodarz niepowodzenie, Sentinels2 I Sentinel3 zgodzą się na temat awarii i będzie w stanie zezwolić na przełączanie awaryjne, dzięki czemu operacje klientów mogą kontynuować.

Krok 1: Uruchamianie i włączenie usługi Redis Sentinel

1. NA Centos 8, Redis Sentinel Usługa jest zainstalowana obok Redis serwer (co już zrobiliśmy w konfiguracji replikacji Redis).

Rozpocząć Redis usługa Sentinel i umożliwić jej automatycznie uruchamianie w rozruchu systemowym, użyj następujących Systemctl polecenia. Potwierdź również, że działa, sprawdzając status (Zrób to na wszystkich węzłach):

# Systemctl Start Redis-Sentinel # Systemctl Włącz Redis-Sentinel # Systemctl Status Redis-Sentinel 
Rozpocznij usługę Redis Sentinel

Krok 2: Konfigurowanie Redis Sentinel na wszystkich węzłach Redis

2. W tej sekcji wyjaśniamy, jak skonfigurować Posterunek na wszystkich naszych węzłach. Posterunek usługa ma podobny format konfiguracji jak Redis serwer. Aby go skonfigurować, użyj /etc/redis-sentinel.conf Samokumentowany plik konfiguracyjny.

Najpierw utwórz kopię zapasową oryginalnego pliku i otwórz go do edycji.

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

3. Domyślnie Sentinel słucha w porcie 26379, Sprawdź to we wszystkich instancjach. Zauważ, że musisz opuścić wiązać Parametr skomentował (lub ustawiony na 0.0.0.0).

Port 26379 
Ustaw interfejs słuchania Sentinel i port

4. Następnie powiedz Posterunek do monitorowania naszego gospodarz, i rozważyć to w „Obiektywnie w dół”Stan tylko wtedy, gdy co najmniej 2 kworum zgadzają się. Możesz wymienić „mój mistrz”Z niestandardową nazwą.

#On Master Server i Sentinel1 Sentinel Monitor MyMaster 127.0.0.1 6379 2 #on Replica1 i Sentinel2 Sentinel Monitor MyMaster 10.42.0.247 6379 2 #on Replica1 i Sentinel3 Sentinel Monitor MyMaster 10.42.0.247 6379 2 
Ustaw Master Redis do monitorowania

Ważny: Instrukcja monitora Sentinel musi zostać umieszczona przed wartownikiem Auth-Pass instrukcja, aby uniknąć błędu ”Nie ma takiego mistrza o określonej nazwie.„Podczas ponownego uruchomienia usługi Sentinel.

5. Jeśli Redis Master to Monitor ma zestaw haseł (w naszym przypadku Master ma), podaj hasło, aby instancja Sentinel mogła uwierzytelnić się z instancją chronioną.

 Sentinel Auth-Pass MyMaster [e-mail chroniony] 
Ustaw hasło do Auth

6. Następnie ustaw liczbę milisekund, które Master (lub dowolna załączona replika lub wartownik) powinien być nieosiągalny, aby rozważyć ją w „Subiektywnie w dół" państwo.

Poniższa konfiguracja oznacza, że ​​Master zostanie uznany za niepowodzenia, gdy tylko nie otrzymamy żadnej odpowiedzi z naszych pingów w ciągu 5 sekund (1 sekunda jest równoważna 1000 milisekund).

Sentinel w dół-milisekund MyMaster 5000 
Ustaw czas na Master

7. Następnie ustaw limit czasu awaryjnego w milisekundach, który definiuje wiele rzeczy (przeczytaj dokumentację parametru w pliku konfiguracyjnym).

Sentinel Failover Timeout MyMaster 180000 
Ustaw niepowodzenie w czasie limitu czasu

8. Następnie ustaw liczbę replików, które można ponownie skonfigurować, aby używać nowego mistrza po przełączaniu awaryjnym. Ponieważ mamy dwie repliki, ustawimy jedną replikę, ponieważ druga zostanie awansowana do nowego mistrza.

Sentinel równoległe synchronizmy MyMaster 1 
Ustaw liczbę replików równoległych

Zauważ, że pliki konfiguracyjne włączone Redis Replica1 I Sentinel2, I Reddis Replica1 I Sentinel2 powinien być identyczny.

9. Następnie ponownie uruchom Posterunek Usługi na wszystkich węzłach w celu zastosowania ostatnich zmian.

# Systemctl restart redis-sentinel 

10. Dalej, otwarty port 26379 w zaporze ogniowej na wszystkich węzłach, aby umożliwić Posterunek instancje, aby zacząć mówić, odbierać połączenia od drugiego Posterunek instancje, za pomocą zapory ogniowej-CMD.

um 

11. Wszystkie repliki zostaną automatycznie odkryte. Co ważne, Posterunek Automatycznie aktualizuje konfigurację o dodatkowe informacje o replikach. Możesz to potwierdzić, otwierając Posterunek plik konfiguracyjny dla każdej instancji i przejrzyj go.

Na przykład, gdy spojrzysz na koniec pliku konfiguracyjnego głównego, powinieneś zobaczyć znane-sentinels I znana replika stwierdzenia, jak pokazano na poniższym zrzucie ekranu.

Auto generowane konfigurowanie w Master

To powinno być ta sama sprawa Replica1 I Replica2.

Auto generowane konfigurowanie w replice1 Auto generowane konfigurowanie w replice2

Zauważ, że Posterunek Konfiguracja jest również przepisywana/aktualizowana za każdym razem, gdy replika jest promowana do statusu głównego podczas przełącznika awaryjnego i za każdym razem, gdy w konfiguracji odkryto nowy wartownik.

Krok 3: Sprawdź status konfiguracji Redis Sentinel

12. Teraz sprawdź Posterunek status/informacje o mistrzu, korzystając z Informacje Sentinel polecenie w następujący sposób.

# redis -cli -p 26379 Info Sentinel 

Ze wyjścia polecenia, jak pokazano na poniższym zrzucie ekranu, mamy dwie repliki/niewolnicy i trzy wartowniki.

Sprawdź informacje Sentinel na Master

13. Aby pokazać szczegółowe informacje o gospodarz (zwany mój mistrz), Użyj Sentinel Master Komenda.

# redis -cli -p 26379 Sentinel Master MyMaster 
Pokaż szczegółowe informacje o Sentinel Master

14. Aby pokazać szczegółowe informacje o niewolnicy I Sentinels, Użyj Sentinel Slaves polecenie i Sentinel Sentinels odpowiednio polecenie.

# redis -cli -p 26379 Sentinel Slaves MyMaster # redis -cli -p 26379 Sentinel Sentinels MyMaster 

15. Następnie zapytaj adres Master po imieniu z instancji niewolników za pomocą Sentinel Get-Master-Addr-by-bet polecenie w następujący sposób.

Dane wyjściowe powinny być adres IP i port bieżącej instancji głównej:

# Redis-cli -p 26379 Sentinel Get-Master-Addr-By-nazwa MyMaster 
Uzyskaj adres Master po imieniu na niewolnikach

Krok 4: Przetestuj przełącznik Sentinel Pairever

16. Wreszcie, przetestujmy automatyczne przełączanie awaryjne w naszym Posterunek organizować coś. Na Redis/Sentinel mistrzu, zrób Redis Master (działający na porcie 6379) 60 sekundy. Następnie zapytaj o adres bieżącego mistrza na replikach/niewolnikach w następujący sposób.

# redis -cli -p 6379 127.0.0.1: 6379> Auth [e -mail chroniony] 127.0.0.1: 6379> Debugowanie Sleep 60 # redis-cli -p 26379 Sentinel Get-Master-Addr-By-NAME MYMASTER # REDIS-CLI -p 26379 Sentinel GET-MASTER-ADDR-NAME MYMASTER 

Ze wyjścia zapytania nowy Mistrz jest teraz Replica/Slave2 z adresem IP 10.42.0.34 Jak widać na poniższym zrzucie ekranu.

Przetestowanie awaryjnego przełączania Redis Sentinel

Możesz uzyskać więcej informacji z dokumentacji Redis Sentinel. Ale jeśli masz jakieś przemyślenia do podzielenia się lub zapytania, poniższy formularz sprzężenia zwrotnego to Twoja brama do nas.

W następnej i ostatniej części tej serii przyjrzymy się, jak skonfigurować klaster Redis w Centos 8. Będzie to niezależny artykuł z pierwszych dwóch.