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

Edge for Private Cloud v4.18.05

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

खास जानकारी

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

सेवा JMX:*
मेमोरी का इस्तेमाल
Mgmt API:
सेवा की जांच
Mgmt API:
उपयोगकर्ता/संगठन/ डिप्लॉयमेंट स्थिति
Mgmt एपीआई:
axstatus
डेटाबेस की जांच apigee-service में डेटा सोर्स का स्टेटस
मैनेजमेंट सर्वर
मैसेज प्रोसेसर
पोस्टग्रेस
क्यूपीआईडी
राऊटर
ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी ज़्यादा जानकारी
* JMX का इस्तेमाल करने से पहले, आपको इसे JMX चालू करें में बताए गए तरीके से चालू करना होगा.

JMX और Management API मॉनिटरिंग पोर्ट

हर कॉम्पोनेंट, अलग-अलग पोर्ट पर JMX और Management API की मदद से कॉल को मॉनिटर करने की सुविधा देता है. नीचे दी गई टेबल में, हर तरह के सर्वर के लिए JMX और मैनेजमेंट एपीआई पोर्ट की सूची दी गई है:

कॉम्पोनेंट JMX पोर्ट मैनेजमेंट एपीआई पोर्ट
मैनेजमेंट सर्वर 1099 8080
राऊटर 1100 8081
मैसेज प्रोसेसर 1101 8082
क्यूपीआईडी 1102 8083
पोस्टग्रेस 1103 8084

JMX का इस्तेमाल करें

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

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

JMX चालू करें

JMX सिर्फ़ कैसंड्रा के लिए डिफ़ॉल्ट रूप से चालू होता है. साथ ही, दूसरे सभी 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
    • पोस्टग्री: /opt/apigee/edge-postgres-server/bin/start
    • क्यूपीआईडी: /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 और मैनेजमेंट एपीआई को मॉनिटर करने वाले पोर्ट देखें.

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

    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 की पुष्टि करने की सुविधा चालू करें में बताया गया तरीका अपनाएं.

JMX से पुष्टि करने की सुविधा चालू करें

JMX की पुष्टि करने की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. आप कैसंड्रा को छोड़कर, सभी कॉम्पोनेंट के लिए 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 की मदद से, आपके सर्वर से सार्वजनिक किए गए जेएमएक्स आंकड़ों को देखा जा सकता है और उन्हें ग्राफ़िकल इंटरफ़ेस में दिखाया जा सकता है. ज़्यादा जानकारी के लिए, JConsole का इस्तेमाल करना देखें.

JConsole, JMX के ज़रिए ऑफ़र किए गए JMX एट्रिब्यूट (MBean) पर नज़र रखने के लिए, नीचे दिए गए सर्विस यूआरएल का इस्तेमाल करता है:

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 के सामान्य आंकड़े दिखाए गए हैं:

JMX एमबीयन JMX एट्रिब्यूट

मेमोरी

HeapMemoryUsage

NonHeapMemoryUsage

इस्तेमाल का तरीका

मैनेजमेंट एपीआई से मॉनिटर करना

Edge में कई ऐसे एपीआई होते हैं जिनका इस्तेमाल, अपने सर्वर पर सेवा की जांच करने के साथ-साथ अपने उपयोगकर्ताओं, संगठनों, और डिप्लॉयमेंट की जांच करने के लिए भी किया जा सकता है. इस सेक्शन में, इन एपीआई के बारे में बताया गया है.

सेवा की जांच करना

मैनेजमेंट एपीआई, आपकी सेवाओं से जुड़ी समस्याओं की निगरानी करने और उनका पता लगाने के लिए कई एंडपॉइंट उपलब्ध कराता है. इन एंडपॉइंट में ये शामिल हैं:

एंडपॉइंट ब्यौरा
/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 उस सर्वर के लिए मैनेजमेंट एपीआई पोर्ट है जिसकी आपको जांच करनी है. यह हर तरह के कॉम्पोनेंट के लिए अलग पोर्ट है. उदाहरण के लिए, Management Server का Management API पोर्ट 8080 है. मैनेजमेंट एपीआई पोर्ट नंबर की सूची इस्तेमाल करने के लिए, JMX और Management API को मॉनिटर करने वाले पोर्ट देखें

