[comment]: # translation:outdated

[comment]: # ({4eeeebad-150822ec})
# 2. Распределение нагрузки и отказоустойчивость прокси

[comment]: # ({/4eeeebad-150822ec})

[comment]: # ({c68d32c6-9db44722})
#### Обзор

Чтобы разрешить распределение нагрузки и отказоустойчивость, Zabbix прокси-серверы могут быть организованы в группы прокси.

Распределение нагрузки и отказоустойчивость прокси-серверов — это автоматическое перераспределение узлов сети между прокси-серверами в пределах группы прокси:

-   Если прокси выключается, его узлы сети будут перемещены на другие прокси, таким образом поддерживая отказоустойчивость прокси.
-   Если прокси-сервер имеет слишком высокое/низкое количество узлов сети по сравнению с другими прокси-серверами, его узлы сети будут перемещены на другие прокси-серверы, чтобы сбалансировать нагрузку на прокси.

Перераспределение узлов сети работает только между прокси-серверами в группе, которая удовлетворяет следующим условиям:

-   Прокси-серверы имеют версию 7.0 или новее.
-   [Версия прокси-сервера](/manual/appendix/compatibility#поддерживаемые-zabbix-прокси) соответствует версии Zabbix сервера. Если используется Zabbix агент (пассивный), то версия прокси должна соответствовать версии агента. Активные агенты требуют только версию Zabbix 7.0 или новее.
-   Группа прокси находится в [состоянии online](/manual/web_interface/frontend_sections/administration/proxy_groups).
-   Узлы сети настроены на [наблюдение через](/manual/config/hosts/host#настройка) группу прокси, а не через отдельные прокси-серверы.

::: noteclassic
Работоспособность группы прокси может отслеживаться при помощи [внутренних проверок](/manual/config/items/itemtypes/internal#proxy.group.a) любым узлом сети, назначенным на группу прокси.
Однако, для отслеживания работоспособности отдельного прокси-сервера в группе, назначьте узел сети на этот прокси; в противном случае результаты могут быть нецелостными.
:::

[comment]: # ({/c68d32c6-9db44722})

[comment]: # ({ca1e24c8-1abf84b3})
#### Перераспределение узлов сети

Распределение нагрузки и отказоустойчивость прокси управляются Zabbix сервером через процесс [proxy group manager](/manual/concepts/server#типы-процессов-и-потоки-сервера), который постоянно отслеживает состояние всех прокси-серверов в каждой группе прокси и распределение узлов сети на них.

Отказоустойчивость прокси в пределах группы обеспечивается через переключение прокси: при останове прокси его узлы сети немедленно перераспределяются на другие прокси.
Также происхоит и распределение нагрузки, поскольку узлы сети переназначаются на прокси с наименьшим числом назначенных на них узлов сети.

Кроме того, распределение нагузки прокси активируется, когда количество узлов сети прокси-сервера отличается от среднего по группе как минимум на 10 узлов сети и в 2 раза (превышение либо недостаток узлов сети).
Если дисбаланс сохраняется по истечении льготного периода (10 x [задержка переключения](#настройка-группы-прокси)), то группа прокси ставится в очередь на перераспределение узлов сети.

Процесс proxy group manager перераспределяет узлы сети, используя следующую логику:

1. Вычислить среднее число узлов сети на прокси-сервер.
2. Для прокси-серверов с превышением узлов сети — переместить превышающие узлы сети в пул неназначенных прокси-серверов.
3. Для прокси-серверов с недостатком узлов сети — посчитать, сколько узлов сети нужно для достижения баланса.
4. Убрать нужное число узлов сети от прокси-серверов с наибольшим количеством узлов сети.
5. Переместить неназначенные узлы сети на прокси-серверы с наименьшим количеством узлов сети.

Примеры перераспределения узлов сети:

|Узлов сети на прокси-сервере|Среднее по группе|Переназначение узлов сети|
|-|-|-|
|100|50|Да|
|60|50|Нет|
|40|50|Нет|
|25|50|Да|
|15|5|Да|
|10|5|Нет|

::: noteimportant
Наличие менее чем 10 узлов сети, [наблюдаемых через](/manual/config/hosts/host#настройка) группу прокси, может привести к неравномерному распределению узлов сети между прокси-серверами в этой группе.
:::

[comment]: # ({/ca1e24c8-1abf84b3})

[comment]: # ({5515593f-ffeb9a46})
#### Настройка группы прокси

Для настройки группы прокси в веб-интерфейсе Zabbix:

1. Перейдите к *Администрирование → Группы прокси (Administration → Proxy groups)*
2. Нажмите *Создать группу прокси (Create proxy group)*

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

|Параметр|Описание|
|--|--------|
|*Имя (Name)*|Имя группы прокси-серверов.|
|*Период аварийного переключения*<br>*(Failover period)*|Период в секундах, в течение которого прокси-сервер в группе прокси должен связаться с сервером Zabbix, чтобы считаться онлайн (по умолчанию: 1m; диапазон: 10s-15m). Если прокси не связывается в течение этого периода, состояние прокси меняется на *Офлайн (Offline)*, и его узлы сети немедленно перераспределяются по другим прокси. Распределение нагрузки прокси начинается по истечении этого 10-кратного периода.<br>Поддерживаются суффиксы времени (например, 30s, 1m) и пользовательские макросы.|
|*Минимальное количество прокси*<br>*(Minimum number of proxies)*|Наименьшее число [онлайн прокси-серверов](/manual/web_interface/frontend_sections/administration/proxies), требующихся для поддержания [группы прокси онлайн](/manual/web_interface/frontend_sections/administration/proxy_groups) (по умолчанию: 1; диапазон: 1-1000).<br>Поддерживаются пользовательские макросы.<br><br>Это значение должно быть меньше общего числа прокси-серверов в группе. Например, в группе из 10 прокси, настройка минимума в 10 приведёт к тому, что группа перейдёт в офлайн при сбое любого из прокси-серверов. Обратите внимание, что онлайн-прокси в офлайн-группе продолжают нормально работать, но балансировка нагрузки и отказоустойчивость функционировать не будут.|
|*Описание (Description)*|Описание группы прокси.|
|*Прокси (Proxies)*|При редактировании группы с прокси-серверами отображается список — до пяти прокси-серверов (в виде ссылок или обычного текста, в зависимости от прав пользователя на прокси-серверы).|

[comment]: # ({/5515593f-ffeb9a46})

[comment]: # ({05d503b6-e520307a})
#### Настройка распределения нагрузки прокси

Чтобы использовать распределение нагрузки между прокси-серверами, требуется в веб-интерфейсе Zabbix настроить группу прокси (смотрите выше) и убедиться, что узлы сети [наблюдаются через](/manual/config/hosts/host#настройка) группу прокси, а не отдельные прокси-серверы (можно использовать [массовое обновление](/manual/config/hosts/hostupdate) узлов сети, чтобы переместить их от прокси-сервера в группу прокси).

При использовании Zabbix агентов также настройте их следующим образом:

-   Для [пассивных проверок](/manual/appendix/items/activepassive) — перечислите все прокси-серверы в группе прокси в параметре [Server](/manual/appendix/config/zabbix_agentd#server).
-   Для [активных проверок](/manual/appendix/items/activepassive) — рекомендуется перечислить все прокси-серверы в группе прокси либо Zabbix сервер в параметре [ServerActive](/manual/appendix/config/zabbix_agentd#serveractive).
    Обратите внимание, что с группой прокси работать в активном режиме будет только Zabbix агент версии 7.0 (или более поздней).

Если параметр `ServerActive` включает только один прокси-сервер из группы прокси (или Zabbix сервер), то агент всё ещё будет способен подключиться к правильному прокси-серверу.
Когда служба агента запустится и подключится к указанному прокси-серверу, агент получит и закэширует полный список IP прокси-серверов и их текущую загрузку в группе.
Затем активные проверки будут перенаправлены на правильный онлайн-прокси для этого узла сети, на основе текущего назначения «прокси-сервер — узел сети» в этой группе прокси.

::: notewarning
Наличие только одного прокси, указанного в параметре `ServerActive` Zabbix агента, может привести к потере данных мониторинга в случае, если агент запускается/перезапускается, пока указанный прокси недоступен.
:::

::: noteclassic
При использовании утилиты [Zabbix sender](/manual/concepts/sender), запросы с данными также перенаправляются на правильный онлайн-прокси для узла сети, на основе текущего назначения «прокси-сервер — узел сети» в этой группе прокси.
Однако, если вы отсылаете из одного файла значения нескольких узлов сети, используйте [опцию `-g`](/manpages/zabbix_sender), стобы предотвратить отсылку данных на неверный прокси.
:::

Zabbix агент также должен быть способен подключаться через брандмауэр ко всем прокси-серверам в группе прокси.
В противном случае активные проверки во время перенаправления либо переключения могут подвиснуть или завершиться неудачей. Например:

-   Во время активной проверки прокси-сервер может перенаправить агента на другой прокси. Если этот другой прокси заблокирован брандмауэром, коммуникация подвиснет при ожидании ответа.
-   В стабильных отказоустойчивых инсталляциях без недавних ребалансировок агенты могут никогда и не обращаться к резервным прокси. Если правила брандмауэра поменялись и не были протестированы, переключение может завершиться неудачей.

[comment]: # ({/05d503b6-e520307a})

[comment]: # ({2ad23a4a-61149717})
##### Тестирование балансировки нагрузки прокси

Чтобы протестировать балансировку нагрузки прокси:

1. Настройте группу прокси.
2. Убедитесь, что группа прокси находится в [состоянии онлайн](/manual/web_interface/frontend_sections/administration/proxy_groups).
3. Убедитесь, что узлы сети [наблюдаются через](/manual/config/hosts/host#настройка) группу прокси, а не отдельные прокси-серверы (для перемещения узлов сети от прокси-сервера к группе прокси можно использовать [массовое обновление](/manual/config/hosts/hostupdate) узлов сети).
4. Подождите несколько секунд для обновления конфигурации и распределения узлов сети между прокси-серверами в группе прокси. Наблюдайте за изменениями, обновляя список узлов сети в *Администрирование (Administration)* → [*Прокси (Proxies)*](/manual/web_interface/frontend_sections/administration/proxies).

[comment]: # ({/2ad23a4a-61149717})

[comment]: # ({541e455e-9e4321d3})
##### Важные замечания

-   [SNMP трапы](/manual/config/items/itemtypes/snmptrap) не поддерживаются прокси-серверами в группе прокси.
-   Проверки, зависящие от внешних настроек (например, скрипты для [внешних проверок](/manual/config/items/itemtypes/external) или настройки ODBC для [проверок баз данных](/manual/config/items/itemtypes/odbc_checks)) должны иметь одинаковую конфигурацию на всех прокси-серверах в группе прокси.
-   [Проверки баз данных](/manual/config/items/itemtypes/odbc_checks) требуют дополнительных разрешений на объектах/серверах баз данных.
-   Узлы сети VMware, [наблюдаемые через](/manual/config/hosts/host#настройка) группу прокси, будут случайным образом распределены между прокси-серверами в группе. Это приводит к тому, что каждый прокси кэширует все данные VMware, создавая в итоге дополнительную нагрузку на vCenter.
-   Узлы сети, созданные на основе данных авторегистрации от прокси-сервера в группе прокси, настраиваются на [наблюдение через](/manual/config/hosts/host#настройка) эту группу прокси. Однако, узлы сети, созданные на основе данных сетевого обнаружения от прокси-сервера в группе прокси, настраиваются на [наблюдение через](/manual/config/hosts/host#настройка) этот прокси-сервер.

[comment]: # ({/541e455e-9e4321d3})
