Weboldal keresés

A Redis beállítása magas rendelkezésre állás érdekében a Sentinel segítségével a CentOS 8 rendszerben – 2. rész


A Redis magas rendelkezésre állást biztosít a Redis Sentinel elosztott rendszeren keresztül. A Sentinel segít a Redis-példányok figyelésében, a hibák észlelésében és a szerepek automatikus átváltásában, így lehetővé teszi a Redis telepítést, hogy ellenálljon bármilyen hibának.

Jellemzője a Redis-példányok (fő és replikák) figyelése, támogatja a többi szolgáltatás/folyamat vagy a rendszeradminisztrátor értesítését szkripten keresztül, automatikus feladatátvételt a replika mesterré terjesztéséhez, amikor a fő leáll, és konfigurálása az ügyfelek számára, hogy felfedezzék az adott szolgáltatást kínáló jelenlegi mestert.

Ez a cikk bemutatja, hogyan állíthatja be a Redist a magas rendelkezésre állás érdekében a Redis Sentinel segítségével a CentOS 8 rendszerben, beleértve az őrszemek konfigurálását, a beállítási állapot ellenőrzését és a Sentinel feladatátvétel.

Előfeltétel:

  1. A Redis-replikáció beállítása (kikapcsolt fürtmóddal) a CentOS 8 rendszerben – 1. rész

Tesztkörnyezet beállítása

Master Server and Sentinel1: 10.42.0.247
Redis Replica1 and Sentinel2: 10.42.0.21
Redis Replica2 and Sentinel3: 10.42.0.34

A Redis Sentinel dokumentációja szerint a robusztus telepítéshez legalább három Sentinel példányra van szükség. Tekintettel a fenti beállításunkra, ha a master meghibásodik, a Sentinels2 és a Sentinel3 megegyezik a hibában, és engedélyezni tudják a feladatátvételt, így az ügyfélműveletek folytathatók.

1. lépés: A Redis Sentinel szolgáltatás indítása és engedélyezése

1. A CentOS 8 rendszeren a Redis Sentinel szolgáltatás telepítve van a Redis szerver mellett (amit már megtettünk a Redis replikációs beállítás).

A Redis sentinel szolgáltatás elindításához és a rendszerindításkor történő automatikus elinduláshoz használja a következő systemctl parancsokat. Ezenkívül ellenőrizze, hogy működik-e, és ellenőrizze az állapotát (ezt tegye meg az összes csomóponton):

systemctl start redis-sentinel
systemctl enable redis-sentinel
systemctl status redis-sentinel

2. lépés: A Redis Sentinel konfigurálása az összes Redis csomóponton

2. Ebben a részben elmagyarázzuk, hogyan konfigurálható a Sentinel minden csomópontunkon. A Sentinel szolgáltatás konfigurációs formátuma hasonló, mint a Redis szerveré. A beállításhoz használja a /etc/redis-sentinel.conf öndokumentált konfigurációs fájlt.

Először készítsen biztonsági másolatot az eredeti fájlról, és nyissa meg szerkesztésre.

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

3. Alapértelmezés szerint a Sentinel a 26379 porton figyel, ezt minden esetben ellenőrizze. Vegye figyelembe, hogy a bind paramétert megjegyzés nélkül kell hagynia (vagy 0.0.0.0 értékre kell állítania).

port 26379

4. Ezután mondja meg a Sentinelnek, hogy figyelje mesterünket, és vegye figyelembe az „Objektíven lefelé” állapotot. csak akkor, ha legalább 2 határozatképes őr egyetért. A „mymaster” kifejezést egyéni névre cserélheti.

#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

Fontos: A sentinel monitor utasítást a sentinel auth-pass utasítás elé KELL elhelyezni, hogy elkerülje a „Nincs ilyen mester a megadott név. ” a sentinel szolgáltatás újraindításakor.

5. Ha a monitorozandó Redis mester be van állítva jelszóval (esetünkben a mester), adja meg a jelszót, hogy a Sentinel példány hitelesíthesse a védett példányt.

 
sentinel auth-pass mymaster Securep@55Here

6. Ezután állítsa be, hogy a mester (vagy bármely csatolt replika vagy őrszem) hány ezredmásodperc legyen elérhetetlen, hogy „Szubjektíven lefelé” állapotba kerüljön.