रिस्पॉन्स का फ़ॉर्मैट बदलने के लिए, Accept हेडर को "application/json" या "application/xml" के तौर पर बताया जा सकता है.

इस उदाहरण में, localhost (पोर्ट 8081) पर राऊटर का स्टेटस दिखाया गया है:

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

नीचे दिए गए उदाहरण में, 216.3.128.12 (पोर्ट 8082) पर Message प्रोसेसर के बारे में जानकारी दी गई है:

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: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
    • पोस्टग्री: edge-postgres-server
    • क्यूपीआईडी: 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 निर्देश का इस्तेमाल करें या Manage Management API की मदद से मॉनिटर करें में बताए गए मैनेजमेंट एपीआई का इस्तेमाल करें.

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

    curl -v http://localhost:port_number/v1/servers/self/up

    जहां port_number, सेवा के लिए Management API पोर्ट है.

    इस उदाहरण में यह माना गया है कि आपने सर्वर में लॉग इन किया है और आपके पास होस्टनेम के तौर पर "localhost" का इस्तेमाल करने की सुविधा है. मैनेजमेंट एपीआई की मदद से कहीं से भी स्टेटस देखने के लिए, आपको सर्वर का आईपी पता बताना होगा. साथ ही, अपने एपीआई कॉल में सिस्टम एडमिन का उपयोगकर्ता नाम और पासवर्ड भी शामिल करना होगा.

पोस्टग्रेस की निगरानी करना

Postgres कई सुविधाओं के साथ काम करता है. इनका इस्तेमाल करके, इसकी स्थिति देखी जा सकती है. इन सुविधाओं के बारे में आगे दिए गए सेक्शन में बताया गया है.

Postgres पर संगठन और माहौल देखें

नीचे दिए गए curl निर्देश का इस्तेमाल करके, Postgres Server पर जोड़े गए संगठन और एनवायरमेंट के नाम देखे जा सकते हैं:

curl -v http://postgres_IP:8084/v1/servers/self/organizations

सिस्टम में संगठन और एनवायरमेंट का नाम दिखना चाहिए.

आंकड़ों के स्टेटस की पुष्टि करना

यह curl निर्देश देकर, Postgres और Qpid के आंकड़ों के सर्वर की स्थिति की पुष्टि की जा सकती है:

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 आरपीएम इंस्टॉल करें.

check_postgres.pl आउटपुट

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

  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"

पोस्टग्रेस की प्रोसेस के स्टेटस की जांच करना

नीचे दिए गए curl निर्देश को बोलकर, Postgres मशीन पर एपीआई की जांच की जा सकती है:

curl -v http://postgres_IP:8084/v1/servers/self/health

पोस्टग्रेस प्रोसेस चालू होने पर, यह निर्देश ACTIVE स्थिति दिखाता है. अगर Postgres की प्रोसेस पूरी नहीं हुई है और चल नहीं रही है, तो यह INACTIVE स्टेटस दिखाता है.

पोस्टग्रेस संसाधन

Postgres सेवा की निगरानी के बारे में ज़्यादा जानकारी के लिए, यह देखें:

अपाचे कासांद्रा

JConsole का इस्तेमाल करना: काम के आंकड़ों पर नज़र रखना

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

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

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

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

कैसेंड्रा JMX के आंकड़े

JMX एमबीयन JMX एट्रिब्यूट

कॉलमपरिवार/ऐप्लिकेशन/परिवेश

कॉलमपरिवार/ऐप्लिकेशन/संगठन

Columnफ़ैमिली/apprepo/apiप्रॉक्सी_revisions

कॉलमपरिवार/ऐप्लिकेशन/ऐप्लिकेशन से जुड़े एपीआई

कॉलमपरिवार/ऑडिट/ऑडिट

कॉलमपरिवार/ऑडिट/ऑडिट_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 -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

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

    ऊपर दिए गए निर्देश का आउटपुट ऐसा दिखता है:

    running

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

कैसंड्रा मॉनिटरिंग (यूआई)

datastax opscenter यूआरएल देखें: http://www.datastax.com/products/opscenter.

कैसेंड्रा का संसाधन

इस यूआरएल को देखें: http://www.datastax.com/docs/1.0/operations/monitoring.

अपाचे ज़ूकीपर

ZoomKeeper का स्टेटस देखें

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

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

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

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

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

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

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

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

    वापसी:

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

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