[comment]: # ({0a2d9a93-0a2d9a93})
# 1. Прокси

[comment]: # ({/0a2d9a93-0a2d9a93})

[comment]: # ({2218065c-5a59cd81})
### Обзор

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

Кроме того, использование прокси — это самый простой способ осуществления централизованного и распределённого мониторинга, когда все агенты и прокси отчитываются перед одним Zabbix сервером и все данные собираются в централизованном порядке.

Zabbix прокси можно использовать для:

-   Мониторинга удалённых мест
-   Мониторинга в местах с ненадёжной связью
-   Снижения нагрузки на Zabbix сервер при мониторинге тысяч устройств
-   Упрощения обслуживания распределённого мониторинга

![](../../../assets/en/manual/proxies/proxy.png){width="500"}

Прокси требует только одно TCP соединение к Zabbix серверу. Таким образом, будет проще настроить обход брандмауэра, вам потребуется настроить только одно правило в брандмауэре.

::: noteimportant
Zabbix прокси должен использовать отдельную базу данных. Если указать базу данных Zabbix сервера, то конфигурация будет испорчена.
:::

Все данные, собранные прокси, до отправки их серверу хранятся локально. Таким образом, данные не теряются из-за временных проблем со связью с сервером. Параметры *ProxyLocalBuffer* и *ProxyOfflineBuffer* в [файле конфигурации прокси](/manual/appendix/config/zabbix_proxy)  управляют тем, как долго данные будут храниться локально.

::: noteimportant
Может случиться, что прокси, получающий изменения конфигурации из базы Zabbix сервера, будет иметь более свежую конфигурацию, чем сам Zabbix сервер, чья конфигурация может обновляться реже согласно значению параметра [CacheUpdateFrequency](/manual/appendix/config/zabbix_server). В результате, прокси начнёт сбор данных и будет отправлять эти данные Zabbix серверу, который будет их игнорировать. 
:::

Zabbix прокси — сборщик данных. Он не вычисляет триггеры, не обрабатывает события и не отправляет оповещения. Для обзора возможностей прокси, просмотрите следующую таблицу:

|Функция|<|Поддержка прокси|
|--------|-|------------------|
|Элементы данных|<|<|
|<|*Проверки через Zabbix агент*|**Да**|
|^|*Проверки через Zabbix агент (активный)*|**Да** ^1^|
|^|*Простые проверки*|**Да**|
|^|*Элементы данных траппера*|**Да**|
|^|*SNMP проверки*|**Да**|
|^|*SNMP трапы*|**Да**|
|^|*IPMI проверки*|**Да**|
|^|*JMX проверки*|**Да**|
|^|*Мониторинг файлов журналов*|**Да**|
|^|*Внутренние проверки*|**Да**|
|^|*Проверки через SSH*|**Да**|
|^|*Проверки через Telnet*|**Да**|
|^|*Внешние проверки*|**Да**|
|^|*Зависимые элементы данных*|**Да**|
|^|*Скриптовые элементы данных*|**Да**|
|Встроенный веб-мониторинг|<|**Да**|
|Предобработка значений элементов данных|<|**Да**|
|Обнаружение сети|<|**Да**|
|Авторегистрация активных агентов|<|**Да**|
|Низкоуровневое обнаружение|<|**Да** ^2^|
|Удалённые команды|<|**Да**|
|Вычисление триггеров|<|*Нет*|
|Обработка событий|<|*Нет*|
|Корреляция событий|<|*Нет*|
|Отправка оповещений|<|*Нет*|

::: noteclassic
\[1\] Чтобы убедиться, что агент запрашивает активные проверки у прокси (а не у сервера), именно прокси должен быть указан в параметре **ServerActive** файла конфигурации агента.<br>
\[2\] Для LLD Zabbix прокси выполняет только сбор и предварительную обработку
данных, а затем отправляет их на Zabbix сервер для дальнейшей обработки.
:::

[comment]: # ({/2218065c-5a59cd81})

[comment]: # ({7128dea0-737fe0c2})
##### Защита от перегрузки

Если Zabbix сервер был остановлен на какое-то время и прокси собрали много данных, а затем сервер запустился, он может оказаться перегруженным (использование кэша истории некоторое время остаётся на уровне 95-100%). 
Эта перегрузка может привести к падению производительности, где проверки обрабатываются медленнее, чем должны. Чтобы избежать проблем, возникающих из-за перегрузки кэша истории, была реализована защита от такого сценария.

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

Сервер Zabbix остановит приём данных от прокси, когда использование кэша истории достигнет 80%. Вместо этого эти прокси будут помещены в список троттлинга. Это будет продолжаться до тех пор, пока использование кэша не упадёт до 60%. Теперь сервер начнёт принимать данные от прокси по очереди, определенной списком троттлинга. Это означает, что первый прокси-сервер, который пытался выгрузить данные в течение периода троттлинга, будет обслужен первым, и до тех пор, пока он не завершит, сервер не будет принимать данные от других прокси.

Этот режим троттлинга будет продолжаться до тех пор, пока или использование кэша снова не достигнет 80%, или не упадет до 20%, или пока список троттлинга не опустеет. В первом случае сервер снова перестанет принимать данные прокси. В остальных двух случаях сервер начнёт работать как обычно, принимая данные со всех прокси.

Приведённую выше информацию можно проиллюстрировать следующей таблицей:

|Использование на запись<br>кэша истории|Режим сервера Zabbix|Действие сервера Zabbix|
|--|--|------|
|Достигает 80% |Ожидание|Останавливает приём данных от прокси, но поддерживает *список троттлинга* (упорядоченный по приоритету список прокси-серверов, с которыми надо будет связаться позже).|
|Падает до 60% |Троттлинг|Начинает обработку по списку троттлинга, но всё ещё не принимает данные от прокси.|
|Падает до 20% |Обычный|Удаляет список троттлинга и начинает обычный приём данных от прокси.|

