Назад | Перейти на главную страницу

Удаленный мониторинг JVM

Я пытался настроить JVM для удаленного мониторинга, но на сервере получал следующую ошибку:

The configuration has not been set for this resource due to : Invalid configuration: Error contacting resource: Can't connect to MBeanServer [{jmx.username=system, jmx.url=service:jmx:rmi:///jndi/rmi://localhost:6969/jmxrmi}]: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused]

Я хочу контролировать сервер tomcat, согласно документу, который я добавил строку подключения к серверу Mbean для удаленного мониторинга в файле /tomcat/bin/catalina.sh

[ $1 != "stop" ] && JAVA_OPTS="-Dcom.sun.management.jmxremote \ 
-Dcom.sun.management.jmxremote.port=6969 \ 
-Dcom.sun.management.jmxremote.ssl=false \ 
-Dcom.sun.management.jmxremote.authenticate=false $JAVA_OPTS" 
export JAVA_OPTS

После этого я перезапустил службу tomcat. Но не может видеть порт 6969, прослушивающий сервер. После перезапуска tomcat я проверил его с помощью "netstat -an | grep 696". Я думаю, что это проблема. Порт 6969 не используется на этой машине.

Наконец-то я заставил это работать. Я добавил настройку в переменную JAVA_OPTS в сценарии запуска tomcat, как показано ниже:

JAVA_OPTS="-Djava.awt.headless=true -Xms256m -Xmx1024m -XX:PermSize=512m -server -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

Ну вроде правильно на все 100%. Вот что я использую в своей среде Windows:

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=9988
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.ssl=false
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false

Я думаю, что проблема в двух элементах: Формат. Я вижу, ты поставил:

JAVA_OPTS = "- Dcom.sun.ma ...

Попробуйте дать этому первому элементу «пробел», как я делаю в своей конфигурации. U также может использовать эхо после генерации переменной $ JAVA_OPST и проверить правильность синтаксиса.

Другой - версия JVM. ¿1.5? ¿1.6? ¿JRE? ¿JDK? Попробуйте использовать самую обновленную версию (или хотя бы 1.6), если ваша установка вызывает проблемы.

Вы говорите, что пытаетесь подключиться к удаленному jmx. Тогда как получилось

mx.url = service: jmx: rmi: /// jndi / rmi: // localhost: 6969 / jmxrmi

localhost на машине будет работать ??. Я думаю, вам следует использовать IP-адрес удаленной машины вместо localhost.

1) загрузите jmxterm из: http://wiki.cyclopsgroup.org/jmxterm:download 2) скопируйте загруженный файл jar на тестовый сервер

3) ssh на тестовый сервер

4) на тестовом сервере запустите оболочку JMX:

$ java -jar jmxterm-1.0-alpha-4-uber.jar -l localhost: 20051

(Примечание: порт 20051 - это порт, который ваши серверы используют для JMX. Я просмотрел данные с одного из ваших серверов и увидел следующее в строке javacommand: -Dcom.sun.management.jmxremote.port = 20051. Если тестовый сервер использует другую командную строку java, вам нужно найти тот же параметр и номер порта, если он отличается)

5) Проверьте правильность подключения оболочки:

$> открыть

Вам будет что-то вроде:

rmi: //127.0.1.1 4, сервис: jmx: rmi: /// jndi / rmi: // localhost: 3333 / jmxrmi

6) Перечислите доступные Mbeans, скопируйте и вставьте результат и отправьте мне. Мы рассмотрим, что есть в наличии и что необходимо.

$> фасоль

7) Проверьте атрибуты, доступные для данного bean-компонента:

$> bean-компонент name_of_object from_output_above (ex.net.lag.kestrel: name = queues.weather_updates, type = Config)

bean установлен на net.lag.kestrel: name = queues.weather_updates, type = Config

$> информация

mbean = net.lag.kestrel: name = queues.weather_updates, type = Config

имя класса = net.lag.configgy.ConfigMap

атрибуты

% 0 - max_age (java.lang.String, rw)

% 1 - max_items (java.lang.String, rw)

операции

% 0 - void add_list (ключ java.lang.String, значение java.lang.String)

% 1 - void remove (ключ java.lang.String)