Kā iestatīt Redis par augstu pieejamību, izmantojot Sentinel, CentOS 8 - 2. daļa


Redis nodrošina augstu pieejamību, izmantojot Redis Sentinel izplatīto sistēmu. Sentinel palīdz uzraudzīt Redis gadījumus, atklāt kļūmes un automātiski veiks lomu pārslēgšanos, tādējādi ļaujot Redis izvietošanai pretoties jebkura veida kļūmēm.

Tas piedāvā Redis gadījumu (galvenā un kopiju) uzraudzību, atbalsta paziņošanu par citiem pakalpojumiem/procesiem vai sistēmas administratoru, izmantojot skriptu, automātisku kļūmju pārsūtīšanu, lai veicinātu kopiju galvenajam, kad kapteinis nokrīt, un nodrošina klientiem konfigurāciju, lai atklātu pašreizējo kapteinis, kas piedāvā noteiktu pakalpojumu.

Šajā rakstā ir parādīts, kā iestatīt Redis augstai pieejamībai, izmantojot Redis Sentinel CentOS 8, tostarp kontrolieru konfigurēšana, iestatīšanas statusa pārbaude un Sentinel kļūmes pārbaude.

  1. Kā iestatīt atkārtotu replikāciju (ar atspējotu kopu režīmu) CentOS 8 1. daļā

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

Saskaņā ar Redis Sentinel dokumentāciju, lai stabilai izvietošanai būtu nepieciešami vismaz trīs Sentinel gadījumi. Ņemot vērā mūsu iepriekš iestatīto, ja kapteinis neizdodas, Sentinels2 un Sentinel3 vienosies par kļūmi un varēs autorizēt kļūmi, padarot klienta darbības turpināt.

1. darbība: Redis Sentinel pakalpojuma palaišana un iespējošana

1. CentOS 8 pakalpojumā Redis Sentinel tiek instalēts blakus Redis serverim (ko mēs jau izdarījām Redis Replication Setup).

Lai palaistu pakalpojumu Redis sentinel un ļautu tam automātiski startēt sistēmas sāknēšanas laikā, izmantojiet šādas sistēmasctct komandas. Tāpat pārbaudiet tā statusu (dariet to visos mezglos), lai tas būtu izveidots un darbojas:

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

2. darbība: Redis Sentinel konfigurēšana visos Redis mezglos

2. Šajā sadaļā mēs izskaidrojam, kā konfigurēt Sentinel visos mezglos. Pakalpojumam Sentinel ir līdzīgs konfigurācijas formāts kā Redis serverim. Lai to konfigurētu, izmantojiet /etc/redis-sentinel.conf pašdokumentētu konfigurācijas failu.

Vispirms izveidojiet oriģināla faila dublējumu un atveriet to rediģēšanai.

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

3. Pēc noklusējuma Sentinel klausās portā 26379, pārbaudiet to visos gadījumos. Ņemiet vērā, ka iesiešanas parametrs jāatstāj komentēts (vai iestatīts uz 0.0.0.0).

port 26379

4. Pēc tam pasakiet Sentinelam, lai viņš novēro mūsu meistaru un apsver to stāvoklī “Objektīvi uz leju” tikai tad, ja tam piekrīt vismaz 2 kvoruma sargi. “Mymaster” var aizstāt ar pielāgotu nosaukumu.

#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

Svarīgi! Lai izvairītos no kļūdas “Nav šāda galvenā nosaukuma ar norādīto nosaukumu”, kontroliera monitora paziņojums JĀIEVieto pirms sentinel auth-pass priekšraksta. restartējot sardzes pakalpojumu.

