2. Распределение нагрузки и отказоустойчивость прокси

Обзор

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

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

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

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

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

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

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

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

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

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

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

  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-кратного периода.
Поддерживаются суффиксы времени (например, 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. Убедитесь, что группа прокси имеет состояние «в сети».
  3. Убедитесь, что узлы сети контролируются группой прокси, а не отдельными прокси (для перемещения узлов сети от прокси в группу прокси можно использовать массовое обновление узлов сети).
  4. Подождите несколько секунд, пока обновится конфигурация и узлы сети будут распределены между прокси в группе прокси.

Изменения можно увидеть, обновив список узлов сети в разделе Администрирование > Прокси.

Важные примечания
  • SNMP-трапы не поддерживаются прокси в группе прокси.
  • Проверки, зависящие от внешней конфигурации (например, скрипты для внешних проверок или конфигурация ODBC для проверок базы данных), должны иметь одинаковую конфигурацию на всех прокси в группе прокси.
  • Для проверок базы данных требуются расширенные разрешения на объект или сервер базы данных.
  • Узлы VMware, мониторинг которых выполняется группой прокси, будут случайным образом распределены между прокси в группе. Это приводит к тому, что каждый прокси кэширует все данные VMware, создавая дополнительную нагрузку на vCenter.
  • Для узлов сети, созданных на основе данных автозапроса от прокси в группе прокси, в качестве прокси мониторинга устанавливается эта группа прокси. Однако для узлов сети, созданных на основе данных сетевого обнаружения от прокси в группе прокси, в качестве прокси мониторинга устанавливается этот прокси.