Edge for Private Cloud v4.18.05
इस दस्तावेज़ में, Apigee Edge के ऑन-प्राइमिस डिप्लॉयमेंट की मदद से काम करने वाले कॉम्पोनेंट की निगरानी करने की तकनीकों के बारे में बताया गया है.
खास जानकारी
Edge में, सेवाओं के बारे में जानकारी पाने और उनकी स्थिति देखने के कई तरीके उपलब्ध हैं. यहां दी गई टेबल में, ज़रूरी शर्तें पूरी करने वाली हर सेवा के लिए, जांच के अलग-अलग टाइप की जानकारी दी गई है:
सेवा | JMX:* मेमोरी का इस्तेमाल |
Mgmt API: सेवा की जांच करना |
मैनेजमेंट एपीआई: उपयोगकर्ता/संगठन/ डिप्लॉयमेंट का स्टेटस |
Mgmt एपीआई: axstatus |
डेटाबेस की जांच | apigee-service में डेटा सोर्स का स्टेटस |
---|---|---|---|---|---|---|
मैनेजमेंट सर्वर | ||||||
मैसेज प्रोसेसर | ||||||
Postgres | ||||||
Qpid | ||||||
राऊटर | ||||||
ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | ज़्यादा जानकारी | |
* JMX का इस्तेमाल करने से पहले, आपको इसे चालू करना होगा. इसके बारे में JMX चालू करना में बताया गया है. |
JMX और Management API मॉनिटरिंग पोर्ट
हर कॉम्पोनेंट, अलग-अलग पोर्ट पर JMX और Management API मॉनिटरिंग कॉल के साथ काम करता है. नीचे दी गई टेबल में, हर तरह के सर्वर के लिए JMX और Management API पोर्ट की सूची दी गई है:
कॉम्पोनेंट | JMX पोर्ट | Management API पोर्ट |
---|---|---|
मैनेजमेंट सर्वर | 1099 | 8080 |
राऊटर | 1100 | 8081 |
मैसेज प्रोसेसर | 1101 | 8082 |
Qpid | 1102 | 8083 |
Postgres | 1103 | 8084 |
JMX का इस्तेमाल करना
मैनेजमेंट सर्वर, मैसेज प्रोसेसर, Qpid, और Postgres की मॉनिटरिंग प्रोसेस, सभी JMX का इस्तेमाल करती हैं. हालांकि, JMX सिर्फ़ Cassandra के लिए डिफ़ॉल्ट रूप से चालू होता है. साथ ही, यह Edge के सभी अन्य कॉम्पोनेंट के लिए डिफ़ॉल्ट रूप से बंद होता है. इसलिए, हर कॉम्पोनेंट को मॉनिटर करने से पहले, आपको उसके लिए JMX को अलग से चालू करना होगा.
JMX ऑथेंटिकेशन की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. Cassandra को छोड़कर, सभी कॉम्पोनेंट के लिए JMX ऑथेंटिकेशन की सुविधा चालू की जा सकती है.
JMX चालू करना
JMX सिर्फ़ Cassandra के लिए डिफ़ॉल्ट रूप से चालू होता है. यह Edge के सभी दूसरे कॉम्पोनेंट के लिए डिफ़ॉल्ट रूप से बंद होता है. इस सेक्शन में, Edge के अन्य कॉम्पोनेंट के लिए JMX को चालू करने का तरीका बताया गया है.
JMX को चालू करने के लिए:
- कॉम्पोनेंट की कॉन्फ़िगरेशन फ़ाइल में बदलाव करें. यह फ़ाइल यहां मौजूद है
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, सेवा के लिए JMX पोर्ट है. अपनी सेवा का JMX पोर्ट नंबर पाने के लिए, JMX और मैनेजमेंट एपीआई मॉनिटरिंग पोर्ट देखें.
उदाहरण के लिए, मैनेजमेंट सर्वर पर JMX को चालू करने के लिए, Management Server की कॉन्फ़िगरेशन फ़ाइल में यह जोड़ें:
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
JMX के लिए पुष्टि करने की सुविधा, डिफ़ॉल्ट रूप से चालू नहीं होती है. Cassandra को छोड़कर, सभी कॉम्पोनेंट के लिए JMX ऑथेंटिकेशन की सुविधा चालू की जा सकती है. इसके बारे में JMX ऑथेंटिकेशन की सुविधा चालू करना में बताया गया है.
JMX की पुष्टि करने की सुविधा चालू करें
JMX ऑथेंटिकेशन की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. Cassandra को छोड़कर, सभी कॉम्पोनेंट के लिए JMX ऑथेंटिकेशन की सुविधा चालू की जा सकती है.
JMX पुष्टि करने की सुविधा चालू करने के लिए, सभी नोड पर यह change_jmx_auth
कार्रवाई करें:
/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]
कहां:
- component इनमें से कोई एक है:
edge-management-server
edge-message-processor
edge-postgres-server
edge-qpid-server
edge-router
- options में यह जानकारी दी गई है:
-u username
-p password
-e [y|n]
(चालू या बंद करें)
- config_file, कॉन्फ़िगरेशन फ़ाइल की जगह बताता है. इसमें ये चीज़ें तय की जाती हैं:
JMX_USERNAME=username
JMX_ENABLED=y|n
JMX_PASSWORD=password
(अगर यह सेट नहीं है या-p
के साथ पास नहीं किया गया है, तो आपसे कहा जाएगा)
उपयोगकर्ता नाम और पासवर्ड बताने के साथ-साथ, चालू/बंद करने की स्थिति बताने के लिए कमांड-लाइन वाले विकल्पों या कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल किया जा सकता है. आपने विकल्पों का सेट और कॉन्फ़िगरेशन फ़ाइल, दोनों की जानकारी नहीं दी है.
नीचे दिए गए उदाहरण में, कमांड लाइन के विकल्पों का इस्तेमाल करके, मैनेजमेंट सर्वर के लिए JMX पुष्टि की सुविधा चालू की गई है:
/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 को कई नोड पर चलाया जा रहा है, तो सभी नोड पर कमांड चलाएं. इसके लिए, एक ही उपयोगकर्ता नाम और पासवर्ड डालें.
कमांड लाइन पर JMX की पुष्टि करने की सुविधा बंद करने के लिए, "-e n" विकल्प का इस्तेमाल करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
JConsole की मदद से मॉनिटर करना
प्रोसेस के आंकड़ों को मैनेज और मॉनिटर करने के लिए, JConsole (JMX के साथ काम करने वाला टूल) का इस्तेमाल करें. JConsole की मदद से, अपने सर्वर से एक्सपोज़ किए गए JMX आंकड़ों का इस्तेमाल किया जा सकता है और उन्हें ग्राफ़िकल इंटरफ़ेस में दिखाया जा सकता है. ज़्यादा जानकारी के लिए, JConsole का इस्तेमाल करना लेख पढ़ें.
JConsole, JMX के ज़रिए ऑफ़र किए गए JMX एट्रिब्यूट (एमबीीन) को मॉनिटर करने के लिए, यहां दिए गए सेवा यूआरएल का इस्तेमाल करता है:
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 पोर्ट है. अन्य पोर्ट के लिए, JMX और Management API मॉनिटरिंग पोर्ट देखें.
इस टेबल में सामान्य JMX आंकड़े दिखाए गए हैं:
JMX एमबीन | JMX एट्रिब्यूट |
---|---|
मेमोरी |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
इस्तेमाल |
|
मैनेजमेंट एपीआई की मदद से मॉनिटर करना
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 पोर्ट नंबर की सूची के लिए, 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 है.
इस कॉल के लिए, आपको अपने सिस्टम एडमिन के उपयोगकर्ता नाम और पासवर्ड से पुष्टि करनी होगी.
सर्वर को सभी कॉल के लिए "डिप्लॉय किया गया" स्थिति देनी चाहिए. अगर ऐसा नहीं होता है, तो यह तरीका अपनाएं:
- किसी भी तरह की गड़बड़ी के लिए सर्वर लॉग देखें. लॉग यहां दिखते हैं:
- मैनेजमेंट सर्वर:
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-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, सेवा के लिए मैनेजमेंट एपीआई पोर्ट है.
इस उदाहरण में यह माना गया है कि आपने सर्वर में लॉग इन किया है और होस्टनेम के तौर पर "localhost" का इस्तेमाल किया जा सकता है. Management API की मदद से, कहीं से भी स्थिति देखने के लिए, आपको सर्वर का आईपी पता बताना होगा. साथ ही, अपने एपीआई कॉल में सिस्टम एडमिन का उपयोगकर्ता नाम और पासवर्ड शामिल करना होगा.
पोस्टग्रेस मॉनिटरिंग
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
सिस्टम को सभी Analytics सर्वर के लिए सफलता की स्थिति दिखानी चाहिए, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
{ "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
का इस्तेमाल करने वाले एपीआई कॉल का डिफ़ॉल्ट आउटपुट, Naios के साथ काम करने वाला है. स्क्रिप्ट इंस्टॉल करने के बाद, ये जांच करें:
- डेटाबेस का साइज़ देखें:
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"
पोस्टग्रेशन की प्रोसेस के स्वास्थ्य की स्थिति देखना
इस 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
JConsole का इस्तेमाल करें: टास्क के आंकड़ों पर नज़र रखें
JMX के ज़रिए ऑफ़र किए गए JMX एट्रिब्यूट (एमबीीन) को मॉनिटर करने के लिए, JConsole और यहां दिए गए सेवा यूआरएल का इस्तेमाल करें:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
जहां IP_address, कैसंड्रा सर्वर का आईपी है.
Cassandra के लिए, JMX डिफ़ॉल्ट रूप से चालू होता है. साथ ही, Cassandra के रिमोट JMX ऐक्सेस के लिए, पासवर्ड की ज़रूरत नहीं होती.
कैसंड्रा जेएमएक्स के आंकड़े
जेएमएक्स एमबीएन | JMX एट्रिब्यूट |
---|---|
ColumnFamilies/apprepo/environments ColumnFamilies/apprepo/organizations कॉलमFamilies/apprepo/apiप्रॉक्सी_revisions कॉलमFamilies/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 क्लस्टर नोड पर किए जा सकते हैं:
- रिंग की सामान्य जानकारी (एक कैसंड्रा नोड के लिए भी संभव है): सभी नोड के लिए
"अप" और "सामान्य" देखें.
nodetool -h localhost ring
ऊपर दिए गए कमांड का आउटपुट नीचे दिखाया गया है:
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 -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 -h localhost statusthrift
ऊपर दिए गए कमांड का आउटपुट इस तरह दिखता है:
running
- डेटा स्ट्रीमिंग की कार्रवाइयों की स्थिति: कैसंड्रा नोड के ट्रैफ़िक पर नज़र रखें:
nodetool -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 मॉनिटरिंग (यूज़र इंटरफ़ेस)
datastax opscenter का यूआरएल देखें: http://www.datastax.com/products/opscenter.
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
- इस कमांड की मदद से देखें कि मैनेजमेंट सर्वर अब भी LDAP से कनेक्ट है या नहीं:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
वापसी:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
OpenLDAP कैश मेमोरी पर भी नज़र रखी जा सकती है. इससे डिस्क ऐक्सेस की संख्या कम करने में मदद मिलती है और सिस्टम की परफ़ॉर्मेंस बेहतर होती है. OpenLDAP सर्वर में कैश मेमोरी के साइज़ को मॉनिटर करने और उसे ट्यून करने से, डायरेक्ट्री सर्वर की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है. कैश मेमोरी के बारे में जानकारी पाने के लिए, लॉग
फ़ाइलें (opt/apigee/var/log
) देखी जा सकती हैं.