2012-09-07 34 views
5

का उपयोग कर टॉमकैट 7 सर्वर पर रिमोट मॉनीटरिंग क्षमा करें अगर यह पहले पूछे गए प्रश्न का दोहराव है, लेकिन मैंने यहां और कहीं और दिए गए समाधानों का प्रयास किया है और उनमें से कोई भी मेरे लिए काम नहीं कर रहा है।विजुअलVM और एसएसएच

परिदृश्य: मुझे फ़ायरवॉल के पीछे रहने वाले टोमकैट 7 सर्वर को एक प्रोफ़ाइल प्रोफाइल करने की आवश्यकता है। मेरे पास केवल इस सर्वर के लिए एसएसएच पहुंच है। पसंद का प्रोफाइलिंग टूल Visualvm है और इन सर्वरों में एक GUI स्थापित नहीं है। सर्वर और मशीन दोनों मैं उबंटू 10.04 सर्वर एलटीएस से कनेक्ट करने की कोशिश कर रहा हूं।

संभव समाधान: SSH सुरंगों से अधिक VisualVM का उपयोग करते हुए लगते संभव हो सकता है और लिंक नीचे दिया गया यह कर के लिए एक बहुत विस्तृत मार्गदर्शिका देता है:

Tomcat+VisualVM+SSH guide

इसके अलावा, मैं एक jmxremote.access फ़ाइल को शामिल किया है

monitorRole readonly 
controlRole readwrite 

समस्या: निम्नांकित दो पंक्तियों के साथ बिलाव में/conf निर्देशिका के लिए मैं चरण का पालन किया लेख में प्रदान किया गया है और सबकुछ ठीक लगता है। मैं जेएमएक्सटरएम और गाइड में दिए गए कनेक्शन स्ट्रिंग का उपयोग कर स्थानीय रूप से सर्वर से (सर्वर से) में जेएमएक्स पोर्ट से कनेक्ट कर सकता हूं।

मैंने मार्गदर्शिका के अनुसार स्थानीय टोमकैट को एक परीक्षण के रूप में कॉन्फ़िगर किया और विजुअलवम को कनेक्शन स्ट्रिंग का उपयोग करके इस tomcat उदाहरण से कनेक्ट करने में कोई समस्या नहीं थी।

हालांकि, VisualVM एसएसएच सुरंग पर रिमोट सर्वर से कनेक्ट नहीं होगा। मैं JConsole की कोशिश की के रूप में यह आसान यह और बेहतर लॉगिंग की सुविधा है और मैं संदेशों के निम्न क्रम मिलती है: मैं गलत यहाँ क्या किया है के रूप में

FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] connecting... 
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] finding stub... 
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] connecting stub... 
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] getting connection... 
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] failed to connect: java.rmi.NoSuchObjectException: no such object in table 

कोई भी विचार? कोई भी मदद बहुत ही सराहनीय होगी!

धन्यवाद।

उत्तर

2

मुझे लगता है कि आपके पास जो मुद्दा है, जो संदर्भित आलेख वास्तव में संबोधित नहीं करता है, वह तरीका है कि जेएमएक्स-आरएमआई, या अधिक विशेष रूप से, आरएमआई स्वयं काम करता है। इस तरह आपका बिलाव सर्वर सेटअप: 12009:

  1. एक RMI remotable कि स्थानीय होस्ट से कनेक्ट करने के लिए कॉन्फ़िगर किया गया बनाया गया।
  2. स्थानीयहोस्ट के सुनवाई बंदरगाह के साथ स्थानीयहोस्ट पर एक आरएमआई रजिस्ट्री बनाई गई: 12008

जब आप स्थानीय रूप से चलाने के लिए, आप RMI रजिस्ट्री में ठूंठ देखने, और जब आप ठूंठ के खिलाफ आह्वान एक JMX कॉल जारी करने के लिए, यह स्थानीय होस्ट को जोड़ता है: 12009, कोई समस्या नहीं।

जब आप SSH के माध्यम से दूर से चलाने के लिए, मैं तुम्हें बंदरगाह 12,008 पर बिल्ला सर्वर से अपने रिमोट से टनल है संभालने हूँ, इसलिए जब आप अपने अनुरोध जारी, अपने दूरदराज केlocalhost:12008tomcatServer:12008 को टनल है के बाद से लॉग उत्पादन करने लगता है इंगित करता है कि आपको ठीक है।

अगला, आपके रिमोट स्टब के खिलाफ निष्पादित करता है जो बदले में localhost:12009 से कनेक्ट करने का प्रयास करता है और विफल रहता है।

मेरा अनुमान है कि आप सुरंग के लिए आपके रिमोट की स्थानीय होस्ट की जरूरत है: 12,008 और स्थानीय होस्ट: 12009 tomcatServer पर पुनः निर्देशित किया करने के लिए: 12,008 और tomcatServer: 12009।

इस के आसपास होने का एक और तरीका है RMI JMX प्रोटोकॉल खाई और Jolokia की तरह कुछ का उपयोग करने के लिए है (HTTP), JMX-WS (HTTP WebService) या JMXMP (सॉकेट)। यह आपके एसएसएच ट्यूनिंग जीवन को बहुत आसान बना देगा। यदि आप जेएमएक्सएमपी को आजमा देना चाहते हैं, तो मैंने OpenDMK नामक एक जिथब प्रोजेक्ट बनाया है जिसने मैवेनाइज्ड बिल्ड किया है। आप jmx-optional पैकेज चाहते हैं।

+0

निकोलस, उत्तर के लिए धन्यवाद। मेरे पास स्थानीयहोस्ट दोनों हैं: 12008 और लोकहोस्ट: 12009 टॉमकैट सर्वर पर संबंधित बंदरगाहों पर सुरंग। यह सिर्फ काम नहीं कर रहा है। मैंने जेएमएक्सएमपी को आजमाने के लिए अपना सुझाव लिया और यह शानदार काम करता है। धन्यवाद। – ChamaraG

0

आपके प्रश्न के लिए धन्यवाद! - मुझे वही मूलभूत आवश्यकता थी। क्षमा करें, मैं वास्तव में कुछ भी नया नहीं जोड़ रहा हूं लेकिन सोचा कि मैं उल्लेख करता हूं कि आपके द्वारा प्रदान किया गया संदर्भ: https://www.liferay.com/web/thiago.moreira/blog/-/blogs/how-to-monitor-liferay-tomcat-remotely-through-firewalls-using-visualvm अभी मेरे लिए अभी काम किया है (केवल बहुत ही मामूली समायोजन के साथ ही हाल के संस्करणों से संबंधित - टॉमकैट 7, और विजुअलVM 1.3.8)। मेरे मामले में टॉमकैट सेंटोस 6.6 पर चल रहा है, और निगरानी मशीन एक मैक है (शायद यह किसी और की मदद कर सकती है)। एक बार फिर धन्यवाद।