5. Java gateway

Обзор

Начиная с Zabbix 2.0, появился новый демон Zabbix, называемый «Zabbix Java gateway», обеспечивающий встроенную поддержку мониторинга JMX приложений. Zabbix Java gateway — это демон, написанный на языке Java. Когда Zabbix сервер хочет узнать значение конкретного JMX счетчика узла сети, он опрашивает Zabbix Java gateway, который, используя API управления JMX, опрашивает интересующее удалённое приложение. Приложению не требуется никакого дополнительного программного обеспечения, оно просто должно быть запущено с опцией командной строки -Dcom.sun.management.jmxremote.

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

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

Получение Java gateway

Вы можете установить Java gateway как из исходных кодов, так и из пакетов, которые можно загрузить с Zabbix веб-сайта.

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

Установка из Инструкции Инструкции
Исходных кодов Установка Настройка
Пакетов RHEL Установка Настройка
Пакетов Debian/Ubuntu Установка Настройка