[comment]: # translation:outdated

[comment]: # ({486cd6dc-fb8f0d5a})
# 1 Висока доступність

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

[comment]: # ({45336edb-ea8bc3db})
### Огляд

Висока доступність (HA) зазвичай потрібна в критичних інфраструктурах,
які практично не можуть дозволити собі простоїв. Тож, для будь-якого сервісу, який
може вийти з ладу, має бути передбачена можливість переключення на інший ресурс, 
у разі відмови поточного сервісу.

Zabbix пропонує **власне** рішення високої доступності, яке легко налаштувати 
і яке не потребує попереднього досвіду роботи з HA. Це вбудоване рішення може 
бути корисним як додатковий рівень захисту від програмних або апаратних збоїв 
сервера Zabbix або для зменшення часу простою під час технічного обслуговування.

У режимі високої доступності Zabbix, кілька Zabbix серверів працюють як вузли кластеру. 
Поки один Zabbix сервер у кластері активний, інші знаходяться в режимі очікування і 
готові взяти на себе роботу, в разі потреби.

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

Перехід на Zabbix HA не є незворотнім. Ви можете повернутися до режиму 
самостійної роботи в будь-який момент.

Дивіться також: [Деталі реалізації](#implementation-details)

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

[comment]: # ({c6caa06e-567d3671})
### Увімкнення високої доступності

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

[comment]: # ({1c1729d2-23e81771})
##### Запуск Zabbix сервера як вузла кластера

У [конфігурації](/manual/appendix/config/zabbix_server) сервера необхідно вказати два параметри,
щоб запустити Zabbix сервер як вузол кластера:

- Параметр **HANodeName** необхідно вказати для кожного Zabbix сервера,
який буде вузлом кластера високої доступності.

Це унікальний ідентифікатор вузла (наприклад, `zabbix-node-01`), за допомогою якого можна звертатися до сервера
у конфігураціях агента та проксі. Якщо ви не вкажете HANodeName, то сервер буде
запущено в автономному режимі.

- Для кожного вузла необхідно вказати параметр **NodeAddress**.

Параметр NodeAddress (адреса:порт) використовуватиметься web-інтерфейсом Zabbix для підключення
до активної ноди. NodeAddress має відповідати IP-адресі або FQDN імені відповідного Zabbix сервера.

Перезапустіть всі Zabbix сервери, після внесення змін до конфігураційних файлів. Тепер вони
будуть запущені як вузли кластера. Новий статус серверів можна побачити в розділі
*Звіти* → *[Інформація про систему](/manual/web_interface/frontend_sections/reports/status_of_zabbix#status_of_ha_cluster_nodes)*
а також за допомогою команди:

```
zabbix_server -R ha_status
```

Ця команда виведе поточний стан кластера високої доступності в log-файл Zabbix сервера (і в стандартний потік виводу):

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

[comment]: # ({/1c1729d2-23e81771})

[comment]: # ({847772ad-dd91a55a})
##### Підготовка web-інтерфейсу

Переконайтеся, що в конфігураційному файлі web-інтерфейсу ( знаходиться у `conf/zabbix.conf.php` 
в директорії з файлами веб-інтерфейсу) **не вказано** адреса:порт 
Zabbix сервера.

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

Web-інтерфейс Zabbix автоматично визначить активний вузол, зчитавши налаштування 
з таблиці вузлів у базі даних Zabbix. Адреса активного вузла 
буде використана як адреса Zabbix сервера.

[comment]: # ({/847772ad-dd91a55a})

[comment]: # ({2f714fac-d47b6ef3})
##### Конфігурація проксі

Вузли (сервери) кластера HA повинні бути вказані в конфігурації пасивного або активного Zabbix проксі.

Для пасивного проксі імена вузлів кластеру мають бути вказані в [параметрі](/manual/appendix/config/zabbix_proxy) Server
і розділені **комою**.

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

Для активного проксі імена вузлів кластеру мають бути вказані в [параметрі](/manual/appendix/config/zabbix_proxy) Server і 
розділені **крапкою з комою**.
```
Server=zabbix-node-01;zabbix-node-02
```

[comment]: # ({/2f714fac-d47b6ef3})

[comment]: # ({38a0f5af-f2fc0e77})
##### Конфігурація агента

Вузли (сервери) HA кластера мають бути вказані в конфігурації
Zabbix агента або Zabbix агента 2.

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

Щоб увімкнути пасивні перевірки, імена вузлів мають бути вказані в [параметрі](/manual/appendix/config/zabbix_agentd) Server і розділені **комою**.

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

Щоб увімкнути активні перевірки, імена вузлів мають бути вказані в [параметрі](/manual/appendix/config/zabbix_agentd) ServerActive. Зверніть увагу, що для активних перевірок, вузли одного кластеру повинні бути відокремлені від інших Zabbix серверів комою, а самі вузли повинні бути розділені **крапкою з комою**, наприклад:

```
ServerActive=zabbix-node-01;zabbix-node-02
```

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

[comment]: # ({7b57e8f3-66f96de6})
### Перехід на резервний вузол

Zabbix автоматично переключається на інший вузол, якщо активний вузол зупиняється. Для того, щоб відбулося переключення, принаймні один вузол повинен перебувати у стані очікування..

Як швидко відбуватиметься переключення? Усі вузли оновлюють свій час останнього доступу (і статус, якщо
він змінився) кожні 5 секунд. Отже:

- Якщо активний вузол вимикається та встигає повідомити про свій статус
як "зупинений", інший вузол займе його місце протягом **5 секунд**.

- Якщо активний вузол вимикається/стає недоступним без можливості оновлення
свого статусу, резервні вузли чекатимуть **затримку перемикання на інший ресурс** + 5 секунд

Затримку перемикання на інший ресурс можна налаштувати в діапазоні від 10 секунд до 15 хвилин (за замовчуванням одна хвилина). Щоб змінити затримку перемикання на інший ресурс, ви можете виконати команду:

```
zabbix_server -R ha_set_failover_delay=5m
```

[comment]: # ({/7b57e8f3-66f96de6})

[comment]: # ({d569fa29-593144b8})
### Керування кластером високої доступності

Поточним статусом кластера HA можна керувати за допомогою спеціальних опцій [контролю виконання](/manual/concepts/server#runtime_control):

- `ha_status` - виводити стан кластера HA в журнал Zabbix сервера (і в стандартний потік виводу)
- `ha_remove_node=target` - видалити вузол HA, що ідентифікується за його
    \<target\> - номер вузла в списку (номер може бути
    отримано з результату запуску ha\_status), наприклад:

```
zabbix_server -R ha_remove_node=2
```

Зверніть увагу, що активні/резервні вузли не можна видалити.

- `ha_set_failover_delay=delay` - встановлює затримку перемикання на інший ресурс (від 10 секунд до 15 хвилин;
    підтримуються суфікси часу, наприклад. 10s, 1m)

Статус вузла можна відстежувати:

- у *Звіти* → *[Інформація про систему](/manual/web_interface/frontend_sections/reports/status_of_zabbix#status_of_ha_cluster_nodes)*
- у віджеті інформаційної панелі *Інформація про систему*
- за допомогою опції контролю виконяння ha_status (див
    вище).

Для виявлення нод можна використовувати внутрішній елемент даних zabbix[cluster,discovery,nodes], оскільки він повертає JSON дані з інформацією про ноди високої доступності.

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

[comment]: # ({11fccad8-82cd7e56})
### Вимкнення кластера високої доступності

Щоб вимкнути кластер високої доступності:

- зробіть резервні копії конфігураційних файлів 
- зупиніть резервні вузли
- видаліть параметр HANodeName з активного основного сервера
- перезапустіть основний сервер (він запуститься в автономному режимі)

[comment]: # ({/11fccad8-82cd7e56})

[comment]: # ({15bf4a9f-ccc14383})
### Деталі реалізації

Кластер високої доступності (HA) - це опціональне рішення, яке підтримується Zabbix сервером. Власне рішення HA розроблено таким, щоб бути простим у використанні. Воно буде працювати між різними сайтами і не має специфічних вимог до баз даних, які розпізнає Zabbix. Користувачі можуть вільно використовувати власне рішення Zabbix HA або сторонні рішення HA, в залежності від того, що найкраще відповідає вимогам високої доступності в їхньому середовищі.

Рішення складається з кількох екземплярів zabbix\_server або вузлів.
Кожен вузол:

- налаштовується окремо
- використовує ту саму базу даних
- може мати декілька режимів: активний, очікування, недоступний, зупинений

Одночасно активним (працюючим) може бути лише один вузол. На резервному вузлі виконується лише один процес - HA manager. Резервний вузол не виконує збір, обробку даних або іншу звичайну серверну діяльність; він не прослуховує порти; він має мінімум підключень до баз даних.

Як активні, так і резервні вузли оновлюють час свого останнього доступу кожні 5 секунд. Кожен резервний вузол відстежує час останнього доступу активного вузла. Якщо час останнього доступу активного вузла перевищує "затримку перемикання на інший ресурс", резервний вузол стає активним і присвоює статус "недоступний" попередньому активному вузлу.

Активний вузол відстежує власне з'єднання з базою даних - якщо воно втрачається більш ніж на "затримку перемикання на інший ресурс - 5" секунд, він повинен зупинити всю подальшу роботу і перейти в режим очікування. Активний вузол також відстежує стан резервних вузлів - якщо час останнього доступу резервного вузла перевищує "затримку перемикання на інший ресурс" секунд, резервному вузлу присвоюється статус "недоступний".

Вузли розроблені таким чином, щоб бути сумісними між мінорними версіями Zabbix.

[comment]: # ({/15bf4a9f-ccc14383})

