Zabbix Documentation 5.2

3.04.05.0 (current)| In development:5.2 (devel)| Unsupported:1.82.02.22.43.23.44.24.4Guidelines

User Tools

Site Tools


ru:manual:concepts:java

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ru:manual:concepts:java [2018/01/10 04:38]
neogan
ru:manual:concepts:java [2019/10/07 06:35]
Line 1: Line 1:
-==== 4 Java gateway ==== 
  
-=== Обзор === 
- 
-Начиная с Zabbix 2.0 появился новый демон Zabbix, называемый "​Zabbix Java gateway",​ обеспечивающий нативную поддержку мониторинга JMX приложений. Zabbix Java gateway - это демон написанный на языке Java. Когда Zabbix сервер хочет знать значение конкретного JMX счетчика узла сети, он опрашивает Zabbix Java gateway, который используя [[http://​java.sun.com/​javase/​technologies/​core/​mntr-mgmt/​javamanagement/​|API управления JMX]] опрашивает интересующее удаленное приложение. Приложению не требуется никакого дополнительного программного обеспечения,​ оно просто должно быть запущено с опцией командной строки ''​-Dcom.sun.management.jmxremote''​. 
- 
-Java gateway принимает входящие подключения от Zabbix сервера или прокси и может быть использован только как "​пассивный прокси"​. Но в отличии от Zabbix прокси,​ Java gateway может использоваться с Zabbix прокси (тогда как один Zabbix прокси не может работать через другой Zabbix прокси). Доступ к каждому Java gateway настраивается непосредственно в файле конфигурации Zabbix сервера или прокси,​ таким образом только один Java gateway может быть настроен на Zabbix сервере или Zabbix прокси. Если у узла сети есть элементы данных типа **JMX агент** и элементы данных других типов, то только элементы данных **JMX агент** будут запрошены через Java gateway. 
- 
-Когда элемент данных должен быть обновлен через Java gateway, Zabbix сервер или прокси подключается к Java gateway и запрашивает значение,​ Java gateway в свою очередь запрашивает это значение и возвращает серверу или прокси. Таким образом,​ Java gateway никакие значения не кэширует. 
- 
-У Zabbix сервера и прокси есть специальный тип процессов,​ которые подключается к Java gateway, их количество настраивается опцией **StartJavaPollers**. Внутренне,​ Java gateway запускается несколькими потоками,​ настраиваемыми опцией **START_POLLERS**. На стороне сервера,​ если соединение занимает более чем **Timeout** секунд,​ оно будет завершено,​ но Java gateway может оставаться занят получением значения JMX счетчика. Чтобы решить эту проблему,​ Java gateway начиная с Zabbix 2.0.15, Zabbix 2.2.10 и Zabbix 2.4.5 поддерживают опцию **TIMEOUT**,​ позволяющую указать время ожидания сетевых операций JMX. 
- 
-Zabbix сервер и прокси будут пытаться максимально объединить запросы к одной цели JMX (зависит от интервалов обновления элементов данных) и отправлять их в Java Gateway за одно подключение для лучшей производительности. 
- 
-Рекомендуется выставить значение **StartJavaPollers** меньшим или равным чем **START_POLLERS**,​ в противном случае могут возникнуть ситуации,​ когда потоков Java gateway может не хватить для обслуживания входящих запросов. 
- 
-Разделы ниже рассказывают о том как получить и запустить Zabbix Java gateway, как настроить Zabbix сервер (или Zabbix прокси) для использования Zabbix Java gateway в мониторинге JMX, и как настроить элементы данных Zabbix в Zabbix веб-интерфейсе,​ которые соответствуют конкретным JMX счетчикам. 
- 
-=== - Получение Java gateway === 
- 
-Имеется два способа получения Java gateway. Первый - это загрузка пакета Java gateway с веб-сайта Zabbix и второй - компиляция Java gateway из исходных кодов. 
- 
-== - Загрузка с веб-сайта Zabbix == 
- 
-Пакеты Zabbix Java gateway (для RHEL, Debian, Ubuntu) доступны для загрузки на странице [[http://​www.zabbix.com/​download.php]]. 
- 
-== - Сборка исходных кодов == 
- 
-Для того, чтобы скомпилировать Java gateway, сначала выполните скрипт ''​./​configure''​ с опцией ''​%%--enable-java%%''​. Желательно указать опцию ''​%%--prefix%%''​ для запроса пути установки отличную от умолчания /usr/local, потому что при установке Java gateway будет создано целое дерево каталогов,​ а не только один исполняемый файл. 
- 
-  $ ./configure --enable-java --prefix=$PREFIX 
- 
-Для компиляции и сборки Java gateway в JAR файл, выполните ''​make''​. Обратите внимание,​ что для этого шага исполняемые файлы ''​javac''​ и ''​jar''​ должны присутствовать в пути. 
- 
-  $ make 
- 
-Теперь у вас имеется файл zabbix-java-gateway-$VERSION.jar в src/​zabbix_java/​bin. Если вам удобно запускать Java gateway из src/​zabbix_java в каталога пакета,​ то вы можете перейти к инструкциям по настройке и запуску Java gateway. В противном случае убедитесь в наличии у вас достаточных привилегий для выполнения ''​make install''​. 
- 
-  $ make install 
- 
-=== - Обзор файлов из поставки Java gateway === 
- 
-Независимо от того как вы получили Java gateway, в итоге у вас должен быть набор скриптов,​ JAR файлом и файлами конфигурации в папке $PREFIX/​sbin/​zabbix_java. Назначение этих файлов изложено ниже. 
- 
-  bin/​zabbix-java-gateway-$VERSION.jar 
- 
-Собственно JAR файл Java gateway. 
- 
-  lib/​logback-core-0.9.27.jar 
-  lib/​logback-classic-0.9.27.jar 
-  lib/​slf4j-api-1.6.1.jar 
-  lib/​org-json-2010-12-28.jar 
- 
-Зависимости Java gateway: [[http://​logback.qos.ch/​|Logback]],​ [[http://​www.slf4j.org/​|SLF4J]],​ и библиотека [[https://​android.googlesource.com/​platform/​libcore/​+/​master/​json|Android JSON]] (Примечание:​ до Zabbix 2.2.5 использовалась библиотека [[http://​www.json.org/​|JSON.org]]). 
- 
-  lib/​logback.xml 
-  lib/​logback-console.xml 
-  
-Файлы конфигурации для Logback. 
- 
-  shutdown.sh 
-  startup.sh 
- 
-Скрипты для удобства запуска и остановки Java gateway. 
- 
-  settings.sh 
- 
-Файл конфигурации,​ который используется вышеупомянутыми скриптами запуска и остановки. 
- 
-=== - Настройка и запуск Java gateway === 
- 
-По умолчанию,​ Java gateway слушает порт 10052. Если вы планируете работу Java gateway на другом порту, то вы можете указать его в скрипте settings.sh. Смотрите описание [[:​ru/​manual/​appendix/​config/​zabbix_java|файла конфигурации Java gateway]] для получения сведений о том как указать эту и другие опции. 
- 
-<note warning>​Порт 10052 не [[http://​www.iana.org/​assignments/​service-names-port-numbers/​service-names-port-numbers.txt|зарегистрирован в IANA]].</​note>​ 
- 
-Выполнив настройки,​ вы можете запустить Java gateway, выполнив скрипт запуска:​ 
- 
-  $ ./​startup.sh 
- 
-Точно так же, если вам более не требуется Java gateway, выполните скрипт завершения работы для остановки Java gateway: 
- 
-  $ ./​shutdown.sh 
- 
-Обратите внимание,​ что в отличии от сервера и прокси,​ Java gateway легок и не требует наличия базы данных. 
- 
-=== - Настройка сервера для использования с Java gateway === 
- 
-Теперь,​ когда Java gateway запущен,​ вы должны указать Zabbix серверу где искать Zabbix Java gateway. Чтобы это сделать,​ укажите параметры JavaGateway и JavaGatewayPort в [[ru:​manual:​appendix:​config:​zabbix_server|файле конфигурации сервера]]. Если же узел сети на котором работает JMX приложение наблюдается через Zabbix прокси,​ то параметры соединения указываются в [[ru:​manual:​appendix:​config:​zabbix_proxy|файле конфигурации прокси]]. 
- 
-  JavaGateway=192.168.3.14 
-  JavaGatewayPort=10052 
- 
-По умолчанию,​ сервер на запускает процессы связанные с мониторингом JMX. Если же вы хотите использовать этот тип мониторинга,​ то вам нужно указать количество экземпляров Java поллеров. Вы можете это сделать таким же способом как и изменение количества поллеров и трапперов. 
- 
-  StartJavaPollers=5 
- 
-Не забудьте перезапустить сервер или прокси после того как закончите изменение настроек. 
- 
-=== - Отладка Java gateway === 
- 
-В случае возникновения каких-либо проблем с Java gateway или ​ 
-в случае,​ если сообщение об ошибке элемента данных в веб-интерфейсе недостаточно информативно,​ вы можете обратиться к файлу журнала Java gateway. ​ 
- 
-По умолчанию,​ Java gateway записывает журнал в файл /​tmp/​zabbix_java.log с уровнем журналирования "​инфо"​. Бывает,​ что этой информации недостаточно и требуется информация уровня журналирования "​отладка"​. Чтобы увеличить уровень журналирования,​ отредактируйте файл lib/​logback.xml и  
-измените атрибут "​level"​ тэга <​root>​ на "​debug": ​ 
- 
-  <root level="​debug">​ 
-    <​appender-ref ref="​FILE"​ /> 
-  </​root>​ 
- 
-Обратите внимание,​ что в отличии от Zabbix сервера или Zabbix прокси,​ вам не нужно перезапускать Zabbix Java gateway после изменения файла logback.xml - изменения в logback.xml будут применены автоматически. Когда вы завершите отладку,​ вы можете вернуть уровень журналирования обратно в "​info"​. 
- 
-Если вы хотите записывать журнал в другой файл или в совершенно другую среду такую как база данных,​ настройте файл logback.xml в соответствии с вашими потребностями. Обратитесь к [[http://​logback.qos.ch/​manual/​|Руководству по Logback]] для получения более подробных сведений. 
- 
-Иногда для отладки полезно запустить Java gateway как консольное приложение,​ а не как демон. Чтобы это сделать,​ закомментируйте переменную PID_FILE в settings.sh. Если PID_FILE не указан,​ скрипт startup.sh запускает Java gateway как консольное приложение,​ при этом Logback использует файл lib/​logback-console.xml,​ который не только выводит журнал в консоль,​ но и имеет уровень журналирования "​debug"​. 
- 
-В заключение,​ отметим,​ поскольку Java gateway использует SLF4J для журналирования,​ вы можете заменить Logback выбранным вами фреймворком,​ поместим соответствующий JAR файл в каталог lib. Обратитесь к [[http://​www.slf4j.org/​manual.html|Руководство по SLF4J]] для получения более подробных сведений.