не может подключиться к jmx jar процессу в контейнере Docker через jconsole - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь получить метрики из процесса Java, который выполняется в контейнере Docker.Процесс был запущен с помощью следующей команды, но попытка доступа к нему через jconsole в качестве теста приводит к повторной попытке подключения не удалось?

docker run -d --name=process-2-kafka --restart=always -p 22222:22222 -v 
/var/local/Blogs_Services/ProcessKafaka/:/program -w /program openjdk:8 
java
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=22222 - 
Dcom.sun.management.jmxremote.ssl=false - 
Dcom.sun.management.jmxremote.authenticate=false -jar testkafka.jar - 
Dcom.sun.management.jmxremote.local.only=false – 
Djava.rmi.server.hostname=192.www.xxx.yy – 
Dcom.sun.management.jmxremote.rmi.port=22222

Я добавил rmi.port и server.hostname после поиска в Интернетено все равно приводит к той же ошибке.У кого-нибудь есть решение этой проблемы?

1 Ответ

1 голос
/ 28 марта 2019

Соединения JMX с контейнерами печально печально известны.Две вещи, которые я бы посоветовал попробовать:

  1. Использовать отдельный порт для jmxremote.port и jmxremote.rmi.port (например, 22222 и 22223) и перенести оба этих порта в докер

  2. Установите для java.rmi.server.hostname имя, например, dockerhost, и добавьте dockerhost и IP-адрес машины, на которой размещен контейнер, к файлу хостов на всех машинах, на которых запущенDocker-контейнер, сам Docker-контейнер и компьютер, на котором вы запускаете jconsole.Затем, когда вы пытаетесь использовать JMX, используйте dockerhost в URL вместо IP-адреса.

Это может не решить вашу проблему, но пальцы скрещены, удачи!

...