A következő konfiguráció azt jelenti, hogy a mester hibásnak minősül, amint 5 másodpercen belül nem kapunk választ a pingeinktől (1 másodperc 1000 ezredmásodpercnek felel meg).

sentinel down-after-milliseconds mymaster 5000

7. Ezután állítsa be ezredmásodpercben a feladatátvételi időt, amely sok mindent meghatároz (olvassa el a paraméter dokumentációját a konfigurációs fájlban).

sentinel failover-timeout mymaster 180000

8. Ezután állítsa be azoknak a replikáknak a számát, amelyek egyidejűleg egy feladatátvétel után is újrakonfigurálhatók az új mester használatára. Mivel két replikánk van, az egyik replikát állítjuk be, mivel a másikat az új mesterré léptetjük elő.

sentinel parallel-syncs mymaster 1

Vegye figyelembe, hogy a Redis Replica1 és Sentinel2, valamint a Reddis Replica1 és Sentinel2 konfigurációs fájljainak azonosaknak kell lenniük.

9. Ezután indítsa újra a Sentinel szolgáltatásokat az összes csomóponton a legutóbbi módosítások alkalmazásához.

systemctl restart redis-sentinel

10. Ezután nyissa meg a 26379-es portot a tűzfalban az összes csomóponton, hogy a Sentinel példányok elkezdhessenek beszélni, és fogadhassák a kapcsolatokat a többi >Sentinel példányok, a firewall-cmd használatával.

firewall-cmd --zone=public --permanent --add-port=26379/tcp
firewall-cmd --reload

11. A rendszer automatikusan megtalálja az összes replikát. Fontos, hogy a Sentinel automatikusan frissíti a konfigurációt a replikákkal kapcsolatos további információkkal. Ezt megerősítheti, ha minden egyes példányhoz megnyitja a Sentinel konfigurációs fájlt, és átnézi azt.

Például, amikor megnézi a fő konfigurációs fájl végét, látnia kell az known-sentinels és az known-replica utasításokat, amint az a következő képernyőképen látható.

A replica1 és a replica2 esetén ugyanez a helyzet.

Ne feledje, hogy a Sentinel konfiguráció is újraírásra/frissítésre kerül minden alkalommal, amikor egy replika fő státuszba kerül a feladatátvétel során, és minden alkalommal, amikor új Sentinel kerül felfedezésre a telepítésben.

3. lépés: Ellenőrizze a Redis Sentinel beállítási állapotát

12. Most ellenőrizze a Sentinel állapotát/információit a masteren az info sentinel paranccsal az alábbiak szerint.

redis-cli -p 26379 info sentinel

A következő képernyőképen látható parancs kimenetéből két replikánk/slave és három őrszem áll rendelkezésünkre.

13. A master (az úgynevezett mymaster) részletes információk megjelenítéséhez használja a sentinel master parancsot.

redis-cli -p 26379 sentinel master mymaster

14. Ha részletes információkat szeretne megjeleníteni a szolgákról és a őrszemekről, használja a sentinel slaves parancsot és a sentinel sentinels parancsot, ill.

redis-cli -p 26379 sentinel slaves mymaster
redis-cli -p 26379 sentinel sentinels mymaster

15. Ezután kérdezze meg a master címét név szerint a slave példányoktól a sentinel get-master-addr-by-name paranccsal az alábbiak szerint.

A kimenetnek az aktuális főpéldány IP-címének és portjának kell lennie:

redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

4. lépés: Tesztelje a Sentinel feladatátvételt

16. Végül teszteljük az automatikus feladatátvételt a Sentinel beállításban. A Redis/Sentinel masteren állítsa a 6379 porton futó Redis mastert 60 másodpercre alvó állapotba . Ezután kérdezze le az aktuális mester címét a replikákon/szolgákon az alábbiak szerint.

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

A lekérdezés kimenetéből az új mester most replica/slave2, IP-címe 10.42.0.34, amint az a következő képernyőképen látható.

További információkat a Redis Sentinel dokumentációjából kaphat. De ha bármilyen megosztandó gondolata van, vagy kérdése van, az alábbi visszajelzési űrlap az Ön kapuja hozzánk.

A sorozat következő és utolsó részében megvizsgáljuk, hogyan állíthatunk be Redis-fürtöt a CentOS 8 rendszerben. Ez egy független cikk lesz az első kettőtől.