[comment]: # (tags: HA, high-availability)

[comment]: # ({486cd6dc-fb8f0d5a})
# 1 Augsta pieejamība

[comment]: # ({/486cd6dc-fb8f0d5a})

[comment]: # ({f0a123dd-ea8bc3db})
### 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.

![](../../../../assets/en/manual/config/zabbix_ha.png)

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](#implementation-details)

[comment]: # ({/f0a123dd-ea8bc3db})

[comment]: # ({c6caa06e-567d3671})
### Augstas pieejamības iespējošana

[comment]: # ({/c6caa06e-567d3671})

[comment]: # ({5a71328e-23e81771})
##### Zabbix servera palaišana kā klastera mezgls

Lai palaistu Zabbix serveri kā klastera mezglu, servera [konfigurācijā](/manual/appendix/config/zabbix_server) ir nepieciešami divi parametri:

-    Katram Zabbix serverim, kas būs HA klastera mezgls, ir jānorāda `HANodeName` parametrs. 

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 `NodeAddress` parametrs. 

`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](/manual/web_interface/frontend_sections/reports/status_of_zabbix#high-availability-nodes)*, kā arī, izpildot:

```
zabbix_server -R ha_status
```

Šī izpildlaika komanda ierakstīs pašreizējo HA klastera statusu Zabbix servera žurnālā (un stdout):

![](../../../../assets/en/manual/config/runtime_ha_status.png){width="600"}

[comment]: # ({/5a71328e-23e81771})

[comment]: # ({3c7b24e0-3e9035e5})
##### 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ā).

![](../../../../assets/en/manual/config/frontend_conf_server_port.png){width="600"}

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.

[comment]: # ({/3c7b24e0-3e9035e5})

[comment]: # ({892555c1-d47b6ef3})
##### 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](/manual/appendix/config/zabbix_proxy) parametrā, atdalot tos ar **komatu**.

```
Server=zabbix-node-01,zabbix-node-02
```

Aktīvam starpniekserverim mezglu nosaukumi ir jānorāda starpniekservera [Server](/manual/appendix/config/zabbix_proxy) parametrā, atdalot tos ar **semikolu**.
```
Server=zabbix-node-01;zabbix-node-02
```

[comment]: # ({/892555c1-d47b6ef3})

[comment]: # ({c15c2c86-f2fc0e77})
##### Aģenta konfigurācija

HA klastera mezgli (serveri) ir jānorāda Zabbix aģenta vai Zabbix aģents 2 konfigurācijā.

![](../../../../assets/en/manual/config/zabbix_ha_agent.png)

Lai iespējotu pasīvos pārbaužu veidus, mezglu nosaukumi ir jānorāda Server [parametrā](/manual/appendix/config/zabbix_agentd), 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ā](/manual/appendix/config/zabbix_agentd).
Ņ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
```

[comment]: # ({/c15c2c86-f2fc0e77})

[comment]: # ({e3a57230-311341fc})
### 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
```

[comment]: # ({/e3a57230-311341fc})

[comment]: # ({7be5c016-593144b8})
### HA klastera pārvaldība

Pašreizējo HA klastera statusu var pārvaldīt, izmantojot īpašās [izpildlaika vadības](/manual/concepts/server#runtime-control) 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 no `ha_status` izpildes 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](/manual/web_interface/frontend_sections/reports/status_of_zabbix#high-availability-nodes)*.
-   *Sistēmas informācija* paneļa logrīkā.
-   Izmantojot servera `ha_status` izpildlaika 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.

[comment]: # ({/7be5c016-593144b8})

[comment]: # ({7cfdcc75-82cd7e56})
### HA klastera atspējošana

Lai atspējotu augstas pieejamības klasteri:

1. Izveidojiet konfigurācijas failu rezerves kopijas.
2. Apturiet gaidstāves mezglus.
3. No aktīvā primārā servera noņemiet parametru HANodeName.
4. Pārstartējiet primāro serveri (tas tiks palaists patstāvīgā režīmā).

[comment]: # ({/7cfdcc75-82cd7e56})

[comment]: # ({48f303fd-7d944a36})
### HA klastera jaunināšana

Lai veiktu HA mezglu galvenās versijas jaunināšanu:

1. Apturiet visus mezglus.
2. Izveidojiet pilnu datubāzes dublējumu.
3. 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.
4. Atlasiet vienu mezglu, kas veiks datubāzes jaunināšanu, mainiet tā konfigurāciju uz atsevišķu režīmu, komentējot `HANodeName`, un [jauniniet](/manual/installation/upgrade) to.
5. Pārliecinieties, ka datubāzes jaunināšana ir pilnībā pabeigta (*Sistēmas informācijai* jāparāda, ka Zabbix serveris darbojas).
6. Restartējiet mezglu HA režīmā.
7. 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ā.

[comment]: # ({/48f303fd-7d944a36})

[comment]: # ({de56f189-f4d3143a})
### Ī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.

[comment]: # ({/de56f189-f4d3143a})
