मॉनिटर करने का तरीका

इस दस्तावेज़ में, Apigee Edge के ऑन-प्राइमिस डिप्लॉयमेंट की मदद से काम करने वाले कॉम्पोनेंट की निगरानी करने की तकनीकों के बारे में बताया गया है.

खास जानकारी

Edge में, सेवाओं के बारे में जानकारी पाने और उनकी स्थिति देखने के कई तरीके उपलब्ध हैं. यहां दी गई टेबल में, ज़रूरी शर्तें पूरी करने वाली हर सेवा के लिए, जांच के अलग-अलग टाइप की जानकारी दी गई है:

Mgmt API
सेवा मेमोरी का इस्तेमाल [JMX*] सेवा की जांच करना उपयोगकर्ता/संगठन/ डिप्लॉयमेंट का स्टेटस axstatus डेटाबेस की जांच apigee-service में डेटा सोर्स का स्टेटस apigee-monit**
मैनेजमेंट सर्वर
मैसेज प्रोसेसर
Postgres
Qpid
राऊटर
ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी

* JMX का इस्तेमाल करने से पहले, आपको इसे चालू करना होगा. इसके बारे में JMX चालू करना में बताया गया है.

** apigee-monit सेवा यह जांच करती है कि कोई कॉम्पोनेंट चालू है या नहीं. अगर वह चालू नहीं है, तो उसे रीस्टार्ट करने की कोशिश की जाएगी. ज़्यादा जानकारी के लिए, apigee-monit की मदद से खुद को ठीक करना लेख पढ़ें.

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 सिर्फ़ कैसेंड्रा के लिए डिफ़ॉल्ट रूप से चालू है और बाकी सभी Edge कॉम्पोनेंट के लिए डिफ़ॉल्ट रूप से बंद है. इसलिए, हर कॉम्पोनेंट को मॉनिटर करने से पहले, आपको उसके लिए JMX को अलग से चालू करना होगा.

JMX की पुष्टि करने की सुविधा, डिफ़ॉल्ट रूप से चालू नहीं होती है. सभी कंपोनेंट के लिए, JMX ऑथेंटिकेशन की सुविधा चालू की जा सकती है. कैसंड्रा के लिए, कैसंड्रा के लिए JMX की पुष्टि करने की सुविधा चालू करें में दिए गए निर्देशों का पालन करें.

JMX चालू करना

JMX सिर्फ़ Cassandra के लिए डिफ़ॉल्ट रूप से चालू होता है. यह Edge के सभी दूसरे कॉम्पोनेंट के लिए डिफ़ॉल्ट रूप से बंद होता है. इस सेक्शन में, Edge के अन्य कॉम्पोनेंट के लिए JMX को चालू करने का तरीका बताया गया है.

JMX को चालू करने के लिए:

  1. कॉम्पोनेंट की कॉन्फ़िगरेशन फ़ाइल में बदलाव करें. यह फ़ाइल यहां मौजूद है 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 पर मौजूद है.

  2. कॉम्पोनेंट शुरू करने वाली 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 और Management API मॉनिटरिंग पोर्ट देखें.

    उदाहरण के लिए, मैनेजमेंट सर्वर पर 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
  3. कॉन्फ़िगरेशन फ़ाइल सेव करें.
  4. restart निर्देश की मदद से कॉम्पोनेंट को रीस्टार्ट करें.

    उदाहरण के लिए, मैनेजमेंट सर्वर को रीस्टार्ट करने के लिए, यह कमांड चलाएं:

    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

JMX के लिए पुष्टि करने की सुविधा, डिफ़ॉल्ट रूप से चालू नहीं होती. JMX की पुष्टि करने की सुविधा चालू करें में बताया गया तरीका अपनाकर, सभी कॉम्पोनेंट के लिए JMX की पुष्टि करने की सुविधा चालू की जा सकती है. Cassandra के लिए JMX पुष्टि करने की सुविधा चालू करने के लिए, Cassandra के लिए JMX पुष्टि करने की सुविधा चालू करना लेख पढ़ें.

