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:
- 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.