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

| Параметр | Описание |
|---|---|
| Имя | Имя группы прокси. |
| Период переключения | Период в секундах, в течение которого прокси в группе прокси должен обмениваться данными с сервером Zabbix, чтобы считаться доступным (по умолчанию: 1m; диапазон: 10s-15m). Если прокси не обменивается данными в течение этого периода, его состояние изменяется на Недоступен, а узлы сети, за которые он отвечает, немедленно перераспределяются между другими прокси. Балансировка нагрузки прокси начинается после истечения периода, умноженного на 10. Поддерживаются суффиксы времени (например, 30s, 1m) и пользовательские макросы. |
| Минимальное количество прокси | Минимальное количество доступных прокси, необходимое для сохранения доступности группы прокси (по умолчанию: 1; диапазон: 1-1000). Поддерживаются пользовательские макросы. Это значение должно быть меньше общего количества прокси в группе. Например, если в группе 10 прокси, установка минимального значения 10 приведет к тому, что группа станет недоступной при сбое любого прокси. Обратите внимание, что доступные прокси в недоступной группе продолжают работать в обычном режиме, однако балансировка нагрузки и высокая доступность работать не будут. |
| Описание | Описание группы прокси. |
| Прокси | При редактировании группы, содержащей прокси, отображается список из не более чем пяти прокси (в виде ссылок или обычного текста в зависимости от прав пользователя на прокси). |
Настройка распределения нагрузки прокси
Чтобы использовать распределение нагрузки между прокси-серверами, требуется в веб-интерфейсе Zabbix настроить группу прокси (смотрите выше) и убедиться, что узлы сети наблюдаются через группу прокси, а не отдельные прокси-серверы (можно использовать массовое обновление узлов сети, чтобы переместить их от прокси-сервера в группу прокси).
При использовании Zabbix агентов также настройте их следующим образом:
- Для пассивных проверок — перечислите все прокси-серверы в группе прокси в параметре Server.
- Для активных проверок — рекомендуется перечислить все прокси-серверы в группе прокси либо Zabbix сервер в параметре ServerActive. Обратите внимание, что с группой прокси работать в активном режиме будет только Zabbix агент версии 7.0 (или более поздней).
Если параметр ServerActive включает только один прокси-сервер из группы прокси (или Zabbix сервер), то агент всё ещё будет способен подключиться к правильному прокси-серверу.
Когда служба агента запустится и подключится к указанному прокси-серверу, агент получит и закэширует полный список IP прокси-серверов и их текущую загрузку в группе.
Затем активные проверки будут перенаправлены на правильный онлайн-прокси для этого узла сети, на основе текущего назначения «прокси-сервер — узел сети» в этой группе прокси.
Наличие только одного прокси, указанного в параметре ServerActive Zabbix агента, может привести к потере данных мониторинга в случае, если агент запускается/перезапускается, пока указанный прокси недоступен.
При использовании утилиты Zabbix sender, запросы с данными также перенаправляются на правильный онлайн-прокси для узла сети, на основе текущего назначения «прокси-сервер — узел сети» в этой группе прокси.
Однако, если вы отсылаете из одного файла значения нескольких узлов сети, используйте опцию -g, стобы предотвратить отсылку данных на неверный прокси.
Zabbix агент также должен быть способен подключаться через брандмауэр ко всем прокси-серверам в группе прокси. В противном случае активные проверки во время перенаправления либо переключения могут подвиснуть или завершиться неудачей. Например:
- Во время активной проверки прокси-сервер может перенаправить агента на другой прокси. Если этот другой прокси заблокирован брандмауэром, коммуникация подвиснет при ожидании ответа.
- В стабильных отказоустойчивых инсталляциях без недавних ребалансировок агенты могут никогда и не обращаться к резервным прокси. Если правила брандмауэра поменялись и не были протестированы, переключение может завершиться неудачей.
Тестирование балансировки нагрузки прокси
Чтобы протестировать балансировку нагрузки прокси:
- Настройте группу прокси.
- Убедитесь, что группа прокси находится в состоянии онлайн.
- Убедитесь, что узлы сети наблюдаются через группу прокси, а не отдельные прокси-серверы (для перемещения узлов сети от прокси-сервера к группе прокси можно использовать массовое обновление узлов сети).
- Подождите несколько секунд для обновления конфигурации и распределения узлов сети между прокси-серверами в группе прокси. Наблюдайте за изменениями, обновляя список узлов сети в Администрирование (Administration) → Прокси (Proxies).
Важные замечания
- SNMP трапы не поддерживаются прокси-серверами в группе прокси.
- Проверки, зависящие от внешних настроек (например, скрипты для внешних проверок или настройки ODBC для проверок баз данных) должны иметь одинаковую конфигурацию на всех прокси-серверах в группе прокси.
- Проверки баз данных требуют дополнительных разрешений на объектах/серверах баз данных.
- Узлы сети VMware, наблюдаемые через группу прокси, будут случайным образом распределены между прокси-серверами в группе. Это приводит к тому, что каждый прокси кэширует все данные VMware, создавая в итоге дополнительную нагрузку на vCenter.
- Узлы сети, созданные на основе данных авторегистрации от прокси-сервера в группе прокси, настраиваются на наблюдение через эту группу прокси. Однако, узлы сети, созданные на основе данных сетевого обнаружения от прокси-сервера в группе прокси, настраиваются на наблюдение через этот прокси-сервер.