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

Edge for Private Cloud v4.19.01

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

खास जानकारी

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

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

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

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

जेएमएक्स और मैनेजमेंट एपीआई मॉनिटरिंग पोर्ट

हर कॉम्पोनेंट, अलग-अलग पोर्ट पर जेएमएक्स और मैनेजमेंट एपीआई मॉनिटरिंग कॉल के साथ काम करता है. नीचे दी गई टेबल में, हर तरह के सर्वर के लिए 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 के अन्य कॉम्पोनेंट के लिए जेएमएक्स को चालू करने का तरीका बताया गया है.

जेएमएक्स को चालू करने के लिए:

  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, सेवा के लिए जेएमएक्स पोर्ट है. अपनी सेवा का जेएमएक्स पोर्ट नंबर पाने के लिए, जेएमएक्स और मैनेजमेंट एपीआई मॉनिटरिंग पोर्ट देखें.

    उदाहरण के लिए, मैनेजमेंट सर्वर पर जेएमएक्स को चालू करने के लिए, मैनेजमेंट सर्वर की कॉन्फ़िगरेशन फ़ाइल में यह जोड़ें:

    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

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

जेएमएक्स की मदद से पुष्टि करने की सुविधा चालू करना

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

जेएमएक्स ऑथेंटिकेशन की सुविधा चालू करने के लिए, सभी नोड पर यह 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 के साथ पास नहीं किया गया है, तो आपको सूचना दी जाएगी)

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

नीचे दिए गए उदाहरण में, कमांड लाइन के विकल्पों का इस्तेमाल करके, मैनेजमेंट सर्वर के लिए जेएमएक्स ऑथेंटिकेशन को चालू किया गया है:

/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 n

JConsole की मदद से मॉनिटर करना

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

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

  • कॉन्फ़िगरेशन प्रॉपर्टी
  • शुरू होने का समय और अपटाइम
  • बिल्ड, आरपीएम, और यूयूआईडी की जानकारी
  • इंटरनल और एक्सटर्नल होस्टनेम और आईपी पता
  • रीजन और पॉड
  • <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 पोर्ट नंबर की सूची देखने के लिए, जेएमएक्स और 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. सर्वर को ईएलबी से हटाएं और फिर उसे रीस्टार्ट करें:
    /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 पर संगठनों और एनवायरमेंट की जांच करना

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

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

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

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_USERNAME JMX_PASSWORD

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

    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. अन्य सभी Cassandra नोड पर यह प्रोसेस दोहराएं.

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

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

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

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

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

  1. /opt/apigee/customer/application/cassandra.properties में बदलाव करें.
  2. फ़ाइल से यह लाइन हटाएं:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Cassandra पर कॉन्फ़िगरेशन चलाएं:
    /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 एट्रिब्यूट (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 क्लस्टर नोड पर ये कॉल किए जा सकते हैं:

  1. रिंग की सामान्य जानकारी (यह सिंगल 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
  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. डेटा स्ट्रीमिंग की कार्रवाइयों की स्थिति: 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 का स्टेटस देखना

  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

एलडीएपी लेवल टेस्ट

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

    वापसी:

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

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