JMX ऑथेंटिकेशन की सुविधा चालू करना

JMX ऑथेंटिकेशन की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. सभी कंपोनेंट के लिए, JMX ऑथेंटिकेशन की सुविधा चालू की जा सकती है. Cassandra के लिए, Cassandra के लिए JMX पुष्टि करने की सुविधा चालू करना में दिए गए निर्देशों का पालन करें

JMX पुष्टि करने की सुविधा चालू करने के लिए, सभी नोड पर यह change_jmx_auth कार्रवाई करें:

/opt/apigee/apigee-service/bin/apigee-service component_name 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, जेएमएक्स के ज़रिए दिए जाने वाले जेएमएक्स एट्रिब्यूट (एमबीएन) को मॉनिटर करने के लिए नीचे दिए गए सेवा यूआरएल का इस्तेमाल करता है:

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 पोर्ट है. अन्य पोर्ट के लिए, 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

सेवा के बारे में जानकारी दिखाता है. इसमें ये चीज़ें शामिल हैं:

  • कॉन्फ़िगरेशन प्रॉपर्टी
  • शुरू होने का समय और चालू होने का समय
  • बिल्ड, आरपीएम, और यूयूआईडी की जानकारी
  • इंटरनल और एक्सटर्नल होस्टनेम और आईपी पता
  • क्षेत्र और पॉड
  • <isUp> प्रॉपर्टी, इससे पता चलता है कि सेवा चल रही है या नहीं

इस एपीआई कॉल के लिए, आपको अपने 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"

उपयोगकर्ता, संगठन, और डिप्लॉयमेंट की स्थिति पर नज़र रखना

नीचे दिए गए निर्देश देकर, मैनेजमेंट सर्वर और मैसेज प्रोसेसर पर अपनी प्रॉक्सी के उपयोगकर्ता, संगठन, और डिप्लॉयमेंट की स्थिति पर नज़र रखने के लिए, Management API का इस्तेमाल किया जा सकता है:

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl 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 है.

इस कॉल के लिए, आपको अपने सिस्टम एडमिन के उपयोगकर्ता नाम और पासवर्ड से पुष्टि करनी होगी.

सर्वर को सभी कॉल के लिए "डिप्लॉय किया गया" स्थिति देनी चाहिए. अगर ऐसा नहीं होता है, तो यह तरीका अपनाएं:

  1. किसी भी तरह की गड़बड़ी के लिए सर्वर लॉग देखें. लॉग यहां दिखते हैं:
    • मैनेजमेंट सर्वर: opt/apigee/var/log/edge-management-server
    • मैसेज प्रोसेसर: opt/apigee/var/log/edge-message-processor
  2. सर्वर ठीक से काम कर रहा है या नहीं, यह देखने के लिए उस पर कॉल करें.
  3. सर्वर को 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 के साथ काम करने वाली किसी सेवा की स्थिति देखने के लिए:

  1. सर्वर में लॉग इन करें और यह निर्देश चलाएं:
    /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
  2. अगर सेवा चालू नहीं है, तो उसे चालू करें:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. सेवा को फिर से शुरू करने के बाद, यह देखें कि वह काम कर रही है या नहीं. इसके लिए, पहले इस्तेमाल किए गए 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 पर संगठन और एनवायरमेंट देखना

यह curl कमांड देकर, Postgres सर्वर पर संगठन और एनवायरमेंट के नाम देखे जा सकते हैं:

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 पर जाएं.

स्क्रिप्ट चलाने से पहले:

  1. आपको हर Postgres नोड पर check_postgres.pl स्क्रिप्ट इंस्टॉल करनी होगी.
  2. पक्का करें कि आपने perl-Time-HiRes.x86_64 इंस्टॉल किया हो. यह एक Perl मॉड्यूल है, जो हाई रिज़ॉल्यूशन अलार्म, स्लीप, gettimeofday, और इंटरवल टाइमर लागू करता है. उदाहरण के लिए, इसे इस निर्देश का इस्तेमाल करके इंस्टॉल किया जा सकता है:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: CentOS v7 पर check_postgres.pl का इस्तेमाल करने से पहले, perl-Data-Dumper.x86_64 RPM इंस्टॉल करें.

