- PVSM.RU - https://www.pvsm.ru -
Проводя уже около 6 лет собеседования с Java-разработчиками заметил, что из приходивших кандидатов вообще никто не знает, что можно штатными средствами JDK удалённо мониторить состояние JVM с контейнерами сервлетов.
Поэтому далее пошаговый рецепт, как настроить и использовать эту замечательную возможность
Оба программных продукта расположена в %JAVA_HOME%/bin JDK и используют технологию JMX — Java Management Extensions [4]
ЛОГИН_ПОЛЬЗОВАТЕЛЯ1 ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ1
ЛОГИН_ПОЛЬЗОВАТЕЛЯ2 ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ2
Имя файлу можно дать любое на ваше усмотрение. Файл содержит логины и пароли в явном (к сожалению) виде пользователей, которые будут иметь право осуществлять удалённый мониторинг.
Например:
tartaren from_tarascon
portos passwordportos
ЛОГИН_ПОЛЬЗОВАТЕЛЯ1 ПРАВА_ДОСТУПА
ЛОГИН_ПОЛЬЗОВАТЕЛЯ2 ПРАВА_ДОСТУПА
Имя файлу можно дать любое на ваше усмотрение. ПРАВА_ДОСТУПА — одна из двух констант readwrite или readonly.
Например:
tartaren readonly
portos readwrite
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=ПОЛНЫЙ_ПУТЬ_К_remote.users -Dcom.sun.management.jmxremote.access.file=ПОЛНЫЙ_ПУТЬ_К_remote.acl -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=НОМЕР_ПОРТА -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<b>IP_АДРЕС"
IP_АДРЕС — IP-адрес Tomcat-сервера.
НОМЕР_ПОРТА — Номер порта, на котором Tomcat-сервер будет отвечать на запросы JConsole или JVisualVM.
Например:
* * *
fi
CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
shift
fi
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=/usr/share/apache-tomcat-7.0.22/conf/remote.users -Dcom.sun.management.jmxremote.access.file=/usr/share/apache-tomcat-7.0.22/conf/remote.acl -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7777 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=1.1.1.1"
if [ "$1" = "debug" ] ; then
if $os400; then
echo "Debug command not available on OS400"
exit 1
* * *
export MAVEN_OPTS="-Dcom.sun.management.jmxremote.password.file=/ПОЛНЫЙ_ПУТЬ_К_ФАЙЛУ/remote.users -Dcom.sun.management.jmxremote.access.file=/ПОЛНЫЙ_ПУТЬ_К_ФАЙЛУ/remote.acl -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=ПОРТ_ДЛЯ_МОНИТОРИНГА -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=IP_СЕРВЕРА"
mvn -P dev clean compile jetty:run
JConsole не сохраняет параметры подключения и их вводить надо каждый раз.
Если в контейнере сервлетов отключить парольную аутентификацию мониторинга, то подключаться можно командой jconsole IP_ИЛИ_ДОМЕН: НОМЕР_ПОРТА
Автор: gis
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/11829
Ссылки в тексте:
[1] официальные доки: http://docs.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html
[2] отлично написал: http://habrahabr.ru/search/?q=%5Bvisualvm%5D&target_type=posts
[3] TheShade: http://habrahabr.ru/users/theshade/
[4] Java Management Extensions: http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html
Нажмите здесь для печати.