इस दस्तावेज़ में, Apigee Edge के ऑन-प्राइमिस डिप्लॉयमेंट के साथ काम करने वाले कॉम्पोनेंट की निगरानी करने की तकनीकों के बारे में बताया गया है.
खास जानकारी
Edge में सेवाओं के बारे में जानकारी पाने और उनकी स्थिति देखने के कई तरीके उपलब्ध हैं. यहां दी गई टेबल में, ज़रूरी शर्तें पूरी करने वाली हर सेवा के लिए की जा सकने वाली जांचों के टाइप की सूची दी गई है:
| Mgmt API | |||||||
| सेवा | मेमोरी का इस्तेमाल [जेएमएक्स*] | सेवा की जांच | उपयोगकर्ता/संगठन/ डिप्लॉयमेंट का स्टेटस | axstatus | डेटाबेस की जांच | apigee-service स्टेटस |
apigee-monit** |
| मैनेजमेंट सर्वर | |||||||
| मैसेज प्रोसेसर | |||||||
| Postgres | |||||||
| Qpid | |||||||
| राऊटर | |||||||
| ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | |
|
* JMX का इस्तेमाल करने से पहले, आपको इसे चालू करना होगा. इसके लिए, JMX चालू करें में बताया गया तरीका अपनाएं. ** |
|||||||
जेएमएक्स और मैनेजमेंट एपीआई मॉनिटरिंग पोर्ट
हर कॉम्पोनेंट, अलग-अलग पोर्ट पर जेएमएक्स और मैनेजमेंट एपीआई मॉनिटरिंग कॉल के साथ काम करता है. नीचे दी गई टेबल में, हर तरह के सर्वर के लिए JMX और Management API पोर्ट की सूची दी गई है:
| कॉम्पोनेंट | जेएमएक्स पोर्ट | Management API पोर्ट |
|---|---|---|
| मैनेजमेंट सर्वर | 1099 | 8080 |
| राऊटर | 1100 | 8081 |
| मैसेज प्रोसेसर | 1101 | 8082 |
| Qpid | 1102 | 8083 |
| Postgres | 1103 | 8084 |
मॉनिटर करने के लिए जेएमएक्स का इस्तेमाल करना
मैनेजमेंट सर्वर, मैसेज प्रोसेसर, Qpid, और Postgres की निगरानी करने वाली सभी प्रोसेस, JMX का इस्तेमाल करती हैं. हालांकि, JMX सिर्फ़ Cassandra के लिए डिफ़ॉल्ट रूप से चालू होता है. साथ ही, Edge के अन्य सभी कॉम्पोनेंट के लिए डिफ़ॉल्ट रूप से बंद होता है. इसलिए, हर कॉम्पोनेंट को मॉनिटर करने से पहले, आपको उनके लिए अलग से जेएमएक्स को चालू करना होगा.
जेएमएक्स ऑथेंटिकेशन की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. सभी कॉम्पोनेंट के लिए, जेएमएक्स ऑथेंटिकेशन की सुविधा चालू की जा सकती है. Cassandra के लिए, Cassandra के लिए जेएमएक्स ऑथेंटिकेशन चालू करना में दिए गए निर्देशों का पालन करें.
JMX चालू करें
जेएमएक्स, Cassandra के लिए डिफ़ॉल्ट रूप से चालू होता है. हालांकि, Edge के अन्य सभी कॉम्पोनेंट के लिए यह डिफ़ॉल्ट रूप से बंद होता है. इस सेक्शन में, Edge के अन्य कॉम्पोनेंट के लिए जेएमएक्स को चालू करने का तरीका बताया गया है.
जेएमएक्स को चालू करने के लिए:
- कॉम्पोनेंट की कॉन्फ़िगरेशन फ़ाइल में बदलाव करें. यह फ़ाइल
opt/apigee/edge-component_name/bin/startमें मौजूद है. प्रोडक्शन एनवायरमेंट में, ये कॉन्फ़िगरेशन फ़ाइलें अलग-अलग मशीनों पर होंगी.हर सर्वर पर, फ़ाइल की इन जगहों में से कोई एक चुनें:
- मैनेजमेंट सर्वर:
/opt/apigee/edge-management-server/bin/start - मैसेज प्रोसेसर:
/opt/apigee/edge-message-processor/bin/start - Postgres:
/opt/apigee/edge-postgres-server/bin/start - Qpid:
/opt/apigee/edge-qpid-server/bin/start - राऊटर:
/opt/apigee/edge-router/bin/start
उदाहरण के लिए, मैनेजमेंट सर्वर के सर्वर पर मौजूद कॉन्फ़िगरेशन फ़ाइल,
/opt/apigee/edge-management-server/bin/startपर है. - मैनेजमेंट सर्वर:
- कॉम्पोनेंट शुरू करने वाली
execलाइन में, येcom.sun.management.jmxremoteविकल्प जोड़ें:-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=port_number \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false
इसमें port_number, सेवा के लिए जेएमएक्स पोर्ट है. अपनी सेवा का जेएमएक्स पोर्ट नंबर पाने के लिए, जेएमएक्स और मैनेजमेंट एपीआई मॉनिटरिंग पोर्ट देखें.
उदाहरण के लिए, मैनेजमेंट सर्वर पर जेएमएक्स को चालू करने के लिए, मैनेजमेंट सर्वर की कॉन्फ़िगरेशन फ़ाइल में यह जोड़ें:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts \ -Djava.security.auth.login.config=$conf_path/jaas.config \ -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path \ -Ddata.dir=$data_dir \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=1099 \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ $* $debug_options com.apigee.kernel.MicroKernel
इस उदाहरण में, मैनेजमेंट सर्वर के लिए पोर्ट 1099 तय किया गया है. जैसा कि पहले बताया गया है, हर सेवा का अपना पोर्ट नंबर होता है.
कॉन्फ़िगरेशन फ़ाइल में बदली गई लाइन कुछ इस तरह दिखती है:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false $* $debug_options com.apigee.kernel.MicroKernel
- कॉन्फ़िगरेशन फ़ाइल को सेव करें.
restartकमांड का इस्तेमाल करके, कॉम्पोनेंट को रीस्टार्ट करें.उदाहरण के लिए, मैनेजमेंट सर्वर को रीस्टार्ट करने के लिए, यह कमांड चलाएं:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
जेएमएक्स के लिए, पुष्टि करने की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. सभी कॉम्पोनेंट के लिए, जेएमएक्स ऑथेंटिकेशन की सुविधा चालू की जा सकती है. इसके बारे में जेएमएक्स ऑथेंटिकेशन की सुविधा चालू करना लेख में बताया गया है. Cassandra के लिए JMX की मदद से पुष्टि करने की सुविधा चालू करने के लिए, Cassandra के लिए JMX की मदद से पुष्टि करने की सुविधा चालू करना लेख पढ़ें.
जेएमएक्स की मदद से पुष्टि करने की सुविधा चालू करना
जेएमएक्स ऑथेंटिकेशन की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. सभी कॉम्पोनेंट के लिए, जेएमएक्स ऑथेंटिकेशन की सुविधा चालू की जा सकती है. Cassandra के लिए, Cassandra के लिए जेएमएक्स ऑथेंटिकेशन चालू करें में दिए गए निर्देशों का पालन करें
जेएमएक्स ऑथेंटिकेशन की सुविधा चालू करने के लिए, सभी नोड पर यह change_jmx_auth कार्रवाई करें:
/opt/apigee/apigee-service/bin/apigee-service component_name change_jmx_auth [options|-f config_file]
कहां:
- component इनमें से कोई एक है:
edge-management-serveredge-message-processoredge-postgres-serveredge-qpid-serveredge-router
- options में यह जानकारी दी गई है:
-u username-p password-e [y|n](चालू या बंद करें)
- config_file, कॉन्फ़िगरेशन फ़ाइल की जगह की जानकारी देता है. इसमें आपको ये चीज़ें तय करनी होती हैं:
JMX_USERNAME=usernameJMX_ENABLED=y|nJMX_PASSWORD=password(अगर सेट नहीं किया गया है या-pके साथ पास नहीं किया गया है, तो आपको सूचना दी जाएगी)
उपयोगकर्ता नाम, पासवर्ड, और चालू/बंद करने की स्थिति तय करने के लिए, कमांड लाइन के विकल्पों या कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल किया जा सकता है. विकल्पों का सेट और कॉन्फ़िगरेशन फ़ाइल, दोनों को एक साथ तय नहीं किया जा सकता.
नीचे दिए गए उदाहरण में, कमांड लाइन के विकल्पों का इस्तेमाल करके, मैनेजमेंट सर्वर के लिए जेएमएक्स ऑथेंटिकेशन को चालू किया गया है:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -u foo -p bar -e yयहां दिए गए उदाहरण में, कमांड लाइन के विकल्पों के बजाय कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल किया गया है:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -f /tmp/my-config-fileअगर Edge को कई नोड पर चलाया जा रहा है, तो सभी नोड पर कमांड चलाएं. साथ ही, एक ही उपयोगकर्ता नाम और पासवर्ड डालें.
कमांड लाइन पर जेएमएक्स ऑथेंटिकेशन को बंद करने के लिए, "-e n" विकल्प का इस्तेमाल करें. इसके बारे में यहां दिए गए उदाहरण में बताया गया है:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -e nJConsole की मदद से मॉनिटर करना
JConsole (जेएमएक्स के साथ काम करने वाला टूल) का इस्तेमाल करके, हेल्थ चेक और प्रोसेस के आंकड़ों को मैनेज और मॉनिटर करें. 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 MBeans | जेएमएक्स एट्रिब्यूट |
|---|---|
|
मेमोरी |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
इस्तेमाल |
|
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
सिस्टम को संगठन और एनवायरमेंट का नाम दिखाना चाहिए.
Analytics की स्थिति की पुष्टि करना
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इंस्टॉल किया हो. यह एक पर्ल मॉड्यूल है, जो हाई रिज़ॉल्यूशन अलार्म, स्लीप, 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}/data/apigee-cassandra/jmxremote.password conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/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/data/apigee-cassandra/में कॉपी करें:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password jmxremote.passwordफ़ाइल में बदलाव करें. इसके बाद, इस सिंटैक्स का इस्तेमाल करके अपना जेएमएक्स उपयोगकर्ता नाम और पासवर्ड जोड़ें:JMX_USERNAME JMX_PASSWORD
जहां JMX_USERNAME और JMX_PASSWORD, जेएमएक्स का उपयोगकर्ता नाम और पासवर्ड हैं, जिन्हें आपने पहले सेट किया था.
- पक्का करें कि फ़ाइल का मालिकाना हक "apigee" के पास हो और फ़ाइल मोड 400 हो:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
- इस फ़ाइल को अपनी
jmxremote.accessफ़ाइल को कॉपी करें और उसमें बदलाव करें:- इस फ़ाइल को अपनी
$JAVA_HOMEडायरेक्ट्री से/opt/apigee/data/apigee-cassandra/में कॉपी करें:cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access - jmxremote.access फ़ाइल में बदलाव करें और यह भूमिका जोड़ें:
JMX_USERNAME readwrite
- पक्का करें कि फ़ाइल का मालिकाना हक "apigee" के पास हो और फ़ाइल मोड 400 हो:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/data/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 नोड पर यह प्रोसेस दोहराएं.
जेएमएक्स पासवर्ड एन्क्रिप्शन की सुविधा चालू करना
जेएमएक्स पासवर्ड को एन्क्रिप्ट (सुरक्षित) करने की सुविधा चालू करने के लिए, यह तरीका अपनाएं:
source/conf/casssandra-env.shफ़ाइल खोलें.- फ़ाइल में मौजूद इन लाइनों को अनकमेंट करें:
-
JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config={T}conf_cassandra-env_java.security.auth.login.config{/T}" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.login.config=ApigeeSecureFileLoginModule"
-
- कमांड लाइन पर, अपनी पसंद के पासवर्ड के SHA1 हैश जनरेट करें. इसके लिए, यह डालें
echo -n 'Secret' | openssl dgst -sha1 jmxremote.passwordमें उपयोगकर्ता नाम के लिए पासवर्ड सेट करें.- अपडेट करने के बाद, फ़ाइल
cassandra-env.shको फिर से 'सिर्फ़ पढ़ने के लिए' मोड में बदलें.
Cassandra के लिए, एसएसएल के साथ जेएमएक्स चालू करना
एसएसएल के साथ जेएमएक्स को चालू करने से, Cassandra के साथ जेएमएक्स-आधारित कम्यूनिकेशन के लिए अतिरिक्त सुरक्षा और एन्क्रिप्शन की सुविधा मिलती है. एसएसएल के साथ जेएमएक्स को चालू करने के लिए, आपको Cassandra को एक कुंजी और सर्टिफ़िकेट देना होगा, ताकि वह एसएसएल पर आधारित जेएमएक्स कनेक्शन स्वीकार कर सके. आपको एसएसएल के लिए, nodetool (और जेएमएक्स पर Cassandra के साथ कम्यूनिकेट करने वाले अन्य टूल) को भी कॉन्फ़िगर करना होगा.
एसएसएल की सुविधा वाला जेएमएक्स, सादे टेक्स्ट और एन्क्रिप्ट (सुरक्षित) किए गए जेएमएक्स पासवर्ड, दोनों के साथ काम करता है.
Cassandra के लिए एसएसएल के साथ जेएमएक्स को चालू करने के लिए, यह तरीका अपनाएं:
- जेएमएक्स चालू करें. अगर ज़रूरी हो, तो पासवर्ड एन्क्रिप्ट (सुरक्षित) करने की सुविधा चालू करें.
- Cassandra के लिए, JMX की मदद से पुष्टि करने की सुविधा चालू करें.
जैसा कि ऊपर बताया गया है. पक्का करें कि nodetool, कॉन्फ़िगर किए गए उपयोगकर्ता नाम और पासवर्ड के साथ काम कर रहा हो.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
कीस्टोर और ट्रस्टस्टोर तैयार करें.
कीस्टोर में एक कुंजी और सर्टिफ़िकेट होना चाहिए. इसका इस्तेमाल, Cassandra सर्वर को कॉन्फ़िगर करने के लिए किया जाता है. अगर कीस्टोर में एक से ज़्यादा कुंजियों के जोड़े हैं, तो Cassandra एसएसएल को चालू करने के लिए, कुंजियों के पहले जोड़े का इस्तेमाल करता है.
ध्यान दें कि कीस्टोर और कुंजी के पासवर्ड एक जैसे होने चाहिए. कीटूल का इस्तेमाल करके कुंजी जनरेट करने पर, यह डिफ़ॉल्ट रूप से होता है.
- ट्रस्टस्टोर में सिर्फ़ सर्टिफ़िकेट होना चाहिए. इसका इस्तेमाल क्लाइंट (apigee-service पर आधारित कमांड या nodetool) जेएमएक्स से कनेक्ट करने के लिए करते हैं.
ऊपर बताई गई ज़रूरी शर्तों की पुष्टि करने के बाद:
- कीस्टोर फ़ाइल को
/opt/apigee/data/apigee-cassandraमें रखें. - यह पक्का करें कि कीस्टोर फ़ाइल को सिर्फ़ Apigee उपयोगकर्ता पढ़ सके. इसके लिए, यह डालें
chown apigee:apigee /opt/apigee/data/apigee-cassandra/keystore.node1 chmod 400 /opt/apigee/data/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
फ़ाइल का मालिकाना हक
apigee:apigeeके पास होना चाहिए. - Cassandra में एसएसएल से जुड़े कॉन्फ़िगरेशन को इस तरह चालू करें.
फ़ाइल
/opt/apigee/apigee-cassandra/source/conf/cassandra-env.shखोलें और नीचे दी गई लाइनों को अनकमेंट करें. साथ ही, ज़रूरत के हिसाब से पाथ/opt/apigee/data/apigee-cassandra/keystore.node1और कीस्टोर पासवर्ड बदलें. पक्का करें कि फ़ाइल का मालिकाना हकJVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node1" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keystore-password" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true"
apigee:apigeeके पास हो. - 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
पक्का करें कि 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>
यह
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> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
nodetool सेट अप करें. Nodetool को JMX पैरामीटर पास करने की ज़रूरत होती है. nodetool को एसएसएल की सुविधा वाले JMX के साथ चलाने के लिए, दो तरीके हैं. इनके बारे में यहां दिए गए कॉन्फ़िगरेशन के विकल्पों में बताया गया है:
एसएसएल से जुड़े कॉन्फ़िगरेशन को nodetool को पास करने के तरीके के आधार पर, विकल्प अलग-अलग होते हैं. दोनों ही मामलों में, nodetool चलाने वाले उपयोगकर्ता के पास ट्रस्टस्टोर फ़ाइल को पढ़ने की अनुमति होनी चाहिए. उपयोगिता और सुरक्षा के तरीकों के आधार पर, सही विकल्प चुनें.
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
ऊपर बताया गया ट्रस्टस्टोर पाथ, 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 -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 के ज़रिए उपलब्ध कराए गए JMX एट्रिब्यूट (MBeans) को मॉनिटर करने के लिए, JConsole और यहां दिए गए सेवा यूआरएल का इस्तेमाल करें:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
इसमें IP_address, Cassandra सर्वर का आईपी है.
Cassandra JMX के आंकड़े
| JMX MBeans | जेएमएक्स एट्रिब्यूट |
|---|---|
|
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
- डेटा स्ट्रीमिंग की कार्रवाइयों की स्थिति: Cassandra नोड के लिए ट्रैफ़िक देखें:
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 ZooKeeper
ZooKeeper का स्टेटस देखना
- पक्का करें कि ZooKeeper प्रोसेस चल रही हो. ZooKeeper,
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.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
एलडीएपी लेवल टेस्ट
OpenLDAP को मॉनिटर करके यह देखा जा सकता है कि खास अनुरोधों को सही तरीके से पूरा किया जा रहा है या नहीं. दूसरे शब्दों में, किसी ऐसी खोज के लिए जांच करें जो सही नतीजा दिखाती है.
- सिस्टम एडमिन की एंट्री के बारे में क्वेरी करने के लिए,
ldapsearch(yum install openldap-clients) का इस्तेमाल करें. इस एंट्री का इस्तेमाल, सभी एपीआई कॉल की पुष्टि करने के लिए किया जाता है.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
- इस कमांड का इस्तेमाल करके देखें कि मैनेजमेंट सर्वर अब भी एलडीएपी से कनेक्ट है या नहीं:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
वापसी:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
OpenLDAP कैश मेमोरी को भी मॉनिटर किया जा सकता है. इससे डिस्क ऐक्सेस की संख्या कम करने में मदद मिलती है.
इस वजह से, सिस्टम की परफ़ॉर्मेंस बेहतर होती है. OpenLDAP सर्वर में कैश मेमोरी के साइज़ को मॉनिटर करने और फिर उसे ट्यून करने से, डायरेक्ट्री सर्वर की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है. कैश मेमोरी के बारे में जानकारी पाने के लिए, लॉग फ़ाइलें (opt/apigee/var/log) देखी जा सकती हैं.