Zabbix Documentation 2.0

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]
ru:manual:concepts:java [2015/05/26 07:17] (current)
Line 1: Line 1:
 +==== - #5 Java gateway ====
 +
 +=== Обзор ===
 +
 +Zabbix 2.0 добавлена нативная поддержка для мониторинга JMX приложений введением нового демона Zabbix, называемого "​Zabbix Java gateway"​. 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 прокси не могут быть связаны). Доступ к каждому 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 счетчика. Для решения данной проблемы,​ с версии Zabbix 2.0.15 есть опция **TIMEOUT** в Java gateway ​ которая позволяет установить таймаут для сетевых JMX операции.
 +
 +Zabbix сервер или прокси будет пытаться объединить запросы к одной цели JMX в одно целое, как можно больше (затрагивает интервалы элементов данных),​ и затем отправить их в Java Gateway за одно подключение для лучшей производительности.
 +
 +Предлагается выставить значение **StartJavaPollers** меньшим или равным чем **START_POLLERS**,​ в противном случае могут возникнуть ситуации,​ когда для входящих запросов может нехватить доступных потоков в Java gateway.
 +
 +Разделы ниже рассказывают о том как получить и запустить Zabbix Java gateway, как настроить Zabbix сервер (или Zabbix прокси) для использования Zabbix Java gateway в мониторинге JMX, и как настроить элементы данных Zabbix в Zabbix GUI, которые соответствуют конкретным 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''​ in your path.
 +
 +  $ 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]],​ и библиотека [[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 с уровнем журналирования "​info"​. Бывает,​ что этой информации недостаточно и существует потребность в информации с уровнем журналирования "​debug"​. Чтобы увеличить уровень журналирования,​ откройте файл lib/​logback.xml и измените уровень тэга аттрибута <​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]] для получения более подробных сведений.