На странице

Java gateway

Обзор

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

Встроенная поддержка мониторинга приложений 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 или прокси Zabbix можно настроить только один Java gateway. Если на узле сети есть элементы данных типа JMX agent и элементы данных других типов, для получения данных в Java gateway будут передаваться только элементы данных типа JMX agent.

Когда элемент данных должен быть обновлен через 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].