На странице

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 или прокси и может использоваться только как "пассивный прокси". В отличие от прокси 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, что означает, что основной поток будет обрабатывать входящий запрос и временно не будет принимать никакие новые запросы.

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