2 Балансировка нагрузки прокси и высокая доступность

Обзор

Прокси Zabbix можно объединять в группы прокси, чтобы обеспечить балансировку нагрузки между прокси и высокую доступность.

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

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

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

  • Прокси работают на Zabbix 7.0 или новее.
  • Версия прокси соответствует версии сервера Zabbix. При использовании Zabbix агент (пассивный) версия прокси должна соответствовать версии агента. Для активных агентов требуется только Zabbix 7.0 или новее.
  • Группа прокси имеет состояние «в сети».
  • Узлы сети настроены на мониторинг через группу прокси, а не через отдельные прокси.

Состояние группы прокси можно отслеживать с помощью внутренних проверок на любом узле сети, назначенном группе прокси. Однако, чтобы отслеживать состояние отдельного прокси в группе, назначьте узел сети этому прокси; в противном случае результаты могут быть непоследовательными.

Перераспределение узлов сети

Балансировка нагрузки прокси и высокая доступность управляются сервером Zabbix через менеджер групп прокси, который непрерывно отслеживает состояние всех прокси в каждой группе прокси и распределение их узлов сети.

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

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

Менеджер групп прокси перераспределяет узлы сети, используя следующую логику:

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

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

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

Если группа прокси отслеживает менее 10 узлов сети, это может привести к неравномерному распределению узлов сети между прокси в группе.

Настройка группы прокси

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

  1. Перейдите в Administration > Proxy groups
  2. Нажмите Create proxy group

Параметр Описание
Name Имя группы прокси.
Failover period Период в секундах, в течение которого прокси в группе прокси должен обмениваться данными с сервером Zabbix, чтобы считаться доступным (по умолчанию: 1m; диапазон: 10s–15m). Если прокси не обменивается данными в течение этого периода, состояние прокси меняется на Offline, а его узлы сети немедленно перераспределяются на другие прокси. Балансировка нагрузки прокси начинается через 10 x этот период.
Поддерживаются суффиксы времени (например, 30s, 1m) и пользовательские макросы.
Minimum number of proxies Минимальное количество доступных прокси, необходимое для того, чтобы группа прокси оставалась доступной (по умолчанию: 1; диапазон: 1–1000).
Поддерживаются пользовательские макросы.

Это значение должно быть меньше общего количества прокси в группе. Например, в группе из 10 прокси установка минимального значения 10 приведет к тому, что группа станет недоступной при отказе любого прокси. Обратите внимание, что доступные прокси в недоступной группе продолжают работать нормально, но балансировка нагрузки/высокая доступность выполняться не будут.
Description Описание группы прокси.
Proxies Отображает список не более чем из пяти прокси (в виде ссылок или обычного текста, в зависимости от прав пользователя на прокси) при редактировании группы, содержащей прокси.

Настройка балансировки нагрузки прокси

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

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

  • Для пассивных проверок укажите все прокси группы прокси в параметре Server.
  • Для активных проверок рекомендуется указать все прокси группы прокси или сервер Zabbix в параметре ServerActive. Обратите внимание, что с группами прокси в активном режиме будет работать только Zabbix агент 7.0 (или более поздней версии).

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

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

При использовании Zabbix sender запросы данных также перенаправляются на правильный доступный прокси для узла сети на основе текущего назначения прокси-узел сети в группе прокси. Однако, если вы отправляете значения для нескольких узлов сети из входного файла, используйте опцию -g, чтобы предотвратить отправку данных не тому прокси.

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

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

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

  1. Настройте группу прокси.
  2. Убедитесь, что группа прокси находится в состоянии online.
  3. Убедитесь, что узлы сети отслеживаются группой прокси, а не отдельными прокси (вы можете использовать массовое обновление узлов сети, чтобы переместить узлы сети с прокси в группу прокси).
  4. Подождите несколько секунд, пока обновится конфигурация и узлы сети распределятся между прокси в группе прокси. Наблюдайте изменения, обновляя список узлов сети в Администрирование > Прокси.
Важные примечания
  • SNMP traps не поддерживаются прокси в группе прокси.
  • Проверки, зависящие от внешней конфигурации (например, скрипты для внешних проверок или конфигурация ODBC для проверок базы данных), должны иметь одинаковую конфигурацию на всех прокси в группе прокси.
  • Проверки базы данных требуют расширенных разрешений на объекте базы данных/сервере.
  • Узлы VMware, отслеживаемые группой прокси, будут случайным образом распределяться между прокси в группе. Это приводит к тому, что каждый прокси кэширует все данные VMware, создавая дополнительную нагрузку на vCenter.
  • Узлы сети, созданные на основе данных авторегистрации от прокси в группе прокси, настраиваются как отслеживаемые этой группой прокси. Однако узлы сети, созданные на основе данных сетевого обнаружения от прокси в группе прокси, настраиваются как отслеживаемые этим прокси.