[comment]: # ({00e36b2a-00e36b2a})
# 5. Java gateway

[comment]: # ({/00e36b2a-00e36b2a})

[comment]: # ({82908e23-02637e76})
#### Обзор

Начиная с Zabbix 2.0, появился новый демон Zabbix, называемый «Zabbix Java gateway», обеспечивающий встроенную поддержку мониторинга JMX приложений. Zabbix Java gateway — это демон, написанный на языке Java. Когда Zabbix сервер хочет узнать значение конкретного JMX счетчика узла сети, он опрашивает Zabbix Java gateway, который, используя [API управления JMX](http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/), опрашивает интересующее удалённое приложение. Приложению не требуется никакого дополнительного программного обеспечения, оно просто должно быть запущено с опцией командной строки `-Dcom.sun.management.jmxremote`.

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

[comment]: # ({/82908e23-02637e76})

[comment]: # ({b6c87e02-86132db7})
Когда элемент данных должен быть обновлён через Java gateway, Zabbix сервер или прокси подключается к Java gateway и запрашивает значение, Java gateway в свою очередь извлекает это значение и возвращает серверу или прокси. Таким образом, Java gateway никакие значения не кэширует.

У Zabbix сервера и прокси есть специальный тип процессов, которые подключаются к Java gateway, их количество настраивается опцией **StartJavaPollers**. Внутренне, Java gateway запускается в несколько потоков, что настраивается [опцией](/manual/appendix/config/zabbix_java) **START\_POLLERS**. На стороне сервера, если соединение занимает более чем **Timeout** секунд, оно будет завершено, но Java gateway может оставаться занят получением значения счетчика JMX. Чтобы решить эту проблему, в  Java gateway имеется опция **TIMEOUT**, позволяющая указать время ожидания сетевых операций JMX.

[comment]: # ({/b6c87e02-86132db7})

[comment]: # ({559656af-1fa4e4a3})
Для достижения лучшей производительности Zabbix сервер и прокси будут пытаться максимально объединить запросы к одной цели JMX (зависит от интервалов обновления элементов данных) и отправлять их в Java gateway за одно подключение.

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

Если Вы пытаетесь посредством Zabbix Java gateway контролировать Java приложения на базе Wildfly, то установите, пожалуйста, последний jboss-client.jar, который доступен на  [странице загрузки Wildfly](https://www.wildfly.org/downloads/).

[comment]: # ({/559656af-1fa4e4a3})

[comment]: # ({0905c34a-d8d54db7})
#### Получение Java gateway

Вы можете установить Java gateway как из исходных кодов, так и из пакетов, которые можно загрузить с [Zabbix веб-сайта](https://www.zabbix.com/ru/download).

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

|Установка из|Инструкции|Инструкции|
|-----------------|------------|------------|
|*Исходных кодов*|[Установка](/manual/installation/install#установка_java_gateway)|[Настройка](/manual/concepts/java/from_sources)|
|*Пакетов RHEL*|[Установка](/manual/installation/install_from_packages/rhel#установка_java_gateway)|[Настройка](/manual/concepts/java/from_rhel)|
|*Пакетов Debian/Ubuntu*|[Установка](/manual/installation/install_from_packages/debian_ubuntu#установка_java_gateway)|[Настройка](/manual/concepts/java/from_debian_ubuntu)|

[comment]: # ({/0905c34a-d8d54db7})
