Распределенный мониторинг с использованием прокси

Обзор

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

Прокси развертываются локально для сбора данных о производительности и доступности. Затем данные передаются на централизованный сервер.

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

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

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

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

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

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

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

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

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

Возможности прокси

При выборе использования или неиспользования прокси необходимо учитывать несколько факторов.

Proxy
Легковесный Да
GUI Нет
Работает независимо Да
Простое обслуживание Да
Автоматическое создание БД Да1
Локальное администрирование Нет
Готов для встроенного оборудования Да
Однонаправленные TCP-соединения Да
Централизованная конфигурация Да
Генерирует уведомления Нет

1 Функция автоматического создания БД работает только с SQLite. Для других поддерживаемых баз данных требуется ручная настройка.

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

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

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

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

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

Кроме того, когда использование кэша истории превышает 60%, сервер Zabbix в обычном режиме может отложить обработку отдельных прокси, если их загрузка данных была усечена из-за ограничений на объем загрузки. Это решение принимается в момент оценки сервером загрузки данных от прокси, поэтому оно не всегда сразу отражается на графиках использования кэша истории (внутренний элемент данных zabbix[wcache,history,pused] и интервал его обновления могут не зафиксировать кратковременные всплески).

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

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

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

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

Конфигурация

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

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

Вместо установки прокси в собственной инфраструктуре можно развернуть его в Zabbix Cloud. Для этого нажмите Create proxy in Cloud в разделе Administration > Proxies; Zabbix Cloud откроется в новой вкладке браузера. После создания узла прокси настройте прокси в веб-интерфейсе Zabbix, как описано ниже. Дополнительную информацию см. в разделе Настройка прокси Zabbix Cloud.

Чтобы настроить прокси в веб-интерфейсе Zabbix:

  1. Перейдите в раздел Administration > Proxies.
  2. Нажмите Create proxy.
  3. Введите параметры прокси в форме.

Parameter Description
Proxy name Введите имя прокси. Оно должно совпадать с именем в параметре Hostname файла конфигурации прокси.
Proxy group Выберите одну группу прокси для балансировки нагрузки/высокой доступности прокси.
Address for active agents Введите адрес, к которому должны подключаться отслеживаемые активные агенты или отправители. Поддерживается только агентами Zabbix версии 7.0 или более поздней.
Этот адрес используется для подключения как к активным, так и к пассивным прокси. Это поле доступно только в том случае, если в поле Proxy group выбрана группа прокси.
Address IP-адрес/DNS-имя для подключения.
Port Номер TCP-порта (по умолчанию 10051) для подключения. Поддерживаются пользовательские макросы.
Proxy mode Выберите режим прокси.
Active - прокси подключается к серверу Zabbix и запрашивает данные конфигурации
Passive - сервер Zabbix подключается к прокси
Примечание: при использовании активного прокси без шифрования соединений (конфиденциальных данных) данные конфигурации прокси могут стать доступными сторонам, имеющим доступ к порту траппера сервера Zabbix. Это возможно, поскольку любой пользователь может выдать себя за активный прокси и запросить данные конфигурации, если аутентификация не выполняется или адреса прокси не ограничены в поле Proxy address.
Proxy address Если указано, запросы от активного прокси принимаются только с IP-адресов из этого списка, разделённых запятыми, при необходимости в нотации CIDR, или с DNS-имён активного прокси Zabbix.
Это поле доступно только в том случае, если в поле Proxy mode выбран активный прокси. Макросы не поддерживаются.
Interface Введите сведения об интерфейсе пассивного прокси.
Это поле доступно только в том случае, если в поле Proxy mode выбран пассивный прокси.
Address IP-адрес/DNS-имя пассивного прокси.
Port Номер TCP-порта пассивного прокси (по умолчанию 10051). Поддерживаются пользовательские макросы.
Description Введите описание прокси.

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

Parameter Description
Connections to proxy Способ подключения сервера к пассивному прокси: без шифрования (по умолчанию), с использованием PSK (предварительно установленного ключа) или сертификата.
Connections from proxy Выберите типы соединений, разрешённых от активного прокси. Одновременно можно выбрать несколько типов соединений (это удобно для тестирования и перехода на другой тип соединения). По умолчанию используется «No encryption».
Issuer Разрешённый издатель сертификата. Сначала сертификат проверяется с помощью CA (центра сертификации). Если сертификат действителен и подписан CA, поле Issuer можно использовать для дополнительного ограничения разрешённых CA. Это поле необязательно и предназначено для случаев, когда в установке Zabbix используются сертификаты от нескольких CA.
Subject Разрешённый субъект сертификата. Сначала сертификат проверяется с помощью CA. Если сертификат действителен и подписан CA, поле Subject можно использовать, чтобы разрешить только одно значение строки Subject. Если это поле пусто, принимается любой действительный сертификат, подписанный настроенным CA.
PSK identity Строка идентификатора предварительно установленного ключа.
Не указывайте конфиденциальную информацию в идентификаторе PSK: он передаётся по сети в незашифрованном виде, чтобы сообщить получателю, какой PSK следует использовать.
PSK Предварительно установленный ключ (шестнадцатеричная строка). Максимальная длина: 512 шестнадцатеричных цифр (PSK размером 256 байт), если Zabbix использует библиотеку GnuTLS или OpenSSL, и 64 шестнадцатеричные цифры (PSK размером 32 байта), если Zabbix использует библиотеку mbed TLS (PolarSSL). Пример: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