check_postgres.pl आउटपुट

check_postgres.pl का इस्तेमाल करके किए गए एपीआई कॉल का डिफ़ॉल्ट आउटपुट, Nagios के साथ काम करता है. स्क्रिप्ट इंस्टॉल करने के बाद, ये जांच करें:

  1. डेटाबेस के साइज़ की जांच करें:
    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'
  2. डेटाबेस में आने वाले कनेक्शन की संख्या देखें और अनुमति वाले ज़्यादा से ज़्यादा कनेक्शन की तुलना करें:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. देखें कि डेटाबेस चालू है या नहीं और वह उपलब्ध है या नहीं:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. डिस्क में बचा स्टोरेज देखें:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. 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 सेवा को मॉनिटर करने के बारे में ज़्यादा जानकारी के लिए, ये लेख पढ़ें:

Apache Cassandra

Cassandra के लिए, JMX डिफ़ॉल्ट रूप से चालू होता है. साथ ही, Cassandra के रिमोट JMX ऐक्सेस के लिए, पासवर्ड की ज़रूरत नहीं होती.

Cassandra के लिए JMX ऑथेंटिकेशन की सुविधा चालू करना

Cassandra के लिए, JMX पुष्टि करने की सुविधा चालू की जा सकती है. ऐसा करने के बाद, आपको nodetool टूल के सभी कॉल के लिए, उपयोगकर्ता नाम और पासवर्ड डालना होगा.

Cassandra के लिए JMX ऑथेंटिकेशन की सुविधा चालू करने के लिए:

  1. cassandra.properties फ़ाइल बनाएं और उसमें बदलाव करें:
    1. /opt/apigee/customer/application/cassandra.properties फ़ाइल में बदलाव करें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
    2. फ़ाइल में यह जानकारी जोड़ें:
      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
    3. cassandra.properties फ़ाइल सेव करें.
    4. फ़ाइल के मालिक को apigee:apigee पर सेट करें, जैसा कि इस उदाहरण में दिखाया गया है:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    टोकन सेट करने के लिए प्रॉपर्टी फ़ाइलों का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Edge को कॉन्फ़िगर करने का तरीका देखें.

  2. jmx_auth.sh बनाना और उसमें बदलाव करना:
    1. अगर यह फ़ाइल मौजूद नहीं है, तो यहां फ़ाइल बनाएं:
      /opt/apigee/customer/application/jmx_auth.sh
    2. फ़ाइल में ये प्रॉपर्टी जोड़ें:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. jmx_auth.sh फ़ाइल सेव करें.
    4. फ़ाइल का सोर्स:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. jmxremote.password फ़ाइल को कॉपी करें और उसमें बदलाव करें:
    1. अपनी $JAVA_HOME डायरेक्ट्री से, यह फ़ाइल /opt/apigee/data/apigee-cassandra/ में कॉपी करें:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
    2. jmxremote.password फ़ाइल में बदलाव करें और नीचे दिए गए सिंटैक्स का इस्तेमाल करके, अपना JMX उपयोगकर्ता नाम और पासवर्ड जोड़ें:
      JMX_USERNAME JMX_PASSWORD

      यहां JMX_USERNAME और JMX_PASSWORD, JMX के लिए सेट किया गया आपका उपयोगकर्ता नाम और पासवर्ड है.

    3. पक्का करें कि फ़ाइल का मालिकाना हक "apigee" के पास हो और फ़ाइल का मोड 400 हो:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
  4. jmxremote.access फ़ाइल को कॉपी करें और उसमें बदलाव करें:
    1. अपनी $JAVA_HOME डायरेक्ट्री से, यह फ़ाइल /opt/apigee/data/apigee-cassandra/ में कॉपी करें:
      cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
    2. jmxremote.access फ़ाइल में बदलाव करें और यह भूमिका जोड़ें:
      JMX_USERNAME readwrite
    3. पक्का करें कि फ़ाइल का मालिकाना हक "apigee" के पास हो और फ़ाइल का मोड 400 हो:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
  5. Cassandra पर configure चलाएं:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Cassandra को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. इस प्रक्रिया को अन्य सभी कैसंड्रा नोड पर दोहराएं.

