2015-05-06 9 views
10

के साथ दूरस्थ निगरानी मैं jvisualvm (या jconsole) के साथ एक दूरस्थ रूप से चल रहे जावा (वसंत बूट) अनुप्रयोग की निगरानी करना चाहता हूं। स्थानीय रूप से चलते समय, मैं प्रबंधित जेन्स को jvisualvm और jconsole दोनों में देख सकता हूं। दूरस्थ रूप से चलते समय मैं कनेक्ट नहीं कर सकता। मैंने इसे कई अलग-अलग जावा प्रक्रियाओं के साथ करने की कोशिश की (उदा। वसंत xd के साथ)। एसओ और Google पर यहां उत्तरों की तलाश में मदद नहीं मिली।विजुअलवम और जेएमएक्स

$ echo $JAVA_OPTS 
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.59.99 

तो मैं बस कार्यक्रम शुरू इस प्रकार है (इस वसंत xd के लिए है, लेकिन मैं अन्य जावा कार्यक्रमों के साथ एक ही समस्या का अनुभव):

ये (दूरस्थ होस्ट पर) मेरी JAVA_OPTS हैं।

$ ps -ef | grep single 
vagrant 22938 19917 99 06:38 pts/2 00:00:03 /usr/lib/jvm/java-8- oracle/jre/bin/java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.59.99 -Dspring.application.name=admin -Dlogging.config=file:/home/vagrant/spring-xd-1.1.0.RELEASE/xd/config///xd-singlenode-logger.properties -Dxd.home=/home/vagrant/spring-xd-1.1.0.RELEASE/xd -Dspring.config.location=file:/home/vagrant/spring-xd-1.1.0.RELEASE/xd/config// -Dxd.config.home=file:/home/vagrant/spring-xd-1.1.0.RELEASE/xd/config// -Dspring.config.name=servers,application -Dxd.module.config.location=file:/home/vagrant/spring-xd-1.1.0.RELEASE/xd/config//modules/ -Dxd.module.config.name=modules -classpath (...) 

दूरस्थ होस्ट (ubuntu linux VM) पर जावा संस्करण है:

$ bin/xd/xd-singlenode 

सर्वर प्रक्रिया विकल्प लेने के लिए लगता है

$ java -version 
java version "1.8.0_45" 
Java(TM) SE Runtime Environment (build 1.8.0_45-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) 

पर जावा संस्करण स्थानीय मशीन (मैक ओएस) थोड़ा अलग है:

$ java -version  
java version "1.8.0_40" 
Java(TM) SE Runtime Environment (build 1.8.0_40-b25) 
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode) 

इस प्रकार jvisualvm में मैं दूरस्थ कनेक्शन जोड़ने (दोनों SSL कनेक्शन के साथ या बिना की कोशिश की):

Error Message given by jvisualvm

मैं कनेक्ट कर सकते हैं:

enter image description here

यह त्रुटि संदेश jvisualvm मुझे देता है स्थानीय होस्ट से रिमोट होस्ट पर telnet 192.168.59.99:9010 के साथ, जब दूरस्थ प्रक्रिया चल रही है - तो यह फ़ायरवॉल समस्या प्रतीत नहीं होता है।

किसी भी मदद की अत्यधिक सराहना की जाती है।

+1

आप निम्नलिखित जावा विकल्पों के साथ प्रयास कर सकते हैं: - "Dcom.sun.management .jmxremote -Dcom.sun.management.jmxremote.port = 9010 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false -Djava.rmi.server.hostname = 192.168.59.99 "और Jconsole उपयोग सेवा में भी: jmx: rmi: /// jndi/rmi: //192.168.59.99: 9010/jmxrmi –

+0

आपने मेरा दिन बचाया। यह काम। क्या आप इसे एक उत्तर के रूप में पोस्ट कर सकते हैं, तो मैं खुशी से स्वीकार करूंगा। – user152468

+0

यह सुनकर खुशी हुई कि यह काम करता है! उत्तर के रूप में पोस्ट किया गया। –

उत्तर

13

निम्नलिखित JVM विकल्पों का उपयोग करें:

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.59.99 

JConsole में कनेक्ट करने के लिए निम्नलिखित का उपयोग करें:

service:jmx:rmi:///jndi/rmi://192.168.59.99:9010/jmxrmi 
+0

यह प्रमाणीकरण के बिना सुलभ बनाने के लिए एक बुरा विचार लगता है? –

+4

@ जैकज़ैच टिबल्स बहुत आम है, हालांकि, कॉर्पोरेट फ़ायरवॉल के अंदर – Kyrstellaine

संबंधित मुद्दे