На странице

5. Java gateway

Обзор

Java gateway Zabbix можно установить из исходного кода или пакетов.

Нативная поддержка мониторинга приложений JMX существует в виде демона Zabbix под названием "Zabbix Java gateway". Zabbix Java gateway — это демон, написанный на Java. Чтобы узнать значение определенного счетчика JMX на узле сети, сервер Zabbix выполняет запрос к Zabbix Java gateway, который использует API управления JMX для удаленного запроса к интересующему приложению. Для приложения не требуется установка дополнительного программного обеспечения, его нужно лишь запустить с параметром -Dcom.sun.management.jmxremote в командной строке.

Java gateway принимает входящие подключения от сервера Zabbix или прокси и может использоваться только как "passive proxy". В отличие от прокси Zabbix, его также можно использовать из прокси Zabbix (прокси Zabbix нельзя выстраивать в цепочку). Доступ к каждому Java gateway настраивается непосредственно в файле конфигурации сервера Zabbix или прокси, поэтому для каждого сервера Zabbix или прокси Zabbix может быть настроен только один Java gateway. Если у узла сети будут элементы данных типа JMX agent и элементы данных другого типа, только элементы данных типа JMX agent будут передаваться в Java gateway для получения значений.

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

Сервер Zabbix или прокси имеет специальный тип процессов, которые подключаются к Java gateway; их количество определяется параметром StartJavaPollers. Внутри Java gateway запускает несколько потоков, количество которых определяется параметром START_POLLERS option. На стороне сервера, если подключение занимает более "Timeout" секунд, оно будет завершено, но Java gateway при этом может все еще быть занят получением значения из счетчика JMX. Чтобы решить эту проблему, в Java gateway предусмотрен параметр TIMEOUT, который позволяет задать тайм-аут для сетевых операций JMX.

Сервер Zabbix или прокси будет по возможности объединять запросы к одной и той же цели JMX в один пул (с учетом интервалов элементов данных) и отправлять их в Java gateway в одном соединении для повышения производительности.

Рекомендуется, чтобы значение StartJavaPollers было меньше или равно START_POLLERS; в противном случае могут возникать ситуации, когда в Java gateway не будет доступных потоков для обработки входящих запросов. В таких случаях Java gateway использует ThreadPoolExecutor.CallerRunsPolicy, что означает, что основной поток будет обрабатывать входящий запрос и временно не будет принимать новые запросы.

Если вы пытаетесь отслеживать Java-приложения на базе Wildfly с помощью Java gateway Zabbix, установите последнюю версию jboss-client.jar, доступную на странице загрузки Wildfly.