1 Augsta pieejamība
Pārskats
Augsta pieejamība (HA) parasti ir nepieciešama kritiskās infrastruktūrās, kurās praktiski nav pieļaujama dīkstāve. Tāpēc jebkuram pakalpojumam, kas var atteikt, ir jābūt ieviestai pārslēgšanās uz rezerves sistēmu iespējai, lai pārņemtu darbību, ja pašreizējais pakalpojums neizdodas.
Zabbix piedāvā vietējo augstas pieejamības risinājumu, kuru ir viegli iestatīt un kuram nav nepieciešama iepriekšēja HA pieredze. Zabbix vietējā HA var būt noderīga kā papildu aizsardzības slānis pret Zabbix servera programmatūras/aparatūras kļūmēm vai lai samazinātu dīkstāvi apkopes dēļ.
Zabbix augstas pieejamības režīmā vairāki Zabbix serveri darbojas kā mezgli klasterī. Kamēr viens Zabbix serveris klasterī ir aktīvs, pārējie ir gaidstāves režīmā un gatavi nepieciešamības gadījumā pārņemt darbību.

Pāreja uz Zabbix HA nav saistoša. Jebkurā brīdī varat atgriezties pie atsevišķas darbības režīma.
Skatiet arī: Īstenošanas detaļas
Augstas pieejamības iespējošana
Zabbix servera palaišana kā klastera mezgls
Lai palaistu Zabbix serveri kā klastera mezglu, servera konfigurācijā ir nepieciešami divi parametri:
- Katram Zabbix serverim, kas būs HA klastera mezgls, ir jānorāda
HANodeNameparametrs.
Tas ir unikāls mezgla identifikators (piem., zabbix-node-01), ar kuru serveris tiks norādīts aģenta un starpniekservera konfigurācijās.
Ja nenorādīsiet HANodeName, serveris tiks palaists atsevišķā režīmā.
- Katram mezglam ir jānorāda
NodeAddressparametrs.
NodeAddress parametrs (address:port) tiks izmantots Zabbix lietotāja saskarnei, lai izveidotu savienojumu ar aktīvo servera mezglu.
NodeAddress ir jāsakrīt ar attiecīgā Zabbix servera IP adresi vai FQDN nosaukumu.
Pēc konfigurācijas failu izmaiņu veikšanas restartējiet visus Zabbix serverus. Tagad tie tiks palaisti kā klastera mezgli. Jauno serveru statusu var redzēt Atskaites > Sistēmas informācija, kā arī, izpildot:
zabbix_server -R ha_status
Šī izpildlaika komanda ierakstīs pašreizējo HA klastera statusu Zabbix servera žurnālā (un stdout):

Lietotāja saskarnes sagatavošana
Pārliecinieties, ka Zabbix servera address:port nav definēts lietotāja saskarnes konfigurācijā (atrodams conf/zabbix.conf.php lietotāja saskarnes failu direktorijā).

Zabbix lietotāja saskarne automātiski noteiks aktīvo mezglu, nolasot iestatījumus no nodes tabulas Zabbix datubāzē. Aktīvā mezgla adrese tiks izmantota kā Zabbix servera adrese.
Starpniekservera konfigurācija
HA klastera mezgli (serveri) ir jānorāda vai nu pasīvā, vai aktīvā Zabbix starpniekservera konfigurācijā.
Pasīvam starpniekserverim mezglu nosaukumi ir jānorāda starpniekservera Server parametrā, atdalot tos ar komatu.
Server=zabbix-node-01,zabbix-node-02
Aktīvam starpniekserverim mezglu nosaukumi ir jānorāda starpniekservera Server parametrā, atdalot tos ar semikolu.
Server=zabbix-node-01;zabbix-node-02
Aģenta konfigurācija
HA klastera mezgli (serveri) ir jānorāda Zabbix aģenta vai Zabbix aģents 2 konfigurācijā.

