На странице

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. На стороне сервера, если подключение занимает более "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].