JMX पासवर्ड एन्क्रिप्शन की सुविधा चालू करना

JMX पासवर्ड एन्क्रिप्ट (सुरक्षित) करने की सुविधा चालू करने के लिए, ये काम करें:

  1. फ़ाइल source/conf/casssandra-env.sh खोलें.
  2. फ़ाइल में इन लाइनों से टिप्पणी हटाएं:
    • 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"
  3. कमांड लाइन पर, echo -n 'Secret' | openssl dgst -sha1 डालकर अपनी पसंद के पासवर्ड के SHA1 हैश जनरेट करें
  4. jmxremote.password में उपयोगकर्ता नाम के सामने पासवर्ड सेट करें.
  5. अपडेट होने के बाद, फ़ाइल cassandra-env.sh को फिर से सिर्फ़ पढ़ने के लिए सेट करें.

Cassandra के लिए, एसएसएल के साथ JMX चालू करना

एसएसएल के साथ जेएमएक्स को चालू करने से, कैसंड्रा के साथ जेएमएक्स आधारित कम्यूनिकेशन के लिए ज़्यादा सुरक्षा और एन्क्रिप्शन उपलब्ध होता है. एसएसएल के साथ JMX को चालू करने के लिए, आपको Cassandra को एक कुंजी और सर्टिफ़िकेट देना होगा, ताकि वह एसएसएल पर आधारित JMX कनेक्शन स्वीकार कर सके. आपको एसएसएल के लिए nodetool और ऐसे अन्य टूल भी कॉन्फ़िगर करने होंगे जो JMX के ज़रिए Cassandra से कम्यूनिकेट करते हैं.

एसएसएल की सुविधा वाला JMX, सादा टेक्स्ट और एन्क्रिप्ट (सुरक्षित) किए गए JMX पासवर्ड, दोनों के साथ काम करता है.

Cassandra के लिए, SSL के साथ JMX को चालू करने के लिए, यह तरीका अपनाएं:

  1. JMX चालू करें. ज़रूरत पड़ने पर, पासवर्ड एन्क्रिप्ट करने की सुविधा चालू करें.
  2. Cassandra के लिए JMX ऑथेंटिकेशन की सुविधा चालू करें. जैसा कि ऊपर बताया गया है. पक्का करें कि nodetool, कॉन्फ़िगर किए गए उपयोगकर्ता नाम और पासवर्ड के साथ काम कर रहा है.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. कीस्टोर और ट्रस्टस्टोर तैयार करें.

    • कीस्टोर में एक कुंजी और सर्टिफ़िकेट होना चाहिए. साथ ही, इसका इस्तेमाल Cassandra सर्वर को कॉन्फ़िगर करने के लिए किया जाता है. अगर पासकोड में एक से ज़्यादा पासकोड पेयर हैं, तो एसएसएल को चालू करने के लिए Cassandra, पहले पासकोड पेयर का इस्तेमाल करता है.

      ध्यान दें कि कीस्टोर और पासकोड के लिए पासवर्ड एक ही होने चाहिए (keytool का इस्तेमाल करके पासकोड जनरेट करने पर, डिफ़ॉल्ट रूप से ऐसा होता है).

    • ट्रस्टस्टोर में सिर्फ़ सर्टिफ़िकेट होना चाहिए. इसका इस्तेमाल, क्लाइंट (apigee-service पर आधारित निर्देश या nodetool) JMX से कनेक्ट करने के लिए करते हैं.

    ऊपर दी गई ज़रूरी शर्तों की पुष्टि करने के बाद:

    1. पासकोड फ़ाइल को /opt/apigee/data/apigee-cassandra में डालें.
    2. यह पक्का करें कि पासकोड वाली फ़ाइल को सिर्फ़ Apigee उपयोगकर्ता पढ़ सके. इसके लिए,
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node1
      डालें
  4. एसएसएल के साथ JMX के लिए Cassandra को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
    1. apigee-service apigee-cassandra stop
      डालकर कैसंड्रा नोड को रोकें
    2. /opt/apigee/customer/application/cassandra.properties फ़ाइल खोलकर और यह लाइन जोड़कर, कैसंड्रा में एसएसएल चालू करें:
      conf_cassandra-env_com.sun.management.jmxremote.ssl=true

      फ़ाइल का मालिकाना हक apigee:apigee के पास होना चाहिए.

    3. कैसंड्रा में एसएसएल से जुड़े कॉन्फ़िगरेशन को, नीचे बताए गए तरीके से चालू करें. फ़ाइल खोलें /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 के पास हो.
    4. Cassandra नोड शुरू करने के लिए,
      apigee-service apigee-cassandra start
      डालें
  5. 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 को कॉन्फ़िगर करने के कई विकल्प हैं. इस्तेमाल करने के तरीके और सुरक्षा के तरीकों के आधार पर कोई विकल्प चुनें.

    पहला विकल्प (फ़ाइल में सेव किए गए एसएसएल आर्ग्युमेंट)

    नीचे दिए गए एनवायरमेंट वैरिएबल सेट करें:

    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
  6. nodetool सेट अप करें. Nodetool के लिए जेएमएक्स पैरामीटर को पास करना ज़रूरी है. एसएसएल की सुविधा वाले JMX के साथ चलने के लिए, nodetool को कॉन्फ़िगर करने के दो तरीके हैं. इनके बारे में नीचे दिए गए कॉन्फ़िगरेशन विकल्पों में बताया गया है:

    एसएसएल से जुड़े कॉन्फ़िगरेशन को 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