5. Ja Redis galvenajam monitoram ir iestatīta parole (mūsu gadījumā galvenajam ir iestatīta parole), norādiet paroli, lai Sentinel instance varētu autentificēties ar aizsargāto instanci.

 
sentinel auth-pass mymaster [email 

6. Pēc tam iestatiet milisekundu skaitu, kādam galvenajam (vai jebkurai pievienotajai kopijai vai kontrolierim) jābūt nesasniedzamam, lai to uzskatītu par stāvokli “Subjektīvi uz leju”.

Šī konfigurācija nozīmē, ka galvenais meistars tiks uzskatīts par neizdevušos, tiklīdz mēs 5 sekunžu laikā nesaņemsim atbildi no mūsu pingiem (1 sekunde ir ekvivalenta 1000 milisekundēm).

sentinel down-after-milliseconds mymaster 5000

7. Pēc tam milisekundēs iestatiet kļūmjpārlēces taimautu, kas nosaka daudzas lietas (izlasiet parametra dokumentāciju konfigurācijas failā).

sentinel failover-timeout mymaster 180000

8. Pēc tam iestatiet to repliku skaitu, kuras var pārkonfigurēt, lai vienlaikus izmantotu jauno galveno maģistrāli pēc kļūmjpārlēces. Tā kā mums ir divas kopijas, mēs iestatīsim vienu kopiju, jo otra tiks paaugstināta par jauno meistaru.

sentinel parallel-syncs mymaster 1

Ņemiet vērā, ka konfigurācijas failiem Redis Replica1 un Sentinel2 un Reddis Replica1 un Sentinel2 jābūt identiskiem.

9. Pēc tam restartējiet Sentinel pakalpojumus visos mezglos, lai piemērotu pēdējās izmaiņas.

# systemctl restart redis-sentinel

10. Pēc tam visos mezglos atveriet portu 26379 ugunsmūrī, lai Sentinel instances varētu sākt runāt, saņemt savienojumus no citām Sentinel instancēm, izmantojot ugunsmūri cmd.

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

11. Visas kopijas tiks automātiski atklātas. Svarīgi ir tas, ka Sentinel automātiski atjauninās konfigurāciju ar papildu informāciju par kopijām. To var apstiprināt, atverot Sentinel konfigurācijas failu katram gadījumam un to pārlūkojot.

Piemēram, aplūkojot galvenā konfigurācijas faila beigas, jums vajadzētu redzēt paziņojumus zināmie sūtņi un zināmās kopijas, kā parādīts nākamajā ekrānuzņēmumā.

Tam vajadzētu būt vienādam gadījumam ar replica1 un replica2.

Ņemiet vērā, ka arī Sentinel konfigurācija tiek pārrakstīta/atjaunināta katru reizi, kad kļūmjpārlēces laikā tiek paaugstināta kopija uz galveno statusu un katru reizi, kad iestatījumā tiek atklāts jauns Sentinel.

3. darbība: pārbaudiet Redis Sentinel iestatīšanas statusu

12. Tagad pārbaudiet Sentinel statusu/informāciju galvenajā ierīcē, izmantojot komandu info sentinel šādi.

# redis-cli -p 26379 info sentinel

No komandas izejas, kā redzams nākamajā ekrānuzņēmumā, mums ir divas kopijas/vergi un trīs sargi.

13. Lai parādītu detalizētu informāciju par galveno (sauktu par mymaster), izmantojiet sentinel master komandu.

# redis-cli -p 26379 sentinel master mymaster

14. Lai parādītu detalizētu informāciju par vergiem un sargiem, izmantojiet attiecīgi sargu un vergu komandu.

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

15. Pēc tam vaicājiet kapteiņa adresi pēc nosaukuma no vergu instancēm, izmantojot komandu sentinel get-master-addr-by-name šādi.

Izejai jābūt pašreizējās galvenās instances IP adresei un portam:

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

4. darbība. Pārbaudiet Sentinel kļūmi

16. Visbeidzot, pārbaudīsim automātisko atteici mūsu Sentinel iestatījumos. Redis/Sentinel meistarā izveidojiet Redis master (darbojas 6379. portā) gulēt 60 sekundes. Pēc tam kopiju/vergu pašreizējā galvenā adreses vaicājiet šādi.

# redis-cli -p 6379
127.0.0.1:6379> AUTH [email 
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

No vaicājuma izvades tagad jaunais kapteinis ir replica/slave2 ar IP adresi 10.42.0.34, kā redzams nākamajā ekrānuzņēmumā.

Plašāku informāciju varat iegūt Redis Sentinel dokumentācijā. Bet, ja jums ir kādas domas, ko dalīties, vai rodas jautājumi, tālāk sniegtā atsauksmju veidlapa ir jūsu vārti mums.

Šīs sērijas nākamajā un pēdējā daļā mēs aplūkosim, kā CentOS 8 izveidot Redis kopu. Tas būs neatkarīgs raksts no pirmajiem diviem.