Edge for Private Cloud v. 4.17.05
इस दस्तावेज़ में, Apigee Edge के ऑन-प्राइमिस डिप्लॉयमेंट के साथ काम करने वाले कॉम्पोनेंट की निगरानी करने की तकनीकों के बारे में बताया गया है.
जेएमएक्स को चालू करना
Cassandra के लिए, JMX डिफ़ॉल्ट रूप से चालू होता है. साथ ही, Edge के अन्य सभी कॉम्पोनेंट के लिए, यह डिफ़ॉल्ट रूप से बंद होता है. इसलिए, आपको हर कॉम्पोनेंट के लिए, JMX को अलग से चालू करना होगा.
हर कॉम्पोनेंट, अलग-अलग पोर्ट पर जेएमएक्स के साथ काम करता है. नीचे दी गई टेबल में, जेएमएक्स पोर्ट और उस फ़ाइल की सूची दी गई है जिसमें बदलाव करके, उस पोर्ट पर जेएमएक्स को चालू किया जा सकता है:
| कॉम्पोनेंट | जेएमएक्स पोर्ट | फ़ाइल |
|---|---|---|
| मैनेजमेंट सर्वर | 1099 | /opt/apigee/edge-management-server/bin/start |
| मैसेज प्रोसेसर | 1101 | /opt/apigee/edge-mesage-processor/bin/start |
| Qpid | 1102 | /opt/apigee/edge-qpid-server/bin/start |
| Postgres | 1103 | /opt/apigee/edge-postgres-server/bin/start |
उदाहरण के लिए, मैनेजमेंट सर्वर पर जेएमएक्स को चालू करने के लिए, किसी एडिटर में /opt/apigee/edge-management-server/bin/start खोलें. आपको मैनेजमेंट सर्वर शुरू करने के लिए, यह लाइन दिखेगी:
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 $* $debug_options com.apigee.kernel.MicroKernel
इस लाइन में बदलाव करके, यह जानकारी जोड़ें:
-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
ध्यान दें कि यह लाइन, मैनेजमेंट सर्वर के लिए जेएमएक्स पोर्ट नंबर को 1099 के तौर पर तय करती है. ऊपर दी गई टेबल में बताए गए तरीके से, हर कॉम्पोनेंट के लिए पोर्ट नंबर सेट करें. उदाहरण के लिए:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -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 -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel
फ़ाइल सेव करें और फिर कॉम्पोनेंट को रीस्टार्ट करें. उदाहरण के लिए, मैनेजमेंट सर्वर को रीस्टार्ट करने के लिए:
> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart
जेएमएक्स की पुष्टि करने की सुविधा चालू करना और जेएमएक्स पासवर्ड सेट करना
मैनेजमेंट सर्वर, मैसेज प्रोसेसर, Qpid, और Postgres की निगरानी की प्रोसेस के लिए, JMX का इस्तेमाल किया जाता है. डिफ़ॉल्ट रूप से, रिमोट जेएमएक्स ऐक्सेस के लिए पासवर्ड की ज़रूरत नहीं होती.
जेएमएक्स ऑथेंटिकेशन को चालू करने के लिए, हर कॉम्पोनेंट में change_jmx_auth कार्रवाई होती है. इसका इस्तेमाल, ऑथेंटिकेशन को चालू/बंद करने और जेएमएक्स क्रेडेंशियल सेट करने के लिए किया जाता है.
जेएमएक्स ऑथेंटिकेशन की सुविधा चालू करने के लिए, इस कमांड का इस्तेमाल करें:
> /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile
कहां:
- comp, edge-management-server, edge-message-processor, edge-qpid-server, या edge-postgres-server में से कोई एक है.
- इसके विकल्प:
- -u: उपयोगकर्ता नाम
- -p: पासवर्ड
- -e: y (चालू करें) या n (बंद करें)
- कॉन्फ़िगरेशन फ़ाइल में ये शामिल होते हैं:
- JMX_USERNAME=username
- JMX_ENABLED=y/n
- JMX_PASSWORD=password (अगर सेट नहीं किया गया है या -p के साथ पास नहीं किया गया है, तो आपको प्रॉम्प्ट किया जाएगा)
उदाहरण के लिए, कमांड लाइन पर विकल्पों का इस्तेमाल करने के लिए:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
अगर आपके पास कोई कॉन्फ़िगरेशन फ़ाइल है, तो:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile
अगर Edge को कई नोड पर चलाया जा रहा है, तो इस निर्देश को सभी नोड पर चलाएं. साथ ही, एक ही उपयोगकर्ता नाम और पासवर्ड डालें.
बाद में जेएमएक्स ऑथेंटिकेशन को बंद करने के लिए, इस कमांड का इस्तेमाल करें:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
मैनेजमेंट सर्वर
सिस्टम की परफ़ॉर्मेंस की जांच और प्रोसेस की जानकारी को मॉनिटर करने के लिए, JConsole का इस्तेमाल करना
JConsole (जेएमएक्स के साथ काम करने वाला टूल) का इस्तेमाल करके, हेल्थ चेक और प्रोसेस के आंकड़ों को मैनेज और मॉनिटर करें. JConsole का इस्तेमाल करके, मैनेजमेंट सर्वर (या किसी भी सर्वर) से मिले जेएमएक्स आंकड़ों का इस्तेमाल किया जा सकता है. साथ ही, उन्हें ग्राफ़िकल इंटरफ़ेस में दिखाया जा सकता है. JConsole के इस्तेमाल के बारे में ज़्यादा जानने के लिए, http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html पर जाएं.
जेएमएक्स के ज़रिए उपलब्ध कराए गए जेएमएक्स एट्रिब्यूट (एमबीन्स) को मॉनिटर करने के लिए, JConsole और इस सेवा यूआरएल का इस्तेमाल करें.
service:jmx:rmi:///jndi/rmi://<ip address>:<port>/jmxrmi
जहां <ip address>, मैनेजमेंट सर्वर (या संबंधित सर्वर) का आईपी पता है. मैनेजमेंट सर्वर के लिए, डिफ़ॉल्ट रूप से पोर्ट 1099 होता है.
यहां दी गई टेबल में, सामान्य जेएमएक्स आंकड़े दिखाए गए हैं:
|
जेएमएक्स एमबीन्स |
जेएमएक्स एट्रिब्यूट |
|---|---|
|
मेमोरी |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
इस्तेमाल |
|
|
ध्यान दें: एट्रिब्यूट की वैल्यू चार वैल्यू में दिखेंगी: कमिटेड, इनिट, मैक्स, और यूज़्ड. |
|
Edge ऐप्लिकेशन एपीआई की जांच का इस्तेमाल करना
मैनेजमेंट सर्वर (या किसी भी सर्वर) पर एपीआई की जांच की जा सकती है. इसके लिए, यहां दिया गया CURL कमांड इस्तेमाल करें:
curl http://<host>:8080/v1/servers/self/up
जहां, <host> मैनेजमेंट सर्वर का आईपी पता है.
यह कॉल, "सही" और "गलत" वैल्यू दिखाता है. अगर वैल्यू true है, तो इसका मतलब है कि नोड चालू है और Java सेवा चल रही है.
अगर आपको एचटीटीपी 200 (OK) रिस्पॉन्स नहीं मिलता है, तो इसका मतलब है कि Edge, पोर्ट 8080 के अनुरोधों का जवाब नहीं दे पा रहा है.
समस्या का हल
- सर्वर में लॉगिन करें और यह कमांड चलाएं:
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server status - अगर सेवा चालू नहीं है, तो उसे चालू करें:
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server start
Edge का इस्तेमाल करना ऐप्लिकेशन – उपयोगकर्ता, संगठन, और डिप्लॉयमेंट की जांच
मैनेजमेंट सर्वर, हर ऑन-प्राइमिस इंस्टॉलेशन में अन्य सभी पार्सल को एक साथ रखने में अहम भूमिका निभाता है. मैनेजमेंट सर्वर पर उपयोगकर्ता, संगठन, और डिप्लॉयमेंट की स्थिति देखी जा सकती है. इसके लिए, ये कमांड दें:
curl -u userEmail:password http://localhost:8080/v1/users curl -u userEmail:password http://localhost:8080/v1/organizations curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments
सिस्टम को सभी कॉल के लिए, "डिप्लॉय किया गया" स्टेटस दिखाना चाहिए. अगर ये तरीके काम न करें, तो यह तरीका अपनाएं:
- किसी भी गड़बड़ी का पता लगाने के लिए, मैनेजमेंट सर्वर के लॉग (<inst_root>/apigee/var/log/edge-management-server पर) देखें.
- मैनेजमेंट सर्वर पर कॉल करके देखें कि वह ठीक से काम कर रहा है या नहीं.
- ईएलबी से सर्वर को हटाएं और फिर मैनेजमेंट सर्वर को रीस्टार्ट करें.
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server restart
राऊटर
राऊटर (या किसी सर्वर) पर एपीआई की जांच की जा सकती है. इसके लिए, यहां दिया गया CURL कमांड इस्तेमाल करें:
curl http://<host>:8081/v1/servers/self/up
यहां, होस्ट, राऊटर का आईपी पता है.
यह कॉल, "सही" और "गलत" वैल्यू दिखाता है. अगर यह वैल्यू true है, तो इसका मतलब है कि नोड चालू है और राऊटर सेवा चल रही है.
अगर आपको एचटीटीपी 200 (ठीक है) जवाब नहीं मिलता है, तो इसका मतलब है कि Edge, पोर्ट 8081 के अनुरोधों का जवाब नहीं दे पा रहा है.
समस्या का हल
- सर्वर में लॉगिन करें और ये कमांड चलाएं:
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-router status - अगर सेवा चालू नहीं है, तो सेवा चालू करें
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-router start - रीस्टार्ट करने के बाद, जांच लें कि यह काम कर रहा है
curl -v http://localhost:port/v1/servers/self/up
यहां, राऊटर के लिए port 8081 और मैसेज प्रोसेसर के लिए 8082 है.
मैसेज प्रोसेसर
सिस्टम की परफ़ॉर्मेंस की जांच और प्रोसेस की जानकारी को मॉनिटर करने के लिए, JConsole का इस्तेमाल करना
मैनेजमेंट सर्वर के लिए, ऊपर बताया गया तरीका अपनाएं.
ध्यान दें: पक्का करें कि आपने पोर्ट – 1101 का इस्तेमाल किया हो.
Edge ऐप्लिकेशन एपीआई की जांच का इस्तेमाल करना
राऊटर के लिए ऊपर बताया गया तरीका अपनाएं.
ध्यान दें: पक्का करें कि आपने पोर्ट – 8082 का इस्तेमाल किया हो.
जेएमएक्स मैसेज फ़्लो की जांच का इस्तेमाल करना
मैनेजमेंट सर्वर के लिए, ऊपर बताया गया तरीका अपनाएं.
ध्यान दें: पक्का करें कि आपने पोर्ट – 1101 का इस्तेमाल किया हो.
Qpid Server
सिस्टम की परफ़ॉर्मेंस की जांच और प्रोसेस की जानकारी को मॉनिटर करने के लिए, JConsole का इस्तेमाल करना
मैनेजमेंट सर्वर के लिए, ऊपर बताया गया तरीका अपनाएं.
ध्यान दें: पक्का करें कि आपने पोर्ट – 1102 का इस्तेमाल किया हो.
Edge ऐप्लिकेशन एपीआई की जांच का इस्तेमाल करना
मैनेजमेंट सर्वर के लिए, ऊपर बताया गया तरीका अपनाएं.
ध्यान दें: पक्का करें कि आपने पोर्ट – 8083 का इस्तेमाल किया हो. Qpid सर्वर के लिए, यह CURL कमांड भी इस्तेमाल किया जा सकता है:
curl http://<qpid_IP>:8083/v1/servers/self
Postgres सर्वर
सिस्टम की परफ़ॉर्मेंस की जांच और प्रोसेस की जानकारी को मॉनिटर करने के लिए, JConsole का इस्तेमाल करना
मैनेजमेंट सर्वर के लिए, ऊपर बताया गया तरीका अपनाएं.
ध्यान दें: पक्का करें कि आपने पोर्ट – 1103 का इस्तेमाल किया हो.
Edge ऐप्लिकेशन एपीआई की जांच का इस्तेमाल करना
मैनेजमेंट सर्वर के लिए, ऊपर बताया गया तरीका अपनाएं.
ध्यान दें: पक्का करें कि आपने पोर्ट – 8084 का इस्तेमाल किया हो. Postgres सर्वर के लिए, यह CURL कमांड भी इस्तेमाल किया जा सकता है:
curl http://<postgres_IP>:8084/v1/servers/self
Edge का इस्तेमाल करना ऐप्लिकेशन संगठन और एनवायरमेंट की जांच
Postgres सर्वर पर शामिल किए गए संगठन और एनवायरमेंट का नाम देखने के लिए, यहां दिए गए CURL कमांड का इस्तेमाल करें:
curl http:// <postgres_IP>:8084/v1/servers/self/organizations
ध्यान दें: पक्का करें कि आपने पोर्ट – 8084 का इस्तेमाल किया हो.
सिस्टम को संगठन और एनवायरमेंट का नाम दिखाना चाहिए.
Edge ऐप्लिकेशन की axstatus की जांच करना
यहां दिया गया CURL कमांड जारी करके, Analytics सर्वर की स्थिति की पुष्टि की जा सकती है.
curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus
सिस्टम को सभी Analytics सर्वर के लिए, SUCCESS स्टेटस दिखाना चाहिए. ऊपर दिए गए CURL कमांड का आउटपुट यहां दिखाया गया है:
{
"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 डेटाबेस
check_postgres.pl स्क्रिप्ट का इस्तेमाल करना
PostgreSQL डेटाबेस को मॉनिटर करने के लिए, स्टैंडर्ड मॉनिटरिंग स्क्रिप्ट check_postgres.pl का इस्तेमाल किया जा सकता है. यह स्क्रिप्ट, http://bucardo.org/wiki/Check_postgres पर उपलब्ध है.
ध्यान दें: check_postgres.pl स्क्रिप्ट को हर Postgres नोड में इंस्टॉल करना ज़रूरी है.
स्क्रिप्ट चलाने से पहले:
- पक्का करें कि आपने perl-Time-HiRes.x86_64 इंस्टॉल किया हो. यह एक पर्ल मॉड्यूल है, जो हाई रिज़ॉल्यूशन अलार्म, स्लीप, gettimeofday, और इंटरवल टाइमर लागू करता है. उदाहरण के लिए, इस निर्देश का इस्तेमाल करके इसे इंस्टॉल किया जा सकता है:
yum install perl-Time-HiRes.x86_64
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
ध्यान दें: अगर आपको ऊपर दिए गए कमांड इस्तेमाल करने में कोई मदद चाहिए, तो कृपया http://bucardo.org/check_postgres/check_postgres.pl.html पर जाएं.
डीबी की जांच
यह पुष्टि की जा सकती है कि PostgreSQL डेटाबेस में सही टेबल बनाई गई हैं. PostgreSQL डेटाबेस में लॉगिन करने के लिए, इनका इस्तेमाल करें:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
इसके बाद, यह चलाएं:
\d analytics."<org>.<env>.fact"
Postgres प्रोसेस की परफ़ॉर्मेंस की स्थिति देखना
Postgres मशीन पर एपीआई की जांच करने के लिए, यह CURL कमांड इस्तेमाल करें:
http://<postgres_IP>:8084/v1/servers/self/health/
ध्यान दें: पक्का करें कि आपने पोर्ट 8084 का इस्तेमाल किया हो.
postgres प्रोसेस चालू होने पर, यह ‘ACTIVE’ स्टेटस दिखाता है. अगर postgres प्रोसेस चालू नहीं है, तो यह ‘INACTIVE’ स्टेटस दिखाता है.
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 का इस्तेमाल करके – टास्क के आंकड़ों को मॉनिटर करना
जेएमएक्स के ज़रिए उपलब्ध कराए गए जेएमएक्स एट्रिब्यूट (एमबीन्स) को मॉनिटर करने के लिए, JConsole और इस सेवा यूआरएल का इस्तेमाल करें.
service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi
जहां <ip address>, Cassandra सर्वर का आईपी पता है.
Cassandra के लिए, JMX डिफ़ॉल्ट रूप से चालू होता है. साथ ही, Cassandra के लिए रिमोट JMX ऐक्सेस के लिए, पासवर्ड की ज़रूरत नहीं होती.
पासवर्ड जोड़ने के लिए, जेएमएक्स ऑथेंटिकेशन चालू करने का तरीका:
- /<inst_root>/apigee/customer/application/cassandra.properties में बदलाव करें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
- फ़ाइल में यह जोड़ें:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - फ़ाइल सेव करें.
- इन फ़ाइलों को अपनी $JAVA_HOME डायरेक्ट्री से
/<inst_root>/apigee/data/apigee-cassandra/ में कॉपी करें:
cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access - jmxremote.password में बदलाव करें और
फ़ाइल में उपयोगकर्ता नाम और पासवर्ड जोड़ें:
cassandra password
जहां password, JMX पासवर्ड है. - jmxremote.access में बदलाव करें और
यह भूमिका जोड़ें:
cassandra readwrite - पक्का करें कि फ़ाइलों का मालिकाना हक "apigee" के पास हो और फ़ाइल मोड 400 हो:
> chown apigee:apigee /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
> chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.* - Cassandra पर configure चलाएं:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - Cassandra को रीस्टार्ट करें:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
बाद में, पुष्टि करने की सुविधा बंद करने के लिए:
- /<inst_root>/apigee/customer/application/cassandra.properties में बदलाव करें.
- फ़ाइल से यह लाइन हटाएं:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Cassandra पर कॉन्फ़िगरेशन चलाएं:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - Cassandra को रीस्टार्ट करें:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
Cassandra 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 के लिए एक कमांड लाइन इंटरफ़ेस है. इसका इस्तेमाल क्लस्टर नोड को मैनेज करने के लिए किया जाता है. यह यूटिलिटी <inst_root>/apigee/apigee-cassandra/bin पर देखी जा सकती है.
नोडटूल यूटिलिटी के बारे में ज़्यादा जानकारी के लिए, http://www.datastax.com/docs/1.0/references/nodetool पर जाएं.
सभी Cassandra क्लस्टर नोड पर ये कॉल किए जा सकते हैं:
- रिंग की सामान्य जानकारी (यह सिंगल Cassandra नोड के लिए भी संभव है): सभी नोड के लिए, "Up" और "Normal" देखें.
[host]# nodetool -h localhost ring
ऊपर दिए गए निर्देश का आउटपुट इस तरह दिखता है:
Address DC Rack Status State Load Owns Token
192.168.124.201 dc1 ra1 Up Normal 1.67 MB 33,33% 0
192.168.124.202 dc1 ra1 Up Normal 1.68 MB 33,33% 56713727820156410577229101238628035242
192.168.124.203 dc1 ra1 Up Normal 1.67 MB 33,33% 113427455640312821154458202477256070484 - नोड के बारे में सामान्य जानकारी (हर नोड के लिए कॉल)
nodetool -h localhost info
ऊपर दिए गए निर्देश का आउटपुट इस तरह दिखता है:
Token : 0
Gossip active : true
Load : 1.67 MB
Generation No : 1361968765
Uptime (seconds) : 78108
Heap Memory (MB) : 46,80 / 772,00
Data Center : dc1
Rack : ra1
Exceptions : 0 - थ्रिफ़्ट सर्वर की स्थिति (क्लाइंट एपीआई की सेवा देना)
host]# nodetool -h localhost statusthrift
ऊपर दिए गए निर्देश का आउटपुट, स्थिति को "चल रहा है" के तौर पर दिखाता है. - डेटा स्ट्रीमिंग की प्रोसेस की स्थिति: Cassandra नोड के लिए ट्रैफ़िक देखें
nodetool -h localhost netstats 192.168.124.203
ऊपर दिए गए निर्देश का आउटपुट इस तरह दिखता है:
Mode: NORMAL
Nothing streaming to /192.168.124.203
Nothing streaming from /192.168.124.203
Pool Name Active Pending Completed
Commands n/a 0 1688
Responses n/a 0 292277
Cassandra Monitoring (यूज़र इंटरफ़ेस)
datastax opscenter का यूआरएल देखें: http://www.datastax.com/products/opscenter.
Cassandra Resource
इस यूआरएल पर जाएं: http://www.datastax.com/docs/1.0/operations/monitoring.
Apache ZooKeeper
ZooKeeper की स्थिति की जांच करना
- पक्का करें कि ZooKeeper प्रोसेस चल रही हो. ZooKeeper, <inst_root>/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid में पीआईडी फ़ाइल लिखता है.
- ZooKeeper पोर्ट की जांच करें, ताकि यह पक्का किया जा सके कि हर ZooKeeper सर्वर पर पोर्ट 2181 और 3888 के लिए टीसीपी कनेक्शन बनाया जा सकता है.
- पक्का करें कि ZooKeeper डेटाबेस से वैल्यू पढ़ी जा सकती हों. ZooKeeper क्लाइंट लाइब्रेरी (या /<inst_root>/apigee/apigee-zookeeper/bin/zkCli.sh) का इस्तेमाल करके कनेक्ट करें और डेटाबेस से कोई वैल्यू पढ़ें.
- स्टेटस देखें:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
ZooKeeper के चार अक्षरों वाले शब्दों का इस्तेमाल करना
ZooKeeper को निर्देशों के एक छोटे सेट (चार अक्षरों वाले शब्द) की मदद से मॉनिटर किया जा सकता है. ये निर्देश, netcat (nc) या telnet का इस्तेमाल करके, पोर्ट 2181 पर भेजे जाते हैं.
ZooKeeper के निर्देशों के बारे में ज़्यादा जानकारी के लिए, यहां जाएं: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.
उदाहरण के लिए:
- srvr: सर्वर की पूरी जानकारी दिखाता है.
- stat: सर्वर और कनेक्ट किए गए क्लाइंट के बारे में कम शब्दों में जानकारी देता है.
ZooKeeper पोर्ट को ये निर्देश दिए जा सकते हैं:
- चार अक्षरों वाला कमांड ruok चलाकर देखें कि सर्वर बिना किसी गड़बड़ी के चल रहा है या नहीं. सफल होने पर, जवाब में "imok" दिखता है.
echo ruok | nc <host> 2181
यह दिखाता है:
imok - सर्वर की परफ़ॉर्मेंस और कनेक्ट किए गए क्लाइंट के आंकड़ों की सूची देखने के लिए, चार अक्षरों वाला कमांड, stat चलाएं.
echo stat | nc <host> 2181
Returns:
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
Note: It is sometimes important to see whether a ZooKeeper is in Mode: leader, follower or observer. - अगर 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
LDAP लेवल टेस्ट
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
इसके बाद, आपसे एलडीएपी एडमिन पासवर्ड डालने के लिए कहा जाएगा:
एलडीएपी पासवर्ड डालें:
पासवर्ड डालने के बाद, आपको इस फ़ॉर्म में जवाब दिखेगा:
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 सर्वर में कैश मेमोरी के साइज़ को मॉनिटर करने और फिर उसे ट्यून करने से, डायरेक्ट्री सर्वर की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है. कैश मेमोरी के बारे में जानकारी पाने के लिए, लॉग फ़ाइलें (<inst_root>/apigee/var/log) देखी जा सकती हैं.