Балансировка нагрузки и высокая доступность прокси
Обзор
Прокси Zabbix можно объединять в группы прокси, чтобы обеспечить балансировку нагрузки между прокси и высокую доступность.
Балансировка нагрузки между прокси и высокая доступность — это автоматическое перераспределение узлов сети между прокси внутри группы прокси:
- Если прокси переходит в автономный режим, его узлы сети будут перемещены на другие прокси, тем самым обеспечивая высокую доступность прокси.
- Если у одного прокси количество узлов сети значительно больше или меньше, чем у других прокси, его узлы сети будут перемещены на другие прокси для балансировки нагрузки на прокси.
Перераспределение узлов сети работает только между прокси в группе, которые соответствуют следующим условиям:
- На прокси запущен Zabbix 7.0 или более поздней версии.
- Версия прокси совпадает с версией сервера Zabbix. Если используется агент Zabbix (пассивный), версия прокси должна совпадать с версией агента. Для активных агентов требуется только Zabbix 7.0 или более поздней версии.
- Группа прокси имеет состояние online.
- Узлы сети настроены на мониторинг через группу прокси, а не через отдельные прокси.
Состояние группы прокси можно отслеживать с помощью внутренних проверок с любого узла сети, назначенного группе прокси. Однако для мониторинга состояния отдельного прокси в группе назначьте узел сети этому прокси; в противном случае результаты могут быть непоследовательными.
Перераспределение узлов сети
Балансировка нагрузки прокси и высокая доступность управляются сервером Zabbix через менеджер группы прокси, который непрерывно отслеживает состояние всех прокси в каждой группе прокси и распределение их узлов сети.
Высокая доступность прокси внутри группы обеспечивается за счет отказоустойчивости прокси: когда прокси переходит в автономный режим, его узлы сети немедленно перераспределяются между другими прокси. Также выполняется балансировка нагрузки прокси, поскольку узлы сети переназначаются на прокси с наименьшим количеством назначенных узлов сети.
Кроме того, балансировка нагрузки прокси запускается, когда количество узлов сети на прокси отличается от среднего по группе как минимум на 10 узлов сети и в 2 раза (избыток узлов сети или дефицит узлов сети). Если дисбаланс сохраняется после периода ожидания (10 x задержка отказоустойчивости), группа прокси ставится в очередь на перераспределение узлов сети.
Менеджер группы прокси перераспределяет узлы сети по следующей логике:
- Вычислить среднее количество узлов сети на один прокси.
- Для прокси с избытком узлов сети — переместить лишние узлы сети в пул не назначенных прокси.
- Для прокси с дефицитом узлов сети — вычислить, сколько узлов сети нужно для достижения баланса.
- Удалить необходимое количество узлов сети с прокси, у которых их больше всего.
- Переместить не назначенные узлы сети на прокси с наименьшим количеством узлов сети.
Примеры перераспределения узлов сети:
| Узлов сети на прокси | Среднее по группе | Переназначение узлов сети |
|---|---|---|
| 100 | 50 | Да |
| 60 | 50 | Нет |
| 40 | 50 | Нет |
| 25 | 50 | Да |
| 15 | 5 | Да |
| 10 | 5 | Нет |
Наличие менее 10 узлов сети, контролируемых группой прокси, может привести к неравномерному распределению узлов сети между прокси в группе.
Настройка группы прокси
Чтобы настроить группу прокси в веб-интерфейсе Zabbix:
- Перейдите в Administration > Proxy groups
- Нажмите Create proxy group