एसएसएल कॉन्फ़िगरेशन को पहले जैसा करना

अगर आपको ऊपर बताए गए तरीके में बताए गए एसएसएल कॉन्फ़िगरेशन को वापस लाना है, तो यह तरीका अपनाएं:

  1. apigee-cassandra को बंद करने के लिए,
    apigee-service apigee-cassandra stop
    डालें
  2. फ़ाइल /opt/apigee/customer/application/cassandra.properties से लाइन conf_cassandra-env_com.sun.management.jmxremote.ssl=true हटाएं.
  3. /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”
  4. apigee-cassandra को शुरू करने के लिए,
  5. apigee-service apigee-cassandra start
  6. अगर एनवायरमेंट वैरिएबल CASS_JMX_SSL सेट किया गया है, तो उसे हटाएं.

    unset CASS_JMX_SSL
  7. देखें कि apigee-service पर आधारित निर्देश, जैसे कि ring, stop, backup वगैरह काम कर रहे हैं या नहीं.
  8. nodetool के साथ --ssl स्विच का इस्तेमाल बंद करना

Cassandra के लिए JMX ऑथेंटिकेशन बंद करना

Cassandra के लिए JMX पुष्टि करने की सुविधा बंद करने के लिए:

  1. /opt/apigee/customer/application/cassandra.properties में बदलाव करें.
  2. फ़ाइल में यह लाइन हटाएं:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. कैसेंड्रा पर कॉन्फ़िगर करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Cassandra को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. यह प्रोसेस, Cassandra के अन्य सभी नोड पर दोहराएं.

JConsole का इस्तेमाल करना: टास्क के आंकड़े मॉनिटर करना

JMX के ज़रिए ऑफ़र किए गए JMX एट्रिब्यूट (एमबीीन) को मॉनिटर करने के लिए, JConsole और यहां दिए गए सेवा यूआरएल का इस्तेमाल करें:

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

जहां IP_address, कैसंड्रा सर्वर का आईपी है.

Cassandra JMX के आंकड़े

