इस दस्तावेज़ में, Apigee Edge for Private Cloud के ऑन-प्रिमाइसेस डिप्लॉयमेंट के साथ काम करने वाले कॉम्पोनेंट की मॉनिटरिंग की तकनीकों के बारे में बताया गया है.
खास जानकारी
Edge में सेवाओं के बारे में जानकारी पाने और उनकी स्थिति देखने के कई तरीके उपलब्ध हैं. यहां दी गई टेबल में, ज़रूरी शर्तें पूरी करने वाली हर सेवा के लिए की जा सकने वाली जांचों के टाइप की सूची दी गई है:
| Mgmt API | |||||||
| कॉम्पोनेंट | मेमोरी का इस्तेमाल [जेएमएक्स*] | सेवा की जांच | उपयोगकर्ता/संगठन/ डिप्लॉयमेंट का स्टेटस | axstatus | डेटाबेस की जांच | apigee-service स्टेटस |
apigee-monit** |
| मैनेजमेंट सर्वर | |||||||
| मैसेज प्रोसेसर | |||||||
| राऊटर | |||||||
| Qpid | |||||||
| Postgres | |||||||
| ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | |
|
* JMX का इस्तेमाल करने से पहले, आपको इसे चालू करना होगा. इसके लिए, JMX चालू करें में बताया गया तरीका अपनाएं. ** |
|||||||
पोर्ट और कॉन्फ़िगरेशन फ़ाइलों की निगरानी करना
हर कॉम्पोनेंट, अलग-अलग पोर्ट पर Java Management Extensions (JMX) और Management API मॉनिटरिंग कॉल के साथ काम करता है. यहां दी गई टेबल में, हर तरह के सर्वर के लिए JMX और Management API पोर्ट दिए गए हैं. साथ ही, कॉन्फ़िगरेशन फ़ाइल की लोकेशन भी दी गई हैं:
| कॉम्पोनेंट | जेएमएक्स पोर्ट | Management API पोर्ट | कॉन्फ़िगरेशन फ़ाइल की जगह |
|---|---|---|---|
| मैनेजमेंट सर्वर | 1099 | 8080 | $APIGEE_ROOT/customer/application/management-server.properties |
| मैसेज प्रोसेसर | 1101 | 8082 | $APIGEE_ROOT/customer/application/message-processor.properties |
| राऊटर | 1100 | 8081 | $APIGEE_ROOT/customer/application/router.properties |
| Qpid | 1102 | 8083 | $APIGEE_ROOT/customer/application/qpid-server.properties |
| Postgres | 1103 | 8084 | $APIGEE_ROOT/customer/application/postgres-server.properties |
कॉम्पोनेंट को मॉनिटर करने के लिए जेएमएक्स का इस्तेमाल करना
यहां दिए गए सेक्शन में, Edge कॉम्पोनेंट को मॉनिटर करने के लिए, जेएमएक्स का इस्तेमाल करने का तरीका बताया गया है.
JMX चालू करें
बिना पुष्टि या एसएसएल पर आधारित कम्यूनिकेशन के जेएमएक्स को चालू करने के लिए, यह तरीका अपनाएं. ध्यान दें: प्रोडक्शन सिस्टम में, सुरक्षा के लिए एन्क्रिप्ट (सुरक्षित) की गई पुष्टि और एसएसएल, दोनों को चालू करना चाहिए.
- सही कॉन्फ़िगरेशन फ़ाइल में बदलाव करें (
कॉन्फ़िगरेशन फ़ाइल रेफ़रंस देखें). अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
conf_system_jmxremote_enable=true
- कॉन्फ़िगरेशन फ़ाइल को सेव करें और पक्का करें कि इसका मालिकाना हक
apigee:apigeeके पास हो. - Edge के सही कॉम्पोनेंट को रीस्टार्ट करें
apigee-service edge-management-server restart
JMX को बंद करने के लिए, प्रॉपर्टी conf_system_jmxremote_enable को हटाएं या इसकी वैल्यू को false पर बदलें. इसके बाद, Edge के उस कॉम्पोनेंट को रीस्टार्ट करें जिसमें समस्या आ रही है.
JMX में पुष्टि करने की सुविधा
Edge for Private Cloud, फ़ाइलों में सेव की गई जानकारी का इस्तेमाल करके, पासवर्ड के आधार पर पुष्टि करने की सुविधा देता है. ज़्यादा सुरक्षा के लिए, पासवर्ड को हैश के तौर पर सेव किया जा सकता है.
- किसी edge-* कॉम्पोनेंट में जेएमएक्स ऑथेंटिकेशन की सुविधा चालू करने के लिए, सही कॉन्फ़िगरेशन फ़ाइल में बदलाव करें. इसके बारे में ज़्यादा जानने के लिए,
कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस देखें. अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो उसे बनाएं:
कॉन्फ़िगरेशन फ़ाइल को सेव करें और पक्का करें कि इसका मालिकाना हकconf_system_jmxremote_enable=true conf_system_jmxremote_authenticate=true conf_system_jmxremote_encrypted_auth=true conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
apigee:apigeeके पास हो. - पासवर्ड का SHA256 हैश बनाएं:
echo -n '
' | openssl dgst -sha256 - JMX उपयोगकर्ता के क्रेडेंशियल वाली
jmxremote.passwordफ़ाइल बनाएं:- इन फ़ाइलों को अपनी
$JAVA_HOMEडायरेक्ट्री से/opt/apigee/customer/application/<component>/डायरेक्ट्री में कॉपी करें:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password - फ़ाइल में बदलाव करें और नीचे दिए गए सिंटैक्स का इस्तेमाल करके, अपना JMX उपयोगकर्ता नाम और पासवर्ड जोड़ें:
USERNAME <HASH-PASSWORD>
- पक्का करें कि फ़ाइल का मालिकाना हक
apigeeके पास हो और फ़ाइल मोड 400 हो:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- इन फ़ाइलों को अपनी
- JMX उपयोगकर्ता की अनुमतियों वाली
jmxremote.accessफ़ाइल बनाएं:- अपनी $JAVA_HOME डायरेक्ट्री से इन फ़ाइलों को कॉपी करके,
/opt/apigee/customer/application/<component>/डायरेक्ट्री में चिपकाएंcp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/customer/application/management-server/jmxremote.access - फ़ाइल में बदलाव करें और अपना JMX उपयोगकर्ता नाम जोड़ें. इसके बाद, अनुमति (READONLY/READWRITE) जोड़ें
USERNAME READONLY
- पक्का करें कि फ़ाइल का मालिकाना हक
apigeeके पास हो और फ़ाइल मोड 400 हो:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.access chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
- अपनी $JAVA_HOME डायरेक्ट्री से इन फ़ाइलों को कॉपी करके,
- सही Edge कॉम्पोनेंट को रीस्टार्ट करें:
apigee-service edge-management-server restart
जेएमएक्स ऑथेंटिकेशन को बंद करने के लिए, conf_system_jmxremote_authenticate प्रॉपर्टी को हटाएं या वैल्यू को false में बदलें. इसके बाद, Edge के सही कॉम्पोनेंट को रीस्टार्ट करें.
जेएमएक्स में एसएसएल
edge-* कॉम्पोनेंट में एसएसएल पर आधारित जेएमएक्स को चालू करने के लिए:
- सही कॉन्फ़िगरेशन फ़ाइल में बदलाव करें (
कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस देखें). अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो उसे बनाएं:
कॉन्फ़िगरेशन फ़ाइल को सेव करें और पक्का करें कि इसका मालिकाना हकconf_system_jmxremote_enable=true conf_system_jmxremote_ssl=true conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore conf_system_javax_net_ssl_keystorepassword=<keystore-password>
apigee:apigeeके पास हो. - सर्वर कुंजी वाला कीस्टोर तैयार करें और उसे ऊपर दिए गए कॉन्फ़िगरेशन
conf_system_javax_net_ssl_keystoreमें दिए गए पाथ पर रखें. पक्का करें किapigee:apigee, कीस्टोर फ़ाइल को पढ़ सके. - सही Edge कॉम्पोनेंट को रीस्टार्ट करें:
apigee-service edge-management-server restart
एसएसएल पर आधारित जेएमएक्स को बंद करने के लिए, conf_system_jmxremote_ssl प्रॉपर्टी को हटाएं या इसकी वैल्यू को बदलकर false करें. Edge के सही कॉम्पोनेंट को रीस्टार्ट करें.
JConsole की मदद से मॉनिटर करना
JConsole (जेएमएक्स के साथ काम करने वाला टूल) का इस्तेमाल करके, हेल्थ चेक और प्रोसेस के आंकड़ों को मैनेज और मॉनिटर करें. JConsole की मदद से, अपने सर्वर से मिले JMX के आंकड़ों का इस्तेमाल किया जा सकता है. साथ ही, उन्हें ग्राफ़िकल इंटरफ़ेस में दिखाया जा सकता है. ज़्यादा जानकारी के लिए, JConsole का इस्तेमाल करना लेख पढ़ें.
अगर JMX के लिए एसएसएल चालू है, तो आपको JConsole को ट्रस्टस्टोर और ट्रस्टस्टोर पासवर्ड के साथ शुरू करना होगा. JConsole का इस्तेमाल करना देखें.
JConsole, JMX के ज़रिए उपलब्ध कराए गए JMX एट्रिब्यूट (MBeans) को मॉनिटर करने के लिए, इस सेवा यूआरएल का इस्तेमाल करता है:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
कहां:
- IP_address उस सर्वर का आईपी पता है जिसे आपको मॉनिटर करना है.
- port_number उस सर्वर का जेएमएक्स पोर्ट नंबर है जिसकी आपको निगरानी करनी है.
उदाहरण के लिए, मैनेजमेंट सर्वर को मॉनिटर करने के लिए, इस तरह की कमांड जारी करें. मान लें कि सर्वर का आईपी पता 216.3.128.12 है:
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
ध्यान दें कि इस उदाहरण में पोर्ट 1099 के बारे में बताया गया है. यह मैनेजमेंट सर्वर का जेएमएक्स पोर्ट है. अन्य पोर्ट के लिए, JMX और Management API के मॉनिटरिंग पोर्ट लेख पढ़ें.
यहां दी गई टेबल में, सामान्य जेएमएक्स आंकड़े दिखाए गए हैं:
| JMX MBeans | जेएमएक्स एट्रिब्यूट |
|---|---|
|
मेमोरी |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
इस्तेमाल |
|
कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस
यहां दिए गए सेक्शन में, JMX से जुड़े कॉन्फ़िगरेशन के लिए, Edge कॉम्पोनेंट कॉन्फ़िगरेशन फ़ाइलों में किए जाने वाले बदलावों के बारे में बताया गया है. ज़्यादा जानकारी के लिए, पोर्ट और कॉन्फ़िगरेशन फ़ाइलों को मॉनिटर करना लेख पढ़ें.
JMX कॉन्फ़िगरेशन को कॉम्पोनेंट की कॉन्फ़िगरेशन फ़ाइल में जोड़ना
- एज-कंपोनेंट पर JMX एजेंट चालू करें. डिफ़ॉल्ट रूप से, इसकी वैल्यू False होती है.
conf_system_jmxremote_enable=true
पासवर्ड के आधार पर पुष्टि करने की सुविधा के लिए कॉन्फ़िगरेशन
- पासवर्ड के आधार पर पुष्टि करने की सुविधा चालू करें. डिफ़ॉल्ट रूप से False पर सेट होती है.
conf_system_jmxremote_authenticate=true
- फ़ाइल को ऐक्सेस करने का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए. साथ ही, सिर्फ़ Apigee उपयोगकर्ता के पास इसे पढ़ने का ऐक्सेस होना चाहिए.
conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
- पासवर्ड फ़ाइल का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए. साथ ही, सिर्फ़ Apigee उपयोगकर्ता के पास इसे पढ़ने का ऐक्सेस होना चाहिए.
conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
- पासवर्ड को एन्क्रिप्ट (सुरक्षित) किए गए फ़ॉर्मैट में सेव करने की सुविधा चालू करें. डिफ़ॉल्ट रूप से False पर सेट होती है.
conf_system_jmxremote_encrypted_auth=true
एसएसएल पर आधारित JMX के लिए कॉन्फ़िगरेशन
- जेएमएक्स कम्यूनिकेशन के लिए एसएसएल चालू करें. डिफ़ॉल्ट रूप से False पर सेट होती है.
conf_system_jmxremote_ssl=true
- कीस्टोर का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए. साथ ही, सिर्फ़ Apigee उपयोगकर्ता के पास इसे पढ़ने का ऐक्सेस होना चाहिए.
conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
- कीस्टोर का पासवर्ड:
conf_system_javax_net_ssl_keystorepassword=changeme
वैकल्पिक जेएमएक्स कॉन्फ़िगरेशन
यहां दी गई वैल्यू डिफ़ॉल्ट वैल्यू हैं और इन्हें बदला जा सकता है.
- JMX पोर्ट. डिफ़ॉल्ट वैल्यू के बारे में यहां दी गई टेबल में बताया गया है.
conf_system_jmxremote_port=
- JMX RMI पोर्ट. डिफ़ॉल्ट रूप से, Java प्रोसेस किसी भी पोर्ट को चुन लेगी.
conf_system_jmxremote_rmi_port=
- रिमोट स्टब के लिए होस्ट का नाम. लोकलहोस्ट का डिफ़ॉल्ट आईपी पता.
conf_system_java_rmi_server_hostname=
- एसएसएल की मदद से, JMX रजिस्ट्री को सुरक्षित करें. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है. यह सिर्फ़ तब लागू होता है, जब एसएसएल चालू हो.
conf_system_jmxremote_registry_ssl=false
Management API की मदद से मॉनिटर करना
Edge में कई एपीआई शामिल हैं. इनका इस्तेमाल करके, अपने सर्वर पर सेवा की जांच की जा सकती है. साथ ही, अपने उपयोगकर्ताओं, संगठनों, और डिप्लॉयमेंट की जांच की जा सकती है. इस सेक्शन में, इन एपीआई के बारे में बताया गया है.
सेवा की जांच करना
Management API, आपकी सेवाओं से जुड़ी समस्याओं को मॉनिटर करने और उनका पता लगाने के लिए कई एंडपॉइंट उपलब्ध कराता है. इन एंडपॉइंट में ये शामिल हैं:
| एंडपॉइंट | ब्यौरा |
|---|---|
/servers/self/up |
यह जांच करता है कि कोई सेवा चल रही है या नहीं. इस एपीआई कॉल के लिए, आपको पुष्टि करने की ज़रूरत नहीं है. अगर सेवा चालू है, तो यह एंडपॉइंट यह रिस्पॉन्स दिखाता है: <ServerField> <Up>true</Up> </ServerField> अगर सेवा काम नहीं कर रही है, तो आपको इस तरह का जवाब मिलेगा (यह इस बात पर निर्भर करता है कि सेवा कौनसी है और आपने उसकी जांच कैसे की): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
सेवा के बारे में जानकारी दिखाता है. इसमें ये शामिल हैं:
इस एपीआई कॉल के लिए, आपको Apigee एडमिन क्रेडेंशियल से पुष्टि करनी होगी. |
इन एंडपॉइंट का इस्तेमाल करने के लिए, curl जैसी किसी सुविधा को चालू करें. इसके लिए, ऐसे निर्देश दें जिनमें इस सिंटैक्स का इस्तेमाल किया गया हो:
curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"कहां:
- host उस सर्वर का आईपी पता है जिसकी आपको जांच करनी है. अगर आपने सर्वर में लॉग इन किया है, तो "localhost" का इस्तेमाल किया जा सकता है. अगर आपने लॉग इन नहीं किया है, तो सर्वर का आईपी पता, उपयोगकर्ता नाम, और पासवर्ड डालें.
- port_number, उस सर्वर के लिए मैनेजमेंट एपीआई पोर्ट है जिसकी आपको जांच करनी है. यह हर तरह के कॉम्पोनेंट के लिए अलग पोर्ट होता है. उदाहरण के लिए, मैनेजमेंट सर्वर के मैनेजमेंट एपीआई का पोर्ट 8080 है. इस्तेमाल किए जाने वाले Management API पोर्ट नंबर की सूची देखने के लिए, जेएमएक्स और Management API मॉनिटरिंग पोर्ट देखें
जवाब का फ़ॉर्मैट बदलने के लिए, Accept हेडर को "application/json" या "application/xml" के तौर पर सेट किया जा सकता है.
नीचे दिए गए उदाहरण में, लोकलहोस्ट (पोर्ट 8081) पर राऊटर की स्थिति के बारे में जानकारी मिलती है:
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
नीचे दिए गए उदाहरण में, 216.3.128.12 (पोर्ट 8082) पर मौजूद मैसेज प्रोसेसर के बारे में जानकारी मिलती है:
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
उपयोगकर्ता, संगठन, और डिप्लॉयमेंट की स्थिति को मॉनिटर करना
Management API का इस्तेमाल करके, मैनेजमेंट सर्वर और मैसेज प्रोसेसर पर अपनी प्रॉक्सी के उपयोगकर्ता, संगठन, और डिप्लॉयमेंट की स्थिति को मॉनिटर किया जा सकता है. इसके लिए, ये कमांड जारी करें:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
जहां port_number, मैनेजमेंट सर्वर के लिए 8080 या मैसेज प्रोसेसर के लिए 8082 है.
इस कॉल के लिए, आपको सिस्टम एडमिन के उपयोगकर्ता नाम और पासवर्ड से पुष्टि करनी होगी.
सर्वर को सभी कॉल के लिए, "डिप्लॉय किया गया" स्टेटस दिखाना चाहिए. अगर ये तरीके काम नहीं करते हैं, तो यह तरीका अपनाएं:
- किसी भी तरह की गड़बड़ी के लिए सर्वर लॉग देखें. ये लॉग यहां मौजूद हैं:
- मैनेजमेंट सर्वर:
opt/apigee/var/log/edge-management-server - मैसेज प्रोसेसर:
opt/apigee/var/log/edge-message-processor
- मैनेजमेंट सर्वर:
- सर्वर को कॉल करके देखें कि वह ठीक से काम कर रहा है या नहीं.
- सर्वर को ईएलबी से हटाएं और फिर उसे रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
service_name की वैल्यू:
edge-management-serveredge-message-processor
apigee-service कमांड की मदद से स्टेटस देखना
सेवा चलाने वाले सर्वर में लॉग इन करने के बाद, apigee-service कमांड का इस्तेमाल करके, Edge की सेवाओं से जुड़ी समस्या हल की जा सकती है.
apigee-service की मदद से किसी सेवा की स्थिति देखने के लिए:
- सर्वर में लॉग इन करें और यह कमांड चलाएं:
/opt/apigee/apigee-service/bin/apigee-service service_name status
जहां service_name इनमें से कोई एक है:
- मैनेजमेंट सर्वर:
edge-management-server - मैसेज प्रोसेस करने वाला:
edge-message-processor - Postgres:
edge-postgres-server - Qpid:
edge-qpid-server - राउटर:
edge-router
उदाहरण के लिए:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- मैनेजमेंट सर्वर:
- अगर सेवा चालू नहीं है, तो उसे चालू करें:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- सेवा को रीस्टार्ट करने के बाद, देखें कि वह काम कर रही है या नहीं. इसके लिए, पहले इस्तेमाल किए गए
apigee-service statusकमांड का इस्तेमाल करें या Management API की मदद से मॉनिटर करें में बताए गए Management API का इस्तेमाल करें.उदाहरण के लिए:
curl -v http://localhost:port_number/v1/servers/self/up
जहां port_number, सेवा के लिए Management API पोर्ट है.
इस उदाहरण में यह माना गया है कि आपने सर्वर में लॉग इन किया है और होस्टनेम के तौर पर "localhost" का इस्तेमाल किया जा सकता है. Management API की मदद से, सर्वर की स्थिति की जांच करने के लिए, आपको सर्वर का आईपी पता बताना होगा. साथ ही, एपीआई कॉल में सिस्टम एडमिन का उपयोगकर्ता नाम और पासवर्ड शामिल करना होगा.
Postgres मॉनिटरिंग
Postgres में कई ऐसी सुविधाएं हैं जिनका इस्तेमाल करके, इसका स्टेटस देखा जा सकता है. इन यूटिलिटी के बारे में, यहां दिए गए सेक्शन में बताया गया है.
Postgres पर संगठन और एनवायरमेंट की जांच करना
Postgres सर्वर पर शामिल किए गए संगठन और एनवायरमेंट के नाम देखे जा सकते हैं. इसके लिए, यह curl कमांड दें:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
सिस्टम में संगठन और एनवायरमेंट का नाम दिखना चाहिए.
आंकड़ों की स्थिति की पुष्टि करना
Postgres और Qpid के Analytics सर्वर की स्थिति की पुष्टि करने के लिए, यह curl कमांड जारी करें:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
सिस्टम को सभी आंकड़ों के सर्वर के लिए, 'सफल' स्टेटस दिखाना चाहिए. यहां दिए गए उदाहरण में, इसे दिखाया गया है:
{
"environments" : [ {
"components" : [ {
"message" : "success at Thu Feb 28 10:27:38 CET 2013",
"name" : "pg",
"status" : "SUCCESS",
"uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]"
}, {
"message" : "success at Thu Feb 28 10:29:03 CET 2013",
"name" : "qs",
"status" : "SUCCESS",
"uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]"
} ],
"message" : "",
"name" : "prod"
} ],
"organization" : "acme",
"status" : "SUCCESS"
}PostgreSQL डेटाबेस
इस सेक्शन में, Postgres डेटाबेस की निगरानी करने के लिए इस्तेमाल की जा सकने वाली तकनीकों के बारे में बताया गया है.
check_postgres.pl स्क्रिप्ट का इस्तेमाल करना
PostgreSQL डेटाबेस को मॉनिटर करने के लिए, स्टैंडर्ड मॉनिटरिंग स्क्रिप्ट check_postgres.pl का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, http://bucardo.org/wiki/Check_postgres पर जाएं.
स्क्रिप्ट चलाने से पहले:
- आपको हर Postgres नोड पर check_postgres.pl स्क्रिप्ट इंस्टॉल करनी होगी.
- पक्का करें कि आपने
perl-Time-HiRes.x86_64इंस्टॉल किया हो. यह एक Perl मॉड्यूल है, जो हाई रिज़ॉल्यूशन अलार्म, स्लीप, gettimeofday, और इंटरवल टाइमर लागू करता है. उदाहरण के लिए, इसे इंस्टॉल करने के लिए इस निर्देश का इस्तेमाल किया जा सकता है:
yum install perl-Time-HiRes.x86_64
- CentOS 7: CentOS v7 पर check_postgres.pl का इस्तेमाल करने से पहले,
perl-Data-Dumper.x86_64आरपीएम इंस्टॉल करें.
check_postgres.pl का आउटपुट
check_postgres.pl का इस्तेमाल करके किए गए एपीआई कॉल का डिफ़ॉल्ट आउटपुट, Nagios के साथ काम करता है. स्क्रिप्ट इंस्टॉल करने के बाद, ये जांच करें:
- डेटाबेस का साइज़ देखें:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
- डेटाबेस में आने वाले कनेक्शन की संख्या देखें और उसकी तुलना, अनुमति वाले कनेक्शन की ज़्यादा से ज़्यादा संख्या से करें:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- देखें कि डेटाबेस चल रहा है और उपलब्ध है या नहीं:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- डिस्क में बचा स्टोरेज देखें:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- Postgres नोड में शामिल किए गए संगठन और एनवायरमेंट की संख्या देखें:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer
डेटाबेस की जांच करना
यह पुष्टि की जा सकती है कि PostgreSQL डेटाबेस में सही टेबल बनाई गई हैं. नीचे दिए गए कमांड का इस्तेमाल करके, PostgreSQL डेटाबेस में लॉग इन करें:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
इसके बाद, यह चलाएं:
\d analytics."org.env.fact"
Postgres प्रोसेस की स्थिति देखना
Postgres मशीन पर एपीआई की जांच की जा सकती है. इसके लिए, यह curl
कमांड इस्तेमाल करें:
curl -v http://postgres_IP:8084/v1/servers/self/health
postgres प्रोसेस चालू होने पर, यह कमांड ACTIVE स्टेटस दिखाती है. अगर Postgres प्रोसेस चालू नहीं है, तो यह INACTIVE स्टेटस दिखाती है.
Postgres के संसाधन
Postgres सेवा की निगरानी करने के बारे में ज़्यादा जानकारी के लिए, यहां देखें:
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
Cassandra के लिए, JMX डिफ़ॉल्ट रूप से चालू होता है. साथ ही, Cassandra के लिए रिमोट JMX ऐक्सेस के लिए, पासवर्ड की ज़रूरत नहीं होती.
Cassandra के लिए JMX की मदद से पुष्टि करने की सुविधा चालू करना
Cassandra के लिए, JMX ऑथेंटिकेशन की सुविधा चालू की जा सकती है. ऐसा करने के बाद, आपको nodetool यूटिलिटी को किए जाने वाले सभी कॉल के लिए, उपयोगकर्ता नाम और पासवर्ड देना होगा.
Cassandra के लिए JMX ऑथेंटिकेशन चालू करने के लिए:
cassandra.propertiesफ़ाइल बनाना और उसमें बदलाव करना:/opt/apigee/customer/application/cassandra.propertiesफ़ाइल में बदलाव करें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.- फ़ाइल में यह जानकारी जोड़ें:
conf_cassandra_env_com.sun.management.jmxremote.authenticate=true conf_cassandra_env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.password conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.access
cassandra.propertiesफ़ाइल को सेव करें.- फ़ाइल के मालिकाना हक को
apigee:apigeeपर ट्रांसफ़र करें. इसका उदाहरण यहां दिया गया है:chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
टोकन सेट करने के लिए प्रॉपर्टी फ़ाइलों का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Edge को कॉन्फ़िगर करने का तरीका देखें.
jmx_auth.shबनाना और उसमें बदलाव करना:- अगर इस जगह पर कोई फ़ाइल मौजूद नहीं है, तो एक फ़ाइल बनाएं:
/opt/apigee/customer/application/jmx_auth.sh
- फ़ाइल में ये प्रॉपर्टी जोड़ें:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
jmx_auth.shफ़ाइल सेव करें.- फ़ाइल को सोर्स करें:
source /opt/apigee/customer/application/jmx_auth.sh
- अगर इस जगह पर कोई फ़ाइल मौजूद नहीं है, तो एक फ़ाइल बनाएं:
jmxremote.passwordफ़ाइल को कॉपी करें और उसमें बदलाव करें:- इस फ़ाइल को अपनी
$JAVA_HOMEडायरेक्ट्री से/opt/apigee/customer/application/apigee-cassandra/में कॉपी करें:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password jmxremote.passwordफ़ाइल में बदलाव करें और इस सिंटैक्स का इस्तेमाल करके, अपना JMX उपयोगकर्ता नाम और पासवर्ड जोड़ें:JMX_USERNAME JMX_PASSWORD
जहां JMX_USERNAME और JMX_PASSWORD, जेएमएक्स का उपयोगकर्ता नाम और पासवर्ड हैं, जिन्हें आपने पहले सेट किया था.
- पक्का करें कि फ़ाइल का मालिकाना हक "apigee" के पास हो और फ़ाइल मोड 400 हो:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
- इस फ़ाइल को अपनी
jmxremote.accessफ़ाइल को कॉपी करके उसमें बदलाव करें:- इस फ़ाइल को अपनी
$JAVA_HOMEडायरेक्ट्री से/opt/apigee/customer/application/apigee-cassandra/में कॉपी करें:cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access jmxremote.accessफ़ाइल में बदलाव करें और यह भूमिका जोड़ें:JMX_USERNAME readwrite
- पक्का करें कि फ़ाइल का मालिकाना हक "apigee" के पास हो और फ़ाइल मोड 400 हो:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
- इस फ़ाइल को अपनी
- Cassandra पर
configureचलाएं:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra को रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- इस प्रोसेस को सभी अन्य Cassandra नोड पर दोहराएं.
JMX पासवर्ड एन्क्रिप्शन चालू करना
JMX पासवर्ड एन्क्रिप्शन की सुविधा चालू करने के लिए, यह तरीका अपनाएं:
source/conf/casssandra-env.shफ़ाइल खोलें.cassandra.propertiesफ़ाइल बनाना और उसमें बदलाव करना:/opt/apigee/customer/application/cassandra.propertiesफ़ाइल में बदलाव करें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.- फ़ाइल में यह जानकारी जोड़ें:
conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
- cassandra.properties फ़ाइल सेव करें.
- फ़ाइल के मालिक को apigee:apigee में बदलें. इसके लिए, यहां दिया गया उदाहरण देखें:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- कमांड लाइन पर, अपनी पसंद के पासवर्ड के SHA1 हैश जनरेट करें. इसके लिए, यह डालें
echo -n 'Secret' | openssl dgst -sha1 $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password(पिछले सेक्शन में बनाया गया) में उपयोगकर्ता नाम के लिए पासवर्ड सेट करें.- Cassandra पर कॉन्फ़िगरेशन चलाएं:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra को रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- अन्य सभी Cassandra नोड पर यह प्रोसेस दोहराएं.
Cassandra के लिए, एसएसएल के साथ जेएमएक्स चालू करना
एसएसएल के साथ जेएमएक्स को चालू करने से, Cassandra के साथ जेएमएक्स-आधारित कम्यूनिकेशन के लिए अतिरिक्त सुरक्षा और एन्क्रिप्शन की सुविधा मिलती है. एसएसएल के साथ जेएमएक्स को चालू करने के लिए, आपको Cassandra को एक कुंजी और सर्टिफ़िकेट देना होगा, ताकि वह एसएसएल पर आधारित जेएमएक्स कनेक्शन स्वीकार कर सके. आपको एसएसएल के लिए, nodetool और JMX के ज़रिए Cassandra से कम्यूनिकेट करने वाले अन्य टूल भी कॉन्फ़िगर करने होंगे.
एसएसएल की सुविधा वाले JMX में, सामान्य टेक्स्ट और एन्क्रिप्ट (सुरक्षित) किए गए JMX पासवर्ड, दोनों का इस्तेमाल किया जा सकता है.
Cassandra के लिए एसएसएल के साथ जेएमएक्स को चालू करने के लिए, यह तरीका अपनाएं:
- जेएमएक्स चालू करें. अगर ज़रूरी हो, तो पासवर्ड एन्क्रिप्ट (सुरक्षित) करने की सुविधा चालू करें.
- Cassandra के लिए JMX की पुष्टि करने की सुविधा चालू करें.
जैसा कि ऊपर बताया गया है. पक्का करें कि nodetool, कॉन्फ़िगर किए गए उपयोगकर्ता नाम और पासवर्ड के साथ काम कर रहा हो.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
कीस्टोर और ट्रस्टस्टोर तैयार करें.
कीस्टोर में एक कुंजी और सर्टिफ़िकेट होना चाहिए. इसका इस्तेमाल Cassandra सर्वर को कॉन्फ़िगर करने के लिए किया जाता है. अगर कीस्टोर में एक से ज़्यादा कुंजी जोड़े हैं, तो Cassandra, एसएसएल चालू करने के लिए पहले कुंजी जोड़े का इस्तेमाल करता है.
ध्यान दें कि कीस्टोर और कुंजी के पासवर्ड एक ही होने चाहिए. ऐसा तब होता है, जब keytool का इस्तेमाल करके कुंजी जनरेट की जाती है.
- ट्रस्टस्टोर में सिर्फ़ सर्टिफ़िकेट होना चाहिए. इसका इस्तेमाल क्लाइंट (apigee-service पर आधारित कमांड या nodetool) जेएमएक्स से कनेक्ट करने के लिए करते हैं.
ऊपर बताई गई ज़रूरी शर्तों की पुष्टि करने के बाद:
- कीस्टोर फ़ाइल को
/opt/apigee/customer/application/apigee-cassandra/में रखें. - यह पक्का करें कि कीस्टोर फ़ाइल को सिर्फ़ Apigee उपयोगकर्ता पढ़ सके. इसके लिए, यह डालें
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
- एसएसएल के साथ जेएमएक्स के लिए Cassandra को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
- Cassandra नोड को बंद करने के लिए, यह कमांड डालें
apigee-service apigee-cassandra stop
- Cassandra में एसएसएल चालू करने के लिए,
/opt/apigee/customer/application/cassandra.propertiesफ़ाइल खोलें और ये लाइनें जोड़ें:conf_cassandra_env_com.sun.management.jmxremote.ssl=true conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1 conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
- फ़ाइल के मालिक को apigee:apigee में बदलें. इसके लिए, यहां दिया गया उदाहरण देखें:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Cassandra पर कॉन्फ़िगरेशन चलाएं:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra को रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- इस प्रोसेस को सभी अन्य Cassandra नोड पर दोहराएं.
- Cassandra नोड को शुरू करने के लिए, यह कमांड डालें
apigee-service apigee-cassandra start
- Cassandra नोड को बंद करने के लिए, यह कमांड डालें
apigee-serviceCassandra कमांड कॉन्फ़िगर करें.apigee-serviceकमांड चलाते समय, आपको कुछ एनवायरमेंट वैरिएबल सेट करने होंगे. इनमें यहां दिए गए वैरिएबल शामिल हैं:apigee-service apigee-cassandra stop apigee-service apigee-cassandra wait_for_ready apigee-service apigee-cassandra ring apigee-service apigee-cassandra backup
जेएमएक्स ऑथेंटिकेशन और एसएसएल के लिए,
apigee-serviceको कॉन्फ़िगर करने के कई विकल्प हैं. उपयोगिता और सुरक्षा के तरीकों के आधार पर कोई विकल्प चुनें.- पहला विकल्प (फ़ाइल में सेव किए गए एसएसएल आर्ग्युमेंट)
- दूसरा विकल्प (एनवायरमेंट वैरिएबल में सेव किए गए एसएसएल आर्ग्युमेंट)
- तीसरा विकल्प (एसएसएल आर्ग्युमेंट सीधे
apigee-serviceको पास किए जाते हैं)
पहला विकल्प (फ़ाइल में सेव किए गए एसएसएल आर्ग्युमेंट)
इन एनवायरमेंट वैरिएबल को सेट करें:
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y
Apigee उपयोगकर्ता की होम डायरेक्ट्री (
/opt/apigee) में एक फ़ाइल बनाएं.$HOME/.cassandra/nodetool-ssl.properties
फ़ाइल में बदलाव करें और ये लाइनें जोड़ें:
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12
पक्का करें कि Apigee उपयोगकर्ता, ट्रस्टस्टोर फ़ाइल को पढ़ सके.
यह
apigee-serviceकमांड चलाएं. अगर यह बिना किसी गड़बड़ी के चलता है, तो इसका मतलब है कि आपके कॉन्फ़िगरेशन सही हैं.apigee-service apigee-cassandra ring
दूसरा विकल्प (एसएसएल आर्ग्युमेंट, एनवायरमेंट वैरिएबल में सेव किए जाते हैं)
इन एनवायरमेंट वैरिएबल को सेट करें:
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y # Ensure the truststore file is accessible by Apigee user. export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password> # If you are using a non standard truststore type, export truststore type as well # Possible values are JKS, PKCS12, BCFKS export CASS_JMX_TRUSTSTORE_TYPE=PKCS12
यहां दिया गया
apigee-serviceकमांड चलाएं. अगर यह बिना किसी गड़बड़ी के चलता है, तो इसका मतलब है कि आपके कॉन्फ़िगरेशन सही हैं.apigee-service apigee-cassandra ring
तीसरा विकल्प (एसएसएल आर्ग्युमेंट सीधे
apigee-serviceको पास किए जाते हैं)यहां दिए गए उदाहरण की तरह, कोई भी
apigee-serviceकमांड चलाएं. आपको किसी भी एनवायरमेंट वैरिएबल को कॉन्फ़िगर करने की ज़रूरत नहीं है.CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
nodetool सेट अप करें. Nodetool को JMX पैरामीटर पास करने की ज़रूरत होती है. SSL की सुविधा वाले JMX के साथ nodetool को चलाने के लिए, दो तरीके हैं. इनके बारे में यहां बताया गया है:
इन विकल्पों में, एसएसएल से जुड़े कॉन्फ़िगरेशन को nodetool में पास करने का तरीका अलग-अलग होता है. दोनों ही मामलों में, nodetool चलाने वाले उपयोगकर्ता के पास ट्रस्टस्टोर फ़ाइल को पढ़ने की अनुमति होनी चाहिए. इस्तेमाल करने में आसानी और सुरक्षा से जुड़े तरीकों के आधार पर, सही विकल्प चुनें.
nodetool पैरामीटर के बारे में ज़्यादा जानने के लिए, Apache Cassandra nodetool दस्तावेज़ देखें.
कॉन्फ़िगरेशन का पहला विकल्प
nodetool चलाने वाले उपयोगकर्ता की होम डायरेक्ट्री में एक फ़ाइल बनाएं.
$HOME/.cassandra/nodetool-ssl.properties
फ़ाइल में ये लाइनें जोड़ें:
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12
ऊपर बताया गया ट्रस्टस्टोर पाथ, nodetool चलाने वाले किसी भी उपयोगकर्ता के लिए ऐक्सेस किया जा सकने वाला होना चाहिए.
--sslविकल्प के साथnodetoolचलाएं./opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
कॉन्फ़िगरेशन का दूसरा विकल्प
nodetoolको एक ही कमांड के तौर पर चलाएं. इसके लिए, यहां दिए गए अतिरिक्त पैरामीटर का इस्तेमाल करें./opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12 -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
एसएसएल कॉन्फ़िगरेशन को पहले जैसा करना
अगर आपको ऊपर दी गई प्रक्रिया में बताए गए एसएसएल कॉन्फ़िगरेशन को पहले जैसा करना है, तो यह तरीका अपनाएं:
apigee-cassandraको रोकने के लिए,apigee-service apigee-cassandra stop
- फ़ाइल
/opt/apigee/customer/application/cassandra.propertiesसे लाइनconf_cassandra-env_com.sun.management.jmxremote.ssl=trueहटाओ. /opt/apigee/apigee-cassandra/source/conf/cassandra-env.shमें मौजूद इन लाइनों को टिप्पणी के तौर पर मार्क करें# JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0" # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass" # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
apigee-cassandraको शुरू करने के लिए, यह जानकारी डालें- अगर एनवायरमेंट वैरिएबल
CASS_JMX_SSLसेट किया गया था, तो उसे हटाएं.unset CASS_JMX_SSL
- देखें कि
apigee-serviceपर आधारित निर्देश काम कर रहे हैं या नहीं. जैसे,ring,stop,backupवगैरह. - nodetool के साथ
--sslस्विच का इस्तेमाल बंद करना
apigee-service apigee-cassandra start
Cassandra के लिए JMX ऑथेंटिकेशन बंद करना
Cassandra के लिए JMX ऑथेंटिकेशन की सुविधा बंद करने के लिए:
/opt/apigee/customer/application/cassandra.propertiesमें बदलाव करें.- फ़ाइल से यह लाइन हटाएं:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Cassandra पर कॉन्फ़िगरेशन चलाएं:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra को रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- इस प्रोसेस को सभी अन्य Cassandra नोड पर दोहराएं.
JConsole का इस्तेमाल करना: टास्क के आंकड़ों को मॉनिटर करना
JMX एट्रिब्यूट (MBeans) को मॉनिटर करने के लिए, JConsole और यहां दिया गया सेवा यूआरएल इस्तेमाल करें. ये एट्रिब्यूट, JMX के ज़रिए उपलब्ध कराए जाते हैं:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
इसमें IP_address, Cassandra सर्वर का आईपी है.
Cassandra JMX के आंकड़े
| JMX MBeans | JMX एट्रिब्यूट |
|---|---|
|
ColumnFamilies/apprepo/environments ColumnFamilies/apprepo/organizations ColumnFamilies/apprepo/apiproxy_revisions ColumnFamilies/apprepo/apiproxies ColumnFamilies/audit/audits ColumnFamilies/audit/audits_ref |
PendingTasks |
|
MemtableColumnsCount |
|
|
MemtableDataSize |
|
|
ReadCount |
|
|
RecentReadLatencyMicros |
|
|
TotalReadLatencyMicros |
|
|
WriteCount |
|
|
RecentWriteLatencyMicros |
|
|
TotalWriteLatencyMicros |
|
|
TotalDiskSpaceUsed |
|
|
LiveDiskSpaceUsed |
|
|
LiveSSTableCount |
|
|
BloomFilterFalsePositives |
|
|
RecentBloomFilterFalseRatio |
|
|
BloomFilterFalseRatio |
क्लस्टर नोड मैनेज करने के लिए nodetool का इस्तेमाल करना
nodetool यूटिलिटी, Cassandra के लिए एक कमांड लाइन इंटरफ़ेस है. यह क्लस्टर नोड को मैनेज करता है. यह यूटिलिटी /opt/apigee/apigee-cassandra/bin पर देखी जा सकती है.
सभी Cassandra क्लस्टर नोड पर ये कॉल किए जा सकते हैं:
- रिंग की सामान्य जानकारी (यह जानकारी, सिंगल Cassandra नोड के लिए भी उपलब्ध हो सकती है): सभी नोड के लिए "अप" और "सामान्य" देखें.
nodetool [-u username -pw password] -h localhost ring
आपको सिर्फ़ अपना उपयोगकर्ता नाम और पासवर्ड तब पास करना होगा, जब आपने Cassandra के लिए JMX पुष्टि करने की सुविधा चालू की हो.
ऊपर दी गई कमांड का आउटपुट यहां दिखाया गया है:
Datacenter: dc-1 ========== Address Rack Status State Load Owns Token 192.168.124.201 ra1 Up Normal 1.67 MB 33,33% 0 192.168.124.202 ra1 Up Normal 1.68 MB 33,33% 5671...5242 192.168.124.203 ra1 Up Normal 1.67 MB 33,33% 1134...0484
- नोड के बारे में सामान्य जानकारी (हर नोड के लिए कॉल)
nodetool [-u username -pw password] -h localhost info
ऊपर दी गई कमांड का आउटपुट ऐसा दिखता है:
ID : e2e42793-4242-4e82-bcf0-oicu812 Gossip active : true Thrift active : true Native Transport active: true Load : 273.71 KB Generation No : 1234567890 Uptime (seconds) : 687194 Heap Memory (MB) : 314.62 / 3680.00 Off Heap Memory (MB) : 0.14 Data Center : dc-1 Rack : ra-1 Exceptions : 0 Key Cache : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : 0
- थ्रिफ्ट सर्वर की स्थिति (क्लाइंट एपीआई को सेवा देना)
nodetool [-u username -pw password] -h localhost statusthrift
ऊपर दिए गए कमांड का आउटपुट कुछ ऐसा दिखता है:
running
- डेटा स्ट्रीमिंग की कार्रवाइयों का स्टेटस: कैसेंड्रा नोड के लिए ट्रैफ़िक देखें:
nodetool [-u username -pw password] -h localhost netstats
ऊपर दी गई कमांड का आउटपुट ऐसा दिखता है:
Mode: NORMAL Not sending any streams. Read Repair Statistics: Attempted: 151612 Mismatch (Blocking): 0 Mismatch (Background): 0 Pool Name Active Pending Completed Dropped Commands n/a 0 0 0 Responses n/a 0 0 n/a
nodetool का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, nodetool यूटिलिटी के बारे में जानकारी लेख पढ़ें.
Cassandra संसाधन
इस यूआरएल पर जाएं: Cassandra monitoring.
Apache Qpid Broker-J को मॉनिटर करना
Qpid मैनेजमेंट कंसोल से, Qpid Broker-J को मॉनिटर किया जा सकता है. इस सेक्शन में बताया गया है कि कंसोल को कैसे ऐक्सेस किया जाता है और बुनियादी मॉनिटरिंग फ़ंक्शन करने के लिए इसका इस्तेमाल कैसे किया जाता है. मैनेजमेंट कंसोल को इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, Apache Qpid के दस्तावेज़ में वेब मैनेजमेंट कंसोल देखें.
मैनेजमेंट कंसोल को ऐक्सेस करना
मैनेजमेंट कंसोल का डिफ़ॉल्ट पोर्ट 8090 है. इस डिफ़ॉल्ट पोर्ट पर कंसोल को ऐक्सेस करने के लिए, अपने वेब ब्राउज़र को इस पर ले जाएं:
http://QPID_NODE_IP:8090
कंसोल में लॉग इन करने के लिए, Apigee के सेट किए गए डिफ़ॉल्ट क्रेडेंशियल या Edge की कॉन्फ़िगरेशन फ़ाइल में सेट किए गए क्रेडेंशियल का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Edge की कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस देखें.
क्यू और मैसेज पर नज़र रखना
बाईं ओर मौजूद नेविगेशन पैनल में, Java-Broker > virtualhosts > queues पर जाएं. यूज़र इंटरफ़ेस (यूआई) के मुख्य हिस्से में किसी सूची की जानकारी देखने के लिए, उसे चुनें. ज़्यादा जानकारी वाले व्यू में, सूची के एट्रिब्यूट और आंकड़े देखे जा सकते हैं. इनमें डिलीवर किए गए मैसेज, सूची में शामिल किए गए मैसेज, मैसेज की दरें वगैरह शामिल हैं.
लॉग फ़ाइलें देखना और डाउनलोड करना
बाईं ओर मौजूद नेविगेशन पैनल में, Java-Broker > brokerloggers > logfile पर जाएं. यूज़र इंटरफ़ेस (यूआई) के मुख्य ब्यौरे वाले व्यू में, लॉग फ़ाइल की जानकारी देखी जा सकती है और लॉग फ़ाइलें डाउनलोड की जा सकती हैं.
Qpid मैनेजमेंट एपीआई का इस्तेमाल करना
मैनेजमेंट से जुड़े टास्क अपने-आप होने की सुविधा सेट अप करने और ब्रोकर को मॉनिटर करने के लिए, Apache Qpid Broker-J REST API का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, Apache Qpid Broker REST API से जुड़ा दस्तावेज़ देखें.
ब्रोकर पर नज़र रखने के लिए, कमांड लाइन टूल का भी इस्तेमाल किया जा सकता है. उदाहरण के लिए:
curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"
Qpid के लिए, एसएसएल की मदद से मॉनिटरिंग की सुविधा चालू करना
निगरानी और मैनेजमेंट के लिए अतिरिक्त सुरक्षा देने के लिए, Qpid के मैनेजमेंट पोर्टल और Qpid के मैनेजमेंट एपीआई पर एसएसएल चालू करें. कुंजी और सर्टिफ़िकेट देने के लिए, यहां दिए गए दिशा-निर्देशों का पालन करें.
Qpid, फ़ाइल कीस्टोर का विकल्प देता है. यह Apigee में चालू होता है. इस टाइप में, स्टैंडर्ड जेकेएस कीस्टोर फ़ॉर्मैट का इस्तेमाल किया जाता है. इसे Java और Java टूल, जैसे कि keytool के साथ इस्तेमाल किया जा सकता है. यह PKCS12 कीस्टोर को भी स्वीकार कर सकता है. इसे OpenSSL जैसे टूल का इस्तेमाल करके जनरेट किया जा सकता है.
कीस्टोर तैयार करना
कीस्टोर जनरेट करने के लिए, Java Keytool Documentation देखें.
PKCS12 कीस्टोर जनरेट करने के लिए, OpenSSL दस्तावेज़ देखें.
ज़रूरी शर्तों की पुष्टि करने के बाद
- कीस्टोर फ़ाइल को
/opt/apigee/customer/application/apigee-qpiddमें रखें. - पक्का करें कि कीस्टोर फ़ाइल को सिर्फ़ Apigee उपयोगकर्ता ही पढ़ सके:
chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
Qpid में एसएसएल चालू करना
एक बार में एक Qpid नोड पर, यहां दिया गया तरीका अपनाएं:
/opt/apigee/customer/application/qpidd.properties फ़ाइल खोलें और ये लाइनें जोड़ें:
conf_qpidd_qpid_management.https.enabled=true conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore conf_qpidd_qpid.keystore.password=keystore-password conf_qpidd_qpid.keystore.certificateAlias=certificate-alias ## If you are using a PKCS12 keystore, specify the keystore type conf_qpidd_qpid.keystore.keyStoreType=PKCS12
- फ़ाइल के मालिक को apigee:apigee में बदलें:
chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
- Qpidd को कॉन्फ़िगर करें:
apigee-service apigee-qpidd configure
- Qpidd को रीस्टार्ट करें:
apigee-service apigee-qpidd restart
- wait_for_ready की मदद से स्टेटस देखें:
apigee-service apigee-qpidd wait_for_ready
एसएसएल कॉन्फ़िगरेशन को पहले जैसा करें
फ़ाइल /opt/apigee/customer/application/qpidd.properties से प्रॉपर्टी हटाएं या उन्हें टिप्पणी के तौर पर मार्क करें:
conf_qpidd_qpid_management.https.enabled=true conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
- Qpidd को कॉन्फ़िगर करें:
apigee-service apigee-qpidd configure
- Qpidd को रीस्टार्ट करें:
apigee-service apigee-qpidd restart
- wait_for_ready का इस्तेमाल करके स्टेटस देखें:
apigee-service apigee-qpidd wait_for_ready
Apache ZooKeeper
ZooKeeper का स्टेटस देखना
- पक्का करें कि ZooKeeper प्रोसेस चल रही हो. ZooKeeper,
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pidमें एक PID फ़ाइल लिखता है. - ZooKeeper पोर्ट की जांच करें, ताकि यह पक्का किया जा सके कि हर ZooKeeper सर्वर पर पोर्ट 2181 और 3888 से टीसीपी कनेक्शन बनाया जा सकता है.
- पक्का करें कि ZooKeeper डेटाबेस से वैल्यू पढ़ी जा सकती हों. ZooKeeper क्लाइंट लाइब्रेरी (या
/opt/apigee/apigee-zookeeper/bin/zkCli.sh) का इस्तेमाल करके कनेक्ट करें और डेटाबेस से कोई वैल्यू पढ़ें. - स्टेटस देखें:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
ZooKeeper के चार अक्षरों वाले शब्दों का इस्तेमाल करना
ZooKeeper को कुछ निर्देशों (चार अक्षरों वाले शब्द) की मदद से मॉनिटर किया जा सकता है. ये निर्देश, netcat (nc) या telnet का इस्तेमाल करके पोर्ट 2181 पर भेजे जाते हैं.
ZooKeeper कमांड के बारे में ज़्यादा जानने के लिए, यह लेख पढ़ें: Apache ZooKeeper कमांड का रेफ़रंस.
उदाहरण के लिए:
srvr: सर्वर की पूरी जानकारी दिखाता है.stat: सर्वर और कनेक्ट किए गए क्लाइंट के बारे में कम शब्दों में जानकारी देता है.
ZooKeeper पोर्ट को ये निर्देश दिए जा सकते हैं:
- चार अक्षरों वाला कमांड ruok चलाकर देखें कि सर्वर बिना किसी गड़बड़ी के चल रहा है या नहीं. जवाब में "imok" मिलने का मतलब है कि अनुरोध पूरा हो गया है.
echo ruok | nc host 2181
वापसी:
imok
- सर्वर की परफ़ॉर्मेंस और कनेक्ट किए गए क्लाइंट के आंकड़ों की सूची देखने के लिए, चार अक्षरों वाला कमांड
statचलाएं:echo stat | nc host 2181
वापसी:
Zookeeper version: 3.8.5-19f1842d4b6ee1f82cc8b05284959b26c6ae507d, built on 2025-09-18 17:23 UTC Clients: /0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0) /192.168.124.201:42388[1](queued=0,recved=8433,sent=8433) /192.168.124.202:42185[1](queued=0,recved=1339,sent=1347) /192.168.124.204:39296[1](queued=0,recved=7688,sent=7692) Latency min/avg/max: 0/0/128 Received: 26144 Sent: 26160 Connections: 4 Outstanding: 0 Zxid: 0x2000002c2 Mode: follower Node count: 283
- अगर netcat (nc) उपलब्ध नहीं है, तो python का इस्तेमाल किया जा सकता है.
zookeeper.pyनाम की एक फ़ाइल बनाएं, जिसमें यह जानकारी शामिल हो:import time, socket, sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM) c.connect((sys.argv[1], 2181)) c.send(sys.argv[2]) time.sleep(0.1) print c.recv(512)
अब Python की ये लाइनें चलाएं:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
एलडीएपी लेवल टेस्ट
SymasLDAP को मॉनिटर करके यह देखा जा सकता है कि खास अनुरोधों को सही तरीके से पूरा किया जा रहा है या नहीं. दूसरे शब्दों में कहें, तो यह देखें कि किसी खास खोज के लिए सही नतीजा मिल रहा है या नहीं.
- सिस्टम एडमिन की एंट्री के बारे में क्वेरी करने के लिए,
ldapsearch(yum install symasldap-clients) का इस्तेमाल करें. इस एंट्री का इस्तेमाल, सभी एपीआई कॉल की पुष्टि करने के लिए किया जाता है./opt/symas/bin/ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL
इसके बाद, आपको LDAP एडमिन का पासवर्ड डालने के लिए कहा जाएगा:
Enter LDAP Password:
पासवर्ड डालने के बाद, आपको इस तरह का जवाब दिखेगा:
dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com objectClass: organizationalPerson objectClass: person objectClass: inetOrgPerson objectClass: top uid: admin cn: admin sn: admin userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ= = mail: opdk@google.com
- यह देखने के लिए कि मैनेजमेंट सर्वर अब भी LDAP से कनेक्ट है या नहीं, इस कमांड का इस्तेमाल करें:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
वापसी:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
SymasLDAP कैश मेमोरी को भी मॉनिटर किया जा सकता है. इससे डिस्क ऐक्सेस की संख्या कम करने में मदद मिलती है. साथ ही, सिस्टम की परफ़ॉर्मेंस बेहतर होती है. SymasLDAP सर्वर में कैश मेमोरी के साइज़ की निगरानी करने और उसे ट्यून करने से, डायरेक्ट्री सर्वर की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है. कैश मेमोरी के बारे में जानकारी पाने के लिए, लॉग फ़ाइलें (opt/apigee/var/log) देखी जा सकती हैं.