| Parameter | Description |
|---|---|
| Name | Имя группы прокси. |
| Failover period | Период в секундах, в течение которого прокси в группе прокси должен связываться с сервером Zabbix, чтобы считаться онлайн (по умолчанию: 1m; диапазон: 10s-15m). Если прокси не связывается в течение этого периода, его состояние изменяется на Offline, а его узлы сети немедленно перераспределяются на другие прокси. Балансировка нагрузки прокси начинается через 10 x этот период. Поддерживаются суффиксы времени (например, 30s, 1m) и пользовательские макросы. |
| Minimum number of proxies | Минимальное количество онлайн-прокси, необходимое для сохранения группы прокси в состоянии online (по умолчанию: 1; диапазон: 1-1000). Поддерживаются пользовательские макросы. Это значение должно быть меньше общего числа прокси в группе. Например, в группе из 10 прокси установка минимального значения 10 приведет к переходу группы в состояние offline, если любой прокси выйдет из строя. Обратите внимание, что онлайн-прокси в группе, находящейся в состоянии offline, продолжают работать нормально, но балансировка нагрузки/высокая доступность выполняться не будут. |
| Description | Описание группы прокси. |
| Proxies | Отображает список до пяти прокси (в виде ссылок или обычного текста, в зависимости от прав пользователя на прокси) при редактировании группы с прокси. |
Настройка балансировки нагрузки прокси
Чтобы использовать балансировку нагрузки прокси, необходимо настроить группу прокси в веб-интерфейсе Zabbix (см. выше) и убедиться, что узлы сети контролируются группой прокси, а не отдельными прокси (можно использовать массовое обновление узлов сети, чтобы перенести их с прокси на группу прокси).
Если используется агент Zabbix, его также нужно настроить следующим образом:
- Для пассивных проверок перечислите все прокси группы прокси в параметре Server.
- Для активных проверок рекомендуется перечислить все прокси группы прокси или сервер Zabbix в параметре ServerActive. Обратите внимание, что с группами прокси в активном режиме будет работать только агент Zabbix 7.0 (или более поздней версии).
Если параметр ServerActive включает только один прокси из группы прокси (или сервер Zabbix), агент все равно сможет подключиться к нужному прокси.
Когда служба агента запускается и подключается к указанному прокси, агент получит и сохранит в кэше полный список IP-адресов прокси и их текущую нагрузку в группе.
Затем активные проверки будут перенаправляться на правильный онлайн-прокси для узла сети на основе текущего распределения узел сети-прокси в группе прокси.
Указание только одного прокси в параметре ServerActive агента Zabbix может привести к потере данных мониторинга, если агент будет запущен или перезагружен, когда указанный прокси находится в автономном режиме.
При использовании Zabbix sender запросы данных также перенаправляются на правильный онлайн-прокси для узла сети на основе текущего распределения узел сети-прокси в группе прокси.
Однако если вы отправляете значения нескольких узлов сети из входного файла, используйте параметр -g, чтобы предотвратить отправку данных на неправильный прокси.
Агент Zabbix также должен иметь возможность подключаться ко всем прокси в группе прокси через межсетевой экран. В противном случае активные проверки могут зависать или завершаться сбоем во время перенаправления или отказоустойчивого переключения. Например:
- Во время активных проверок прокси может перенаправить агента на другой прокси. Если этот прокси заблокирован межсетевым экраном, обмен данными будет зависать в ожидании ответа.
- В стабильных высокодоступных конфигурациях без недавнего перераспределения агенты могут никогда не обращаться к резервным прокси. Если правила межсетевого экрана были изменены и не тестировались, отказоустойчивое переключение может не сработать.
Тестирование балансировки нагрузки прокси
Чтобы протестировать балансировку нагрузки прокси:
- Настройте группу прокси.
- Убедитесь, что группа прокси находится в онлайн-состоянии.
- Убедитесь, что узлы сети контролируются группой прокси, а не отдельными прокси (для переноса узлов сети с прокси в группу прокси можно использовать массовое обновление узлов сети).
- Подождите несколько секунд, пока обновятся конфигурация и распределение узлов сети между прокси в группе прокси. Наблюдайте изменения, обновив список узлов сети в Administration > Прокси.
Важные примечания
- SNMP traps не поддерживаются прокси в группе прокси.
- Проверки, зависящие от внешней конфигурации (например, скрипты для external checks или конфигурация ODBC для database checks), должны иметь одинаковую конфигурацию на всех прокси в группе прокси.
- Database checks требуют расширенных прав на объект базы данных/сервер.
- Узлы сети VMware, контролируемые группой прокси, будут случайным образом распределены между прокси в группе. Это приводит к тому, что каждый прокси кэширует все данные VMware, что создает дополнительную нагрузку на vCenter.
- Узлы сети, созданные на основе данных автрорегистрации от прокси в группе прокси, настраиваются как контролируемые этой группой прокси. Однако узлы сети, созданные на основе данных сетевого обнаружения от прокси в группе прокси, настраиваются как контролируемые этим прокси.