जेएमएक्स एमबीएन 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 क्लस्टर के सभी नोड पर ये कॉल किए जा सकते हैं:

  1. रिंग की सामान्य जानकारी (एक कैसंड्रा नोड के लिए भी संभव है): सभी नोड के लिए "अप" और "सामान्य" देखें.
    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

  2. नोड के बारे में सामान्य जानकारी (हर नोड के लिए कॉल)
    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
  3. थ्रिफ़्ट सर्वर की स्थिति (क्लाइंट एपीआई दिखाना)
    nodetool [-u username -pw password] -h localhost statusthrift

    ऊपर दिए गए कमांड का आउटपुट इस तरह दिखता है:

    running

  4. डेटा स्ट्रीमिंग की कार्रवाइयों की स्थिति: कैसंड्रा नोड के ट्रैफ़िक पर नज़र रखें:
    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 का स्टेटस देखना

  1. पक्का करें कि ZooKeeper प्रोसेस चल रही हो. ZooKeeper, opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid में एक पीआईडी फ़ाइल लिखता है.
  2. यह पक्का करने के लिए ZooKeeper पोर्ट की जांच करें कि आप हर ZooKeeper सर्वर पर, 2181 और 3888 पोर्ट के लिए टीसीपी कनेक्शन बना सकते हैं.
  3. पक्का करें कि आपके पास ZooKeeper डेटाबेस से वैल्यू पढ़ने का ऐक्सेस हो. ZooKeeper क्लाइंट लाइब्रेरी (या /opt/apigee/apigee-zookeeper/bin/zkCli.sh) का इस्तेमाल करके कनेक्ट करें और डेटाबेस से कोई वैल्यू पढ़ें.
  4. स्टेटस देखें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

ZooKeeper में चार अक्षर वाले शब्द इस्तेमाल करें

ZooKeeper को कमांड (चार अक्षरों वाले शब्द) के छोटे से सेट की मदद से मॉनिटर किया जा सकता है. ये कमांड, netcat (nc) या telnet का इस्तेमाल करके पोर्ट 2181 पर भेजे जाते हैं.

ZooKeeper के निर्देशों के बारे में ज़्यादा जानकारी के लिए, Apache ZooKeeper के निर्देशों का रेफ़रंस देखें.

उदाहरण के लिए:

  • srvr: सर्वर की पूरी जानकारी दिखाता है.
  • stat: सर्वर और कनेक्ट किए गए क्लाइंट की खास जानकारी दिखाता है.

ZooKeeper पोर्ट पर ये निर्देश दिए जा सकते हैं:

  1. चार अक्षरों वाला ruok कमांड चलाकर, यह जांचें कि सर्वर बिना किसी गड़बड़ी के चल रहा है या नहीं. सही जवाब मिलने पर, "imok" दिखता है.
    echo ruok | nc host 2181

    वापसी:

    imok
  2. सर्वर की परफ़ॉर्मेंस और कनेक्ट किए गए क्लाइंट के आंकड़ों की सूची बनाने के लिए, चार अक्षरों वाला निर्देश 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
  3. अगर 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

LDAP लेवल टेस्ट

OpenLDAP को मॉनिटर करके यह देखा जा सकता है कि खास अनुरोध सही तरीके से दिखाए जा रहे हैं या नहीं. दूसरे शब्दों में, ऐसी खोज करें जो सही नतीजा दिखाती हो.

  1. सिस्टम एडमिन की एंट्री के बारे में जानकारी पाने के लिए, 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
  2. इस कमांड की मदद से देखें कि मैनेजमेंट सर्वर अब भी LDAP से कनेक्ट है या नहीं:
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    वापसी:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

OpenLDAP कैश मेमोरी पर भी नज़र रखी जा सकती है. इससे डिस्क ऐक्सेस की संख्या कम करने में मदद मिलती है और सिस्टम की परफ़ॉर्मेंस बेहतर होती है. OpenLDAP सर्वर में कैश मेमोरी के साइज़ को मॉनिटर करने और उसे ट्यून करने से, डायरेक्ट्री सर्वर की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है. कैश मेमोरी के बारे में जानकारी पाने के लिए, लॉग फ़ाइलें (opt/apigee/var/log) देखी जा सकती हैं.