Вкладка APM позволяет настроить мониторинг производительности приложений (APM) на прокси. Прокси может собирать телеметрические данные (трассировки, метрики и журналы), отправляемые приложениями или коллекторами OpenTelemetry по протоколу OpenTelemetry (OTLP/gRPC), и записывать эти данные в источник телеметрических данных.

Parameter Description
Data collection enabled Установите флажок, чтобы включить сбор телеметрических данных на прокси.
Перед включением сбора телеметрических данных установите для параметра StartAPMCollector значение 1 в файле конфигурации прокси (требуется прокси Zabbix с поддержкой APM).
Max messages per second Установите максимальное количество сообщений в секунду, принимаемых прокси:
Unlimited - принимать все входящие сообщения.
Custom - принимать до указанного количества сообщений в секунду.

Сообщение представляет собой запрос OTLP, отправленный приложением, коллектором OpenTelemetry или другим источником телеметрии. Его размер зависит от отправителя; например, коллектор OpenTelemetry может объединить тысячи спанов в одно сообщение, тогда как простое приложение может отправлять сообщения меньшего размера (например, по одному на трассировку).

Если ограничение превышено, прокси отвечает кодом состояния gRPC UNAVAILABLE (временная ошибка), поэтому отправитель может повторить отправку сообщения позднее в зависимости от своей конфигурации.
Resource attributes Укажите атрибуты ресурса, которые следует добавить к входящим телеметрическим данным выбранной категории (например, чтобы пометить все данные, полученные этим прокси, его окружением или регионом). Затем эти атрибуты можно использовать для фильтрации телеметрических данных, например в условиях элементов данных телеметрического запроса.

Если входящие данные уже содержат атрибут ресурса с тем же ключом, входящий атрибут сохраняется вместо указанного здесь.
Key Введите ключ атрибута (например, deployment.environment, cloud.region). Он должен быть уникальным для выбранной Category.
Value Введите значение атрибута (например, production, eu-central-1). Может быть пустым.
Category Выберите категорию входящих данных, к которым применяется атрибут: Traces, Metrics или Logs.

Вкладка Timeouts позволяет переопределить глобальные тайм-ауты для поддерживающих это типов элементов данных.

Parameter Description
Timeouts for item types Установите тайм-аут элемента данных (в зависимости от его типа):
Global - использовать глобальный тайм-аут (отображается в неактивном поле Timeout для каждого типа элемента данных);
Override - установить пользовательский тайм-аут (в поле Timeout для каждого типа элемента данных). Допустимый диапазон: 1 - 600 с (по умолчанию: наследуется из глобальных тайм-аутов). Поддерживаются суффиксы времени, например 30s, 1m, и пользовательские макросы.

Нажатие ссылки Global timeouts позволяет настроить глобальные тайм-ауты. Обратите внимание, что ссылка Global timeouts видна только пользователям типа Super admin, имеющим права на раздел веб-интерфейса Administration > General.

Обратите внимание: хотя тайм-ауты на уровне прокси переопределяют глобальные, они будут переопределены индивидуальными тайм-аутами элементов данных, если они настроены.

Если основной номер версии прокси не совпадает с основным номером версии сервера, рядом с параметром Timeouts for item types будет отображаться значок с сообщением при наведении: «Timeouts disabled because the proxy and server versions do not match». В таких случаях прокси будет использовать параметр Timeout из файла конфигурации прокси.

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

  • Refresh configuration - обновить конфигурацию прокси;
  • Clone - создать новый прокси на основе свойств существующего прокси;
  • Delete - удалить прокси.
Конфигурация узла сети

Вы можете указать, что отдельный узел сети должен отслеживаться прокси или группой прокси, в форме конфигурации узла сети, используя поле Monitored by.

Массовое обновление узлов сети — это еще один способ указать, что узлы сети должны отслеживаться прокси или группой прокси.