Lai iespējotu pasīvos pārbaužu veidus, mezglu nosaukumi ir jānorāda Server parametrā, atdalot tos ar komatu.
Server=zabbix-node-01,zabbix-node-02
Lai iespējotu aktīvos pārbaužu veidus, mezglu nosaukumi ir jānorāda ServerActive parametrā. Ņemiet vērā, ka aktīvajām pārbaudēm mezgliem no citiem serveriem jābūt atdalītiem ar komatu, savukārt pašiem mezgliem savā starpā jābūt atdalītiem ar semikolu, piemēram:
ServerActive=zabbix-node-01;zabbix-node-02
Pārslēgšanās uz gaidstāves mezglu
Zabbix automātiski pārslēgsies uz citu mezglu, ja aktīvais mezgls pārtrauks darbību. Lai pārslēgšanās notiktu, vismaz vienam mezglam jābūt gaidstāves statusā.
Cik ātra būs pārslēgšanās? Visi mezgli ik pēc 5 sekundēm atjaunina savu pēdējās piekļuves laiku (un statusu, ja tas ir mainījies). Tātad:
- Ja aktīvais mezgls tiek izslēgts un paspēj paziņot savu statusu kā "apturēts", cits mezgls pārņems vadību 5 sekunžu laikā.
- Ja aktīvais mezgls tiek izslēgts/kļūst nepieejams, nespējot atjaunināt savu statusu, gaidstāves mezgli gaidīs pārslēgšanās aizkavi + 5 sekundes, lai pārņemtu vadību.
Pārslēgšanās aizkave ir konfigurējama, atbalstītais diapazons ir no 10 sekundēm līdz 15 minūtēm (pēc noklusējuma viena minūte). Lai mainītu pārslēgšanās aizkavi, varat palaist:
zabbix_server -R ha_set_failover_delay=5m
HA klastera pārvaldība
Pašreizējo HA klastera statusu var pārvaldīt, izmantojot īpašās izpildlaika vadības opcijas:
ha_status- reģistrēt HA klastera statusu Zabbix servera žurnālā (un stdout);ha_remove_node=target- noņemt HA mezglu, kas identificēts ar tā<target>- mezgla nosaukumu vai ID (nosaukumu/ID var iegūt noha_statusizpildes izvades), piemēram:
zabbix_server -R ha_remove_node=zabbix-node-02
Ņemiet vērā, ka aktīvos/gaidstāves mezglus nevar noņemt.
ha_set_failover_delay=delay- iestatīt HA pārslēgšanās aizkavi (no 10 sekundēm līdz 15 minūtēm; tiek atbalstīti laika sufiksi, piemēram, 10s, 1m).
Mezgla statusu var uzraudzīt:
- Pārskati > Sistēmas informācija.
- Sistēmas informācija paneļa logrīkā.
- Izmantojot servera
ha_statusizpildlaika vadības opciju (skatiet iepriekš).
Iekšējo vienumu zabbix[cluster,discovery,nodes] var izmantot mezglu atklāšanai, jo tas atgriež JSON ar augstas pieejamības mezglu informāciju.
HA klastera atspējošana
Lai atspējotu augstas pieejamības klasteri:
- Izveidojiet konfigurācijas failu rezerves kopijas.
- Apturiet gaidstāves mezglus.
- No aktīvā primārā servera noņemiet parametru HANodeName.
- Pārstartējiet primāro serveri (tas tiks palaists patstāvīgā režīmā).
HA klastera jaunināšana
Lai veiktu HA mezglu galvenās versijas jaunināšanu:
- Apturiet visus mezglus.
- Izveidojiet pilnu datubāzes dublējumu.
- Ja datubāze izmanto replikāciju, pārliecinieties, ka visi mezgli ir sinhronizēti un tiem nav problēmu. Neveiciet jaunināšanu, ja replikācija ir bojāta.
- Atlasiet vienu mezglu, kas veiks datubāzes jaunināšanu, mainiet tā konfigurāciju uz atsevišķu režīmu, komentējot
HANodeName, un jauniniet to. - Pārliecinieties, ka datubāzes jaunināšana ir pilnībā pabeigta (Sistēmas informācijai jāparāda, ka Zabbix serveris darbojas).
- Restartējiet mezglu HA režīmā.
- Jauniniet un palaidiet pārējos mezglus (nav nepieciešams tos pārslēgt uz atsevišķu režīmu, jo šajā brīdī datubāze jau ir jaunināta).
Nelielas versijas jaunināšanas gadījumā pietiek jaunināt pirmo mezglu, pārliecināties, ka tas ir jaunināts un darbojas, un pēc tam sākt jaunināšanu nākamajā mezglā.
Īstenošanas detaļas
Augstas pieejamības (HA) klasteris ir izvēles risinājums, un tas tiek atbalstīts Zabbix serverim. Dzimtais HA risinājums ir izstrādāts tā, lai to būtu vienkārši lietot, tas darbosies starp vietnēm un tam nav īpašu prasību attiecībā uz datubāzēm, ko Zabbix atpazīst. Lietotāji var brīvi izmantot Zabbix dzimto HA risinājumu vai trešās puses HA risinājumu atkarībā no tā, kas vislabāk atbilst augstas pieejamības prasībām viņu vidē.
Risinājums sastāv no vairākiem zabbix_server instancēm vai mezgliem.
Katrs mezgls:
- Tiek konfigurēts atsevišķi.
- Izmanto to pašu datubāzi.
- Var darboties vairākos režīmos: aktīvs, gaidstāves, nepieejams, apturēts.
Vienlaikus aktīvs (strādājošs) var būt tikai viens mezgls. Gaidstāves mezgls palaiž tikai vienu procesu - HA pārvaldnieku. Gaidstāves mezgls neveic datu vākšanu, apstrādi vai citas parastās servera darbības; tas neklausās portos; tam ir minimāls datubāzes savienojumu skaits.
Gan aktīvie, gan gaidstāves mezgli ik pēc 5 sekundēm atjaunina savu pēdējās piekļuves laiku.
Katrs gaidstāves mezgls uzrauga aktīvā mezgla pēdējās piekļuves laiku.
Ja aktīvā mezgla pēdējās piekļuves laiks pārsniedz "failover delay" sekundes, gaidstāves mezgls pārslēdzas uz aktīva mezgla lomu un iepriekš aktīvajam mezglam piešķir statusu unavailable.
Aktīvais mezgls uzrauga savu datubāzes savienojamību - ja tā tiek zaudēta ilgāk nekā failover delay-5 sekundes, tam jāpārtrauc visa apstrāde un jāpārslēdzas gaidstāves režīmā.
Aktīvais mezgls arī uzrauga gaidstāves mezglu statusu - ja gaidstāves mezgla pēdējās piekļuves laiks pārsniedz failover delay sekundes, gaidstāves mezglam tiek piešķirts statuss unavailable.
Mezgli ir izstrādāti tā, lai būtu savietojami starp Zabbix mazajām versijām.