Zabbix Documentation 4.4

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

Both sides previous revision Previous revision
Next revision
Previous revision
ru:manual:concepts:java [2015/12/20 15:26]
dotneft
ru:manual:concepts:java [2019/12/27 08:34] (current)
dotneft
Line 1: Line 1:
-==== -#5 Java gateway ====+==== 5 Java gateway ====
  
 === Обзор === === Обзор ===
Line 11: Line 11:
 У 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 сервера и прокси есть специальный тип процессов,​ которые подключается к 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 ​за одно подключение для лучшей производительности.+Zabbix сервер и прокси будут пытаться максимально объединить запросы к одной цели JMX (зависит от интервалов обновления элементов данных) и отправлять их в Java gateway ​за одно подключение для лучшей производительности.
  
-Рекомендуется выставить значение **StartJavaPollers** меньшим или равным чем **START_POLLERS**,​ в противном случае могут возникнуть ситуации,​ когда потоков Java gateway может не хватить для обслуживания входящих запросов.+Рекомендуется выставить значение **StartJavaPollers** меньшим или равным **START_POLLERS**,​ в противном случае могут возникнуть ситуации,​ когда потоков Java gateway может не хватить для обслуживания входящих запросов; в этом случае Java gateway воспользуется ThreadPoolExecutor.CallerRunsPolicy,​ что означает,​ что основной поток будет обслуживать входящий запрос и временно не сможет принимать любые новые запросы.
  
-Разделы ниже рассказывают о том как получить и запустить Zabbix Java gateway, как ​настроить Zabbix сервер (или Zabbix прокси) для использования Zabbix ​Java gateway ​в мониторинге JMX, и как настроить элементы данных Zabbix в Zabbix веб-интерфейсе,​ которые соответствуют конкретным JMX счетчикам.+=== Получение Java gateway ​===
  
-=== - Получение Java gateway ​===+Вы можете установить Java gateway ​как из исходных кодов, так и из пакетов,​ которые можно загрузить с [[http://​www.zabbix.com/​ru/​download.php|Zabbix веб-сайта]]. ​
  
-Имеется два способа получения Java gateway. Первый - это загрузка пакета Java gateway ​с веб-сайта Zabbix ​и второй - компиляция Java gateway из исходных кодов.+Используя приведённые ниже ссылки вы можете получить доступ к информации ​о том как получить и запустить Zabbix Java gateway, ​как ​настроить Zabbix сервер (или Zabbix прокси) на использование Zabbix ​Java gateway ​для JMX мониторинга, и как настроить элементы ​данных ​Zabbix в Zabbix веб-интерфейсе, ​которые соответствуют определенным счётчикам JMX.
  
-== - Загрузка ​с веб-сайта Zabbix == +становка из ^Инструкции ​^Инструкции ​^ 
- +|//Исходный код// ​ |[[:ru/manual/installation/install#​installing_java_gateway|Инсталляция]]  |[[:ru/manual/concepts/java/​from_sources|Установка]]  | 
-Пакеты Zabbix Java gateway (для RHEL, Debian, Ubuntu) доступны для загрузки на странице [[http://​www.zabbix.com/​download.php]]. +|//Пакеты ​RHEL/CentOS//  |[[:ru/manual/installation/install_from_packages/rhel_centos#​инсталляция_java_gateway|Инсталляция]]  |[[:ru/manual/​concepts/​java/​from_rhel_centos|Установка]]  ​| 
- +|//Пакеты ​Debian/Ubuntu//  |[[:ru/manual/​installation/​install_from_packages/debian_ubuntu#​инсталляция_java_gateway|Инсталляция]]  |[[:ru/manual/concepts/java/from_debian_ubuntu|Установка]] ​ |
-== - Сборка исходных кодов == +
- +
-Для того, чтобы ​скомпилировать 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]] для получения более подробных сведений.+