1 Прокси

Обзор

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

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

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

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

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

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

Все данные, собранные прокси, до отправки их серверу хранятся локально. Таким образом, данные не теряются из-за временных проблем со связью с сервером. Параметры ProxyLocalBuffer и ProxyOfflineBuffer в файле конфигурации прокси управляют тем, как долго данные будут храниться локально.

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

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

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

[1] Чтобы убедиться, что агент запрашивает активные проверки у прокси (а не у сервера), именно прокси должен быть указан в параметре ServerActive файла конфигурации агента.

Защита от перегрузки

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

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

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

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

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

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

Вы можете использовать внутренний элемент данных zabbix[wcache,history,pused], чтобы скоррелировать это поведение сервера Zabbix с метрикой.

Настройка

Если у вас есть установленный и настроенный прокси, то самое время настроить его в веб-интерфейсе Zabbix.

Добавление прокси

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

  • Перейдите к: Администрирование → Прокси
  • Нажмите на Создать прокси

Параметр Описание
Имя прокси Введите имя прокси. Оно должно совпадать с именем параметра Hostname в файле конфигурации прокси.
Режим прокси Выберите режим прокси.
Активный - прокси будет подключаться к Zabbix серверу и запрашивать данные конфигурации
Пассивный - Zabbix сервер будет подключаться к прокси
Обратите внимание, что при использовании активного прокси без шифрованных коммуникаций (конфиденциальные) данные конфигурации прокси могут стать доступны лицам, имеющим доступ к порту траппера Zabbix сервера. Такое возможно потому, что кто угодно может представиться активным прокси и запросить данные конфигурации, если аутентификация не выполняется или адреса прокси не ограничены в поле Адрес прокси.
Адрес прокси Если задано значение, тогда запросы активного прокси принимаются только из этого списка разделённых запятыми IP адресов, опционально в CIDR нотации, или DNS имён активных Zabbix прокси.
Это поле доступно, только если в поле Режим прокси выбран активный прокси. Макросы не поддерживаются.
Эта опция поддерживается с версии Zabbix 4.0.0.
Интерфейс Укажите детали интерфейса для пассивного прокси.
Это поле доступно, только если в поле Режим прокси выбран пассивный прокси.
IP адрес IP адрес пассивного прокси (опционально).
DNS имя DNS имя пассивного прокси (опционально).
Подключение через Нажав соответствующую кнопку, вы сообщите Zabbix серверу что использовать для получения данных с прокси:
IP - Подключение к прокси по IP адресу (рекомендуется)
DNS - Подключение к прокси по DNS имени
Порт Номер TCP порта пассивного прокси (по умолчанию 10051).
Описание Введите описание прокси.

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

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

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

Массовое обновление узлов сети является ещё одним способом указать, что узлы сети должны наблюдаться через прокси.