Вы можете использовать [внутренний элемент данных](/manual/config/items/itemtypes/internal) `zabbix[wcache,history,pused]`, чтобы скоррелировать это поведение сервера Zabbix с метрикой.

[comment]: # ({/7128dea0-737fe0c2})

[comment]: # ({0f7bc9e3-e3203196})
### Настройка

Если у вас есть [установленный](/manual/installation/install) и [настроенный](/manual/appendix/config/zabbix_proxy) прокси, то самое время настроить его в веб-интерфейсе Zabbix.

[comment]: # ({/0f7bc9e3-e3203196})

[comment]: # ({09d71f46-a5555aaf})
##### Добавление прокси

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

-   Перейдите к: *Администрирование → Прокси (Administration → Proxies)*
-   Нажмите на *Создать прокси (Create proxy)*

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

|Параметр|<|Описание|
|-|----------|----------------------------------------|
|*Имя прокси*<br>*(Proxy name)*|<|Введите имя прокси. Оно должно совпадать с именем параметра *Hostname* в файле конфигурации прокси.|
|*Режим прокси*<br>*(Proxy mode)*|<|Выберите режим прокси.<br>**Активный (Active)** — прокси будет подключаться к Zabbix серверу и запрашивать данные конфигурации<br>**Пассивный (Passive)** — Zabbix сервер будет подключаться к прокси<br>*Обратите внимание*, что при использовании активного прокси без шифрованных коммуникаций (конфиденциальные) данные конфигурации прокси могут стать доступны лицам, имеющим доступ к порту траппера Zabbix сервера. Такое возможно потому, что, если аутентификация не выполняется или адреса прокси не ограничены в поле *Адрес прокси*, то кто угодно может представиться активным прокси и запросить данные конфигурации.|
|*Адрес прокси*<br>*(Proxy address)*|<|Если задано значение, тогда запросы активного прокси принимаются только из этого списка разделённых запятыми IP адресов, опционально в CIDR нотации, или DNS имён активных Zabbix прокси.<br>Это поле доступно, только если в поле *Режим прокси* выбран активный прокси. Макросы не поддерживаются.<br>Эта опция поддерживается с версии Zabbix 4.0.0.|
|*Интерфейс*<br>*(Interface)*|<|Укажите детали интерфейса для пассивного прокси.<br>Это поле доступно, только если в поле *Режим прокси* выбран пассивный прокси.|
| |*IP адрес*<br>*(IP address)*|IP адрес пассивного прокси (опционально).|
|^|*DNS имя*<br>*(DNS name)*|DNS имя пассивного прокси (опционально).|
|^|*Подключение через*<br>*(Connect to)*|Нажав соответствующую кнопку, вы сообщите Zabbix серверу, что использовать для получения данных с прокси:<br>**IP** — Подключение к прокси по IP адресу (рекомендуется)<br>**DNS** — Подключение к прокси по DNS имени|
|^|*Порт (Port)*|Номер TCP порта пассивного прокси (по умолчанию 10051).|
|*Описание (Description)*|<|Введите описание прокси.|

Вкладка **Шифрование** позволяет вам требовать шифрованных соединений с прокси.

|Параметр|Описание|
|--|--------|
|*Подключения к прокси*<br>*(Connections to proxy)*|Каким образом сервер подключается к пассивному прокси: без шифрования (по умолчанию), используя PSK (pre-shared key) или сертификат.|
|*Соединения с прокси*<br>*(Connections from proxy)*|Выберите, какой тип подключений разрешён с активного прокси. Можно выбрать несколько типов соединений одновременно (полезно при тестировании и переключении на другой тип соединения). По умолчанию — «Без шифрования».|
|*Издатель*<br>*(Issuer)*|Разрешённый эмитент сертификата. Сертификат сначала подтверждается CA (центром сертификации). Если он действительный, подписан с помощью CA, тогда можно использовать поле *Издатель* для более строгого ограничения разрешённых CA. Это поле опционально, предназначено для использования, если ваша Zabbix инсталляция использует сертификаты от нескольких CA.|
|*Тема*<br>*(Subject)*|Разрешённая тема сертификата. Сертификат сначала подтверждается CA. Если он действительный, подписан с помощью CA, тогда можно использовать поле *Тема*, чтобы разрешить только одно значение строки *Тема*. Если поле пустое, тогда принимается любой сертификат, подписанный настроенным CA.|
|*Идентификатор PSK*<br>*(PSK identity)*|Строка идентификации pre-shared key.<br>Не помещайте чувствительную информацию в идентификатор PSK, для информирования принимающей стороны об используемом PSK он передаётся по сети в нешифрованном виде.|
|*PSK*|Pre-shared key (строка в шестнадцатеричном формате). Максимальная длина: 512 шестнадцатеричных цифр (256-байт PSK), если Zabbix использует библиотеки GnuTLS или OpenSSL, 64 шестнадцатеричных цифры (32-байт PSK), если Zabbix использует библиотеку mbed TLS (PolarSSL). Пример: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952|

[comment]: # ({/09d71f46-a5555aaf})

[comment]: # ({96c17aaf-96c17aaf})
##### Настройка узлов сети

Указать, что конкретные узлы сети должны наблюдаться через прокси, вы можете в диалоге [настройки узла сети](/manual/config/hosts/host), используя поле *Наблюдение через прокси (Monitored by proxy)*.

![](../../../assets/en/manual/proxies/proxy_set.png)

[Массовое обновление](/manual/config/hosts/hostupdate) узлов сети является ещё одним способом указать, что узлы сети должны наблюдаться через прокси.

[comment]: # ({/96c17aaf-96c17aaf})
