इस दस्तावेज़ में, Apigee Edge for Private Cloud के ऑन-प्रिमाइसेस डिप्लॉयमेंट के साथ काम करने वाले कॉम्पोनेंट की मॉनिटरिंग की तकनीकों के बारे में बताया गया है.
खास जानकारी
Edge में, सेवाओं के बारे में जानकारी पाने और उनके स्टेटस देखने के कई तरीके उपलब्ध हैं. यहां दी गई टेबल में, उन सभी तरह की जांचों के बारे में बताया गया है जो ज़रूरी शर्तें पूरी करने वाली हर सेवा के लिए की जा सकती हैं:
Mgmt API | |||||||
कॉम्पोनेंट | मेमोरी का इस्तेमाल [JMX*] | सेवा की जांच | उपयोगकर्ता/संगठन/ डिप्लॉयमेंट का स्टेटस | axstatus | डेटाबेस की जांच | apigee-service में डेटा सोर्स का स्टेटस |
apigee-monit ** |
मैनेजमेंट सर्वर | |||||||
मैसेज प्रोसेसर | |||||||
राऊटर | |||||||
Qpid | |||||||
Postgres | |||||||
ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | |
* JMX का इस्तेमाल करने से पहले, आपको इसे चालू करना होगा. इसके लिए, JMX चालू करना लेख पढ़ें. ** |
पोर्ट और कॉन्फ़िगरेशन फ़ाइलों की निगरानी करना
हर कॉम्पोनेंट, अलग-अलग पोर्ट पर Java Management Extensions (JMX) और Management API मॉनिटरिंग कॉल के साथ काम करता है. यहां दी गई टेबल में, हर तरह के सर्वर के लिए JMX और Management API पोर्ट की सूची दी गई है. साथ ही, कॉन्फ़िगरेशन फ़ाइल की लोकेशन भी दी गई है:
कॉम्पोनेंट | JMX पोर्ट | 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 |
कॉम्पोनेंट की निगरानी करने के लिए JMX का इस्तेमाल करना
यहां दिए गए सेक्शन में, Edge कॉम्पोनेंट की निगरानी करने के लिए JMX का इस्तेमाल करने का तरीका बताया गया है.
JMX चालू करना
बिना पुष्टि किए या एसएसएल पर आधारित कम्यूनिकेशन के बिना 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-* कॉम्पोनेंट में JMX पुष्टि करने की सुविधा चालू करने के लिए, सही कॉन्फ़िगरेशन फ़ाइल में बदलाव करें
(
कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस देखें). अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो उसे बनाएं:
कॉन्फ़िगरेशन फ़ाइल को सेव करें और पक्का करें कि इसका मालिकाना हक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.password/jmxremote.access
- फ़ाइल में बदलाव करें और अपना JMX उपयोगकर्ता नाम जोड़ें. इसके बाद, अनुमति (READONLY/READWRITE) जोड़ें
USERNAME READONLY
- पक्का करें कि फ़ाइल का मालिकाना हक
apigee
के पास हो और फ़ाइल मोड 400 हो:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
- अपनी $JAVA_HOME डायरेक्ट्री से इन फ़ाइलों को
- Edge के सही कॉम्पोनेंट को रीस्टार्ट करें:
apigee-service edge-management-server restart
JMX पुष्टि करने की सुविधा बंद करने के लिए, प्रॉपर्टी conf_system_jmxremote_authenticate
हटाएं या वैल्यू को false
पर बदलें. इसके बाद, Edge के कॉम्पोनेंट को रीस्टार्ट करें.
JMX में एसएसएल
edge-* कॉम्पोनेंट में एसएसएल पर आधारित JMX को चालू करने के लिए:
- सही कॉन्फ़िगरेशन फ़ाइल में बदलाव करें (
कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस देखें). अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो उसे बनाएं:
कॉन्फ़िगरेशन फ़ाइल को सेव करें और पक्का करें कि इसका मालिकाना हक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
एसएसएल पर आधारित JMX को बंद करने के लिए, प्रॉपर्टी conf_system_jmxremote_ssl
हटाएं या इसकी वैल्यू को false
पर सेट करें. Edge के सही कॉम्पोनेंट को रीस्टार्ट करें.
Jconsole की मदद से मॉनिटर करना
jconsole के ज़रिए मॉनिटर करने के निर्देश, https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole में बताए गए निर्देशों के मुताबिक ही रहेंगे.
एक लाइन जोड़ी जा सकती है, जिसमें यह बताया गया हो कि “अगर JMX के लिए एसएसएल चालू है, तो jconsole को ट्रस्टस्टोर और ट्रस्टस्टोर पासवर्ड के साथ शुरू करना होगा.” रेफ़रंस: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.htmlJConsole की मदद से मॉनिटर करना
JConsole (JMX के साथ काम करने वाला टूल) का इस्तेमाल करके, हेल्थ चेक और प्रोसेस के आंकड़ों को मैनेज और मॉनिटर करें. JConsole की मदद से, सर्वर से मिले JMX आंकड़ों का इस्तेमाल किया जा सकता है. साथ ही, उन्हें ग्राफ़िकल इंटरफ़ेस में दिखाया जा सकता है. ज़्यादा जानकारी के लिए, JConsole का इस्तेमाल करना लेख पढ़ें.
अगर JMX के लिए एसएसएल चालू है, तो आपको JConsole को ट्रस्टस्टोर और ट्रस्टस्टोर पासवर्ड के साथ शुरू करना होगा. JConsole का इस्तेमाल करना देखें.
JConsole, JMX एट्रिब्यूट (MBeans) को मॉनिटर करने के लिए, यहां दिया गया सर्विस यूआरएल इस्तेमाल करता है. ये एट्रिब्यूट, JMX के ज़रिए उपलब्ध कराए जाते हैं:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
कहां:
- IP_address उस सर्वर का आईपी पता है जिसे आपको मॉनिटर करना है.
- port_number उस सर्वर का JMX पोर्ट नंबर है जिसे आपको मॉनिटर करना है.
उदाहरण के लिए, मैनेजमेंट सर्वर को मॉनिटर करने के लिए, इस तरह का कमांड जारी करें. मान लें कि सर्वर का आईपी पता 216.3.128.12 है:
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
ध्यान दें कि इस उदाहरण में पोर्ट 1099 के बारे में बताया गया है. यह मैनेजमेंट सर्वर का जेएमएक्स पोर्ट है. अन्य पोर्ट के लिए, JMX और Management API मॉनिटरिंग पोर्ट देखें.
इस टेबल में, सामान्य JMX आंकड़े दिखाए गए हैं:
JMX MBeans | JMX एट्रिब्यूट |
---|---|
मेमोरी |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
इस्तेमाल |
|
कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस
यहां दिए गए सेक्शन में, JMX से जुड़े कॉन्फ़िगरेशन के लिए, Edge कॉम्पोनेंट कॉन्फ़िगरेशन फ़ाइलों में किए जाने वाले बदलावों के बारे में बताया गया है. ज़्यादा जानकारी के लिए, पोर्ट और कॉन्फ़िगरेशन फ़ाइलों की निगरानी करना लेख पढ़ें.
JMX कॉन्फ़िगरेशन को कॉम्पोनेंट की कॉन्फ़िगरेशन फ़ाइल में जोड़ना
- एज-कंपोनेंट पर JMX एजेंट चालू करें. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है.
conf_system_jmxremote_enable=true
पासवर्ड के आधार पर पुष्टि करने के लिए कॉन्फ़िगरेशन
- पासवर्ड के आधार पर पुष्टि करने की सुविधा चालू करें. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है.
conf_system_jmxremote_authenticate=true
- फ़ाइल को ऐक्सेस करने का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए और सिर्फ़ वही इसे पढ़ सकता है.
conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
- पासवर्ड फ़ाइल का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए और सिर्फ़ वही इसे पढ़ सकता है.
conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
- पासवर्ड को एन्क्रिप्ट (सुरक्षित) किए गए फ़ॉर्मैट में सेव करने की सुविधा चालू करें. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है.
conf_system_jmxremote_encrypted_auth=true
एसएसएल पर आधारित JMX के लिए कॉन्फ़िगरेशन
- JMX कम्यूनिकेशन के लिए एसएसएल चालू करें. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है.
conf_system_jmxremote_ssl=true
- कीस्टोर का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए और सिर्फ़ वही इसे पढ़ सकता है.
conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
- कीस्टोर का पासवर्ड:
conf_system_javax_net_ssl_keystorepassword=changeme
वैकल्पिक JMX कॉन्फ़िगरेशन
यहां दी गई वैल्यू डिफ़ॉल्ट वैल्यू हैं और इन्हें बदला जा सकता है.
- 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 उस सर्वर के लिए Management API पोर्ट है जिसकी आपको जांच करनी है. यह हर कॉम्पोनेंट के लिए अलग पोर्ट होता है. उदाहरण के लिए, मैनेजमेंट सर्वर का मैनेजमेंट एपीआई पोर्ट 8080 है. इस्तेमाल किए जाने वाले Management API पोर्ट नंबर की सूची के लिए, JMX और 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"
उपयोगकर्ता, संगठन, और डिप्लॉयमेंट की स्थिति को मॉनिटर करना
मैनेजमेंट एपीआई का इस्तेमाल करके, मैनेजमेंट सर्वर और मैसेज प्रोसेसर पर अपनी प्रॉक्सी के उपयोगकर्ता, संगठन, और डिप्लॉयमेंट की स्थिति को मॉनिटर किया जा सकता है. इसके लिए, ये कमांड जारी करें:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
यहां port_number, मैनेजमेंट सर्वर के लिए 8080 या मैसेज प्रोसेसर के लिए 8082 होता है.
इस कॉल के लिए, आपको सिस्टम एडमिन के उपयोगकर्ता नाम और पासवर्ड से पुष्टि करनी होगी.
सर्वर को सभी कॉल के लिए, "deployed" स्टेटस दिखाना चाहिए. अगर ये तरीके काम नहीं करते हैं, तो यह तरीका अपनाएं:
- किसी भी तरह की गड़बड़ी के लिए सर्वर लॉग देखें. ये लॉग यहां मौजूद हैं:
- मैनेजमेंट सर्वर:
opt/apigee/var/log/edge-management-server
- मैसेज प्रोसेसर:
opt/apigee/var/log/edge-message-processor
- मैनेजमेंट सर्वर:
- सर्वर के ख़िलाफ़ कॉल करके देखें कि वह ठीक से काम कर रहा है या नहीं.
- सर्वर को ELB से हटाएं और फिर उसे रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
जहां service_name है:
edge-management-server
edge-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
RPM इंस्टॉल करें.
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 प्रोसेस की स्थिति देखना
नीचे दी गई curl
कमांड को लागू करके, Postgres मशीन पर एपीआई की जांच की जा सकती है:
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, JMX का वह उपयोगकर्ता नाम और पासवर्ड है जिसे आपने पहले सेट किया था.
- पक्का करें कि फ़ाइल का मालिकाना हक "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
- कमांड लाइन पर,
echo -n 'Secret' | openssl dgst -sha1
डालकर, अपने हिसाब से चुने गए पासवर्ड का 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 के लिए, एसएसएल के साथ JMX चालू करना
एसएसएल के साथ JMX को चालू करने पर, Cassandra के साथ JMX पर आधारित कम्यूनिकेशन के लिए अतिरिक्त सुरक्षा और एन्क्रिप्शन मिलता है. एसएसएल के साथ JMX चालू करने के लिए, आपको Cassandra को एक कुंजी और एक सर्टिफ़िकेट देना होगा, ताकि वह एसएसएल पर आधारित JMX कनेक्शन स्वीकार कर सके. आपको nodetool और JMX के ज़रिए Cassandra से कम्यूनिकेट करने वाले अन्य टूल को भी एसएसएल के लिए कॉन्फ़िगर करना होगा.
एसएसएल की सुविधा वाले JMX में, सामान्य टेक्स्ट और एन्क्रिप्ट (सुरक्षित) किए गए JMX पासवर्ड, दोनों का इस्तेमाल किया जा सकता है.
Cassandra के लिए SSL के साथ JMX चालू करने के लिए, यह तरीका अपनाएं:
- JMX चालू करें. अगर ज़रूरी हो, तो पासवर्ड एन्क्रिप्शन की सुविधा चालू करें.
- Cassandra के लिए JMX ऑथेंटिकेशन चालू करें.
जैसा कि ऊपर बताया गया है. पक्का करें कि nodetool, कॉन्फ़िगर किए गए उपयोगकर्ता नाम और पासवर्ड के साथ काम कर रहा हो.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
कीस्टोर और ट्रस्टस्टोर तैयार करें.
कीस्टोर में एक कुंजी और सर्टिफ़िकेट होना चाहिए. इसका इस्तेमाल Cassandra सर्वर को कॉन्फ़िगर करने के लिए किया जाता है. अगर कीस्टोर में एक से ज़्यादा कुंजी जोड़े हैं, तो Cassandra, SSL को चालू करने के लिए पहले कुंजी जोड़े का इस्तेमाल करता है.
ध्यान दें कि कीस्टोर और कुंजी के पासवर्ड एक जैसे होने चाहिए. जब keytool का इस्तेमाल करके कुंजी जनरेट की जाती है, तो डिफ़ॉल्ट रूप से ऐसा ही होता है.
- ट्रस्टस्टोर में सिर्फ़ सर्टिफ़िकेट होना चाहिए. इसका इस्तेमाल क्लाइंट (apigee-service पर आधारित कमांड या nodetool) JMX से कनेक्ट करने के लिए करते हैं.
ऊपर दी गई ज़रूरी शर्तों की पुष्टि करने के बाद:
- कीस्टोर फ़ाइल को
/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 को एसएसएल के साथ JMX के लिए कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
- 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 ## On FIPS enabled systems, when you are using non standard keystore, set the following: ## These can be skipped otherwise ## Possible values are JKS, PKCS12, BCFKS conf_cassandra_env_javax.net.ssl.keyStoreType=PKCS12 conf_cassandra_env_javax.net.ssl.keyStoreAlias=cassjmx-tls-alias
- फ़ाइल के मालिकाना हक को 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-service
Cassandra कमांड कॉन्फ़िगर करें.apigee-service
कमांड चलाते समय, आपको कुछ एनवायरमेंट वैरिएबल सेट करने होंगे. इनमें यहां दिए गए वैरिएबल शामिल हैं:apigee-service apigee-cassandra stop apigee-service apigee-cassandra wait_for_ready apigee-service apigee-cassandra ring apigee-service apigee-cassandra backup
JMX ऑथेंटिकेशन और एसएसएल के लिए,
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 ## If you are using a non standard truststore, set below, otherwise skip ## Possible values are JKS, PKCS12, BCFKS -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 पैरामीटर पास करने होते हैं. एसएसएल की सुविधा वाले JMX के साथ nodetool को चलाने के लिए, दो तरीके हैं. इनके बारे में यहां बताया गया है:
एसएसएल से जुड़े कॉन्फ़िगरेशन को nodetool में पास करने के तरीके के आधार पर, विकल्पों में अंतर होता है. दोनों ही मामलों में, nodetool चलाने वाले उपयोगकर्ता के पास truststore फ़ाइल को पढ़ने की अनुमतियां होनी चाहिए. इस्तेमाल करने में आसानी और सुरक्षा के तरीकों के आधार पर, कोई सही विकल्प चुनें.
nodetool पैरामीटर के बारे में ज़्यादा जानने के लिए, DataStax का दस्तावेज़ देखें.
कॉन्फ़िगरेशन का पहला विकल्प
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 ## If you are using a non standard truststore, set below, otherwise skip ## Possible values are JKS, PKCS12, BCFKS -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 नोड के लिए भी उपलब्ध हो सकती है): सभी नोड के लिए "Up" और "Normal" देखें.
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 संसाधन
इस यूआरएल पर जाएं: http://www.datastax.com/docs/1.0/operations/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 Management API का इस्तेमाल करना
मैनेजमेंट के टास्क को ऑटोमेट करने और ब्रोकर की निगरानी करने के लिए, 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 टूल के साथ काम करने वाले स्टैंडर्ड JKS कीस्टोर फ़ॉर्मैट को स्वीकार करता है. जैसे, keytool. यह PKCS12 कीस्टोर को भी स्वीकार कर सकता है. इसे OpenSSL जैसे टूल का इस्तेमाल करके जनरेट किया जा सकता है.
कीस्टोर तैयार करना
कीस्टोर जनरेट करने के लिए, Java Keytool का दस्तावेज़ देखें.
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.4.5-1392090, built on 09/30/2012 17:52 GMT 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
) देखी जा सकती हैं.