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

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

खास जानकारी

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

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

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

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

पोर्ट और कॉन्फ़िगरेशन फ़ाइलों की निगरानी करना

हर कॉम्पोनेंट, अलग-अलग पोर्ट पर Java Management Extensions (JMX) और Management API मॉनिटरिंग कॉल के साथ काम करता है. यहां दी गई टेबल में, हर तरह के सर्वर के लिए JMX और Management API पोर्ट दिए गए हैं. साथ ही, कॉन्फ़िगरेशन फ़ाइल की लोकेशन भी दी गई हैं:

कॉम्पोनेंट जेएमएक्स पोर्ट Management API पोर्ट कॉन्फ़िगरेशन फ़ाइल की जगह
मैनेजमेंट सर्वर 1099 8080 $APIGEE_ROOT/customer/application/management-server.properties
मैसेज प्रोसेसर 1101 8082 $APIGEE_ROOT/customer/application/message-processor.properties
राऊटर 1100 8081 $APIGEE_ROOT/customer/application/router.properties
Qpid 1102 8083 $APIGEE_ROOT/customer/application/qpid-server.properties
Postgres 1103 8084 $APIGEE_ROOT/customer/application/postgres-server.properties

कॉम्पोनेंट को मॉनिटर करने के लिए जेएमएक्स का इस्तेमाल करना

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

JMX चालू करें

बिना पुष्टि या एसएसएल पर आधारित कम्यूनिकेशन के जेएमएक्स को चालू करने के लिए, यह तरीका अपनाएं. ध्यान दें: प्रोडक्शन सिस्टम में, सुरक्षा के लिए एन्क्रिप्ट (सुरक्षित) की गई पुष्टि और एसएसएल, दोनों को चालू करना चाहिए.

  1. सही कॉन्फ़िगरेशन फ़ाइल में बदलाव करें ( कॉन्फ़िगरेशन फ़ाइल रेफ़रंस देखें). अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
    conf_system_jmxremote_enable=true
  2. कॉन्फ़िगरेशन फ़ाइल को सेव करें और पक्का करें कि इसका मालिकाना हक apigee:apigee के पास हो.
  3. Edge के सही कॉम्पोनेंट को रीस्टार्ट करें
    apigee-service edge-management-server restart

JMX को बंद करने के लिए, प्रॉपर्टी conf_system_jmxremote_enable को हटाएं या इसकी वैल्यू को false पर बदलें. इसके बाद, Edge के उस कॉम्पोनेंट को रीस्टार्ट करें जिसमें समस्या आ रही है.

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

Edge for Private Cloud, फ़ाइलों में सेव की गई जानकारी का इस्तेमाल करके, पासवर्ड के आधार पर पुष्टि करने की सुविधा देता है. ज़्यादा सुरक्षा के लिए, पासवर्ड को हैश के तौर पर सेव किया जा सकता है.

  1. किसी edge-* कॉम्पोनेंट में जेएमएक्स ऑथेंटिकेशन की सुविधा चालू करने के लिए, सही कॉन्फ़िगरेशन फ़ाइल में बदलाव करें. इसके बारे में ज़्यादा जानने के लिए, कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस देखें. अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो उसे बनाएं:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_authenticate=true
    conf_system_jmxremote_encrypted_auth=true
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
    कॉन्फ़िगरेशन फ़ाइल को सेव करें और पक्का करें कि इसका मालिकाना हक apigee:apigee के पास हो.
  2. पासवर्ड का SHA256 हैश बनाएं:
    echo -n '' | openssl dgst -sha256
  3. JMX उपयोगकर्ता के क्रेडेंशियल वाली jmxremote.password फ़ाइल बनाएं:
    1. इन फ़ाइलों को अपनी $JAVA_HOME डायरेक्ट्री से /opt/apigee/customer/application/<component>/ डायरेक्ट्री में कॉपी करें:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
    2. फ़ाइल में बदलाव करें और नीचे दिए गए सिंटैक्स का इस्तेमाल करके, अपना JMX उपयोगकर्ता नाम और पासवर्ड जोड़ें:
      USERNAME <HASH-PASSWORD>
    3. पक्का करें कि फ़ाइल का मालिकाना हक apigee के पास हो और फ़ाइल मोड 400 हो:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
  4. JMX उपयोगकर्ता की अनुमतियों वाली jmxremote.access फ़ाइल बनाएं:
    1. अपनी $JAVA_HOME डायरेक्ट्री से इन फ़ाइलों को कॉपी करके, /opt/apigee/customer/application/<component>/ डायरेक्ट्री में चिपकाएं
      cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/customer/application/management-server/jmxremote.access
    2. फ़ाइल में बदलाव करें और अपना JMX उपयोगकर्ता नाम जोड़ें. इसके बाद, अनुमति (READONLY/READWRITE) जोड़ें
      USERNAME READONLY
    3. पक्का करें कि फ़ाइल का मालिकाना हक apigee के पास हो और फ़ाइल मोड 400 हो:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.access
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
  5. सही Edge कॉम्पोनेंट को रीस्टार्ट करें:
    apigee-service edge-management-server restart

जेएमएक्स ऑथेंटिकेशन को बंद करने के लिए, conf_system_jmxremote_authenticate प्रॉपर्टी को हटाएं या वैल्यू को false में बदलें. इसके बाद, Edge के सही कॉम्पोनेंट को रीस्टार्ट करें.

जेएमएक्स में एसएसएल

edge-* कॉम्पोनेंट में एसएसएल पर आधारित जेएमएक्स को चालू करने के लिए:

  1. सही कॉन्फ़िगरेशन फ़ाइल में बदलाव करें ( कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस देखें). अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो उसे बनाएं:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_ssl=true
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
    conf_system_javax_net_ssl_keystorepassword=<keystore-password>
    कॉन्फ़िगरेशन फ़ाइल को सेव करें और पक्का करें कि इसका मालिकाना हक apigee:apigee के पास हो.
  2. सर्वर कुंजी वाला कीस्टोर तैयार करें और उसे ऊपर दिए गए कॉन्फ़िगरेशन conf_system_javax_net_ssl_keystore में दिए गए पाथ पर रखें. पक्का करें कि apigee:apigee, कीस्टोर फ़ाइल को पढ़ सके.
  3. सही Edge कॉम्पोनेंट को रीस्टार्ट करें:
    apigee-service edge-management-server restart

एसएसएल पर आधारित जेएमएक्स को बंद करने के लिए, conf_system_jmxremote_ssl प्रॉपर्टी को हटाएं या इसकी वैल्यू को बदलकर false करें. Edge के सही कॉम्पोनेंट को रीस्टार्ट करें.

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

JConsole (जेएमएक्स के साथ काम करने वाला टूल) का इस्तेमाल करके, हेल्थ चेक और प्रोसेस के आंकड़ों को मैनेज और मॉनिटर करें. JConsole की मदद से, अपने सर्वर से मिले JMX के आंकड़ों का इस्तेमाल किया जा सकता है. साथ ही, उन्हें ग्राफ़िकल इंटरफ़ेस में दिखाया जा सकता है. ज़्यादा जानकारी के लिए, JConsole का इस्तेमाल करना लेख पढ़ें.

अगर JMX के लिए एसएसएल चालू है, तो आपको 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 और Management API के मॉनिटरिंग पोर्ट लेख पढ़ें.

यहां दी गई टेबल में, सामान्य जेएमएक्स आंकड़े दिखाए गए हैं:

JMX MBeans जेएमएक्स एट्रिब्यूट

मेमोरी

HeapMemoryUsage

NonHeapMemoryUsage

इस्तेमाल

कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस

यहां दिए गए सेक्शन में, JMX से जुड़े कॉन्फ़िगरेशन के लिए, Edge कॉम्पोनेंट कॉन्फ़िगरेशन फ़ाइलों में किए जाने वाले बदलावों के बारे में बताया गया है. ज़्यादा जानकारी के लिए, पोर्ट और कॉन्फ़िगरेशन फ़ाइलों को मॉनिटर करना लेख पढ़ें.

JMX कॉन्फ़िगरेशन को कॉम्पोनेंट की कॉन्फ़िगरेशन फ़ाइल में जोड़ना

  • एज-कंपोनेंट पर JMX एजेंट चालू करें. डिफ़ॉल्ट रूप से, इसकी वैल्यू False होती है.
    conf_system_jmxremote_enable=true

पासवर्ड के आधार पर पुष्टि करने की सुविधा के लिए कॉन्फ़िगरेशन

  • पासवर्ड के आधार पर पुष्टि करने की सुविधा चालू करें. डिफ़ॉल्ट रूप से False पर सेट होती है.
    conf_system_jmxremote_authenticate=true
  • फ़ाइल को ऐक्सेस करने का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए. साथ ही, सिर्फ़ Apigee उपयोगकर्ता के पास इसे पढ़ने का ऐक्सेस होना चाहिए.
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
  • पासवर्ड फ़ाइल का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए. साथ ही, सिर्फ़ Apigee उपयोगकर्ता के पास इसे पढ़ने का ऐक्सेस होना चाहिए.
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
  • पासवर्ड को एन्क्रिप्ट (सुरक्षित) किए गए फ़ॉर्मैट में सेव करने की सुविधा चालू करें. डिफ़ॉल्ट रूप से False पर सेट होती है.
    conf_system_jmxremote_encrypted_auth=true

एसएसएल पर आधारित JMX के लिए कॉन्फ़िगरेशन

  • जेएमएक्स कम्यूनिकेशन के लिए एसएसएल चालू करें. डिफ़ॉल्ट रूप से False पर सेट होती है.
    conf_system_jmxremote_ssl=true
  • कीस्टोर का पाथ. इसका मालिकाना हक सिर्फ़ Apigee उपयोगकर्ता के पास होना चाहिए. साथ ही, सिर्फ़ Apigee उपयोगकर्ता के पास इसे पढ़ने का ऐक्सेस होना चाहिए.
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
  • कीस्टोर का पासवर्ड:
    conf_system_javax_net_ssl_keystorepassword=changeme

वैकल्पिक जेएमएक्स कॉन्फ़िगरेशन

यहां दी गई वैल्यू डिफ़ॉल्ट वैल्यू हैं और इन्हें बदला जा सकता है.

  • JMX पोर्ट. डिफ़ॉल्ट वैल्यू के बारे में यहां दी गई टेबल में बताया गया है.
    conf_system_jmxremote_port=
  • JMX RMI पोर्ट. डिफ़ॉल्ट रूप से, Java प्रोसेस किसी भी पोर्ट को चुन लेगी.
    conf_system_jmxremote_rmi_port=
  • रिमोट स्टब के लिए होस्ट का नाम. लोकलहोस्ट का डिफ़ॉल्ट आईपी पता.
    conf_system_java_rmi_server_hostname=
  • एसएसएल की मदद से, JMX रजिस्ट्री को सुरक्षित करें. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है. यह सिर्फ़ तब लागू होता है, जब एसएसएल चालू हो.
    conf_system_jmxremote_registry_ssl=false

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

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

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

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 इंस्टॉल किया हो. यह एक 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 का इस्तेमाल करके किए गए एपीआई कॉल का डिफ़ॉल्ट आउटपुट, 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}/customer/application/apigee-cassandra/jmxremote.password
      conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/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/customer/application/apigee-cassandra/ में कॉपी करें:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
    2. jmxremote.password फ़ाइल में बदलाव करें और इस सिंटैक्स का इस्तेमाल करके, अपना JMX उपयोगकर्ता नाम और पासवर्ड जोड़ें:
      JMX_USERNAME JMX_PASSWORD

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

    3. पक्का करें कि फ़ाइल का मालिकाना हक "apigee" के पास हो और फ़ाइल मोड 400 हो:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
  4. jmxremote.access फ़ाइल को कॉपी करके उसमें बदलाव करें:
    1. इस फ़ाइल को अपनी $JAVA_HOME डायरेक्ट्री से /opt/apigee/customer/application/apigee-cassandra/ में कॉपी करें:
      cp ${JAVA_HOME}/lib/management/jmxremote.access
      $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
    2. jmxremote.access फ़ाइल में बदलाव करें और यह भूमिका जोड़ें:
      JMX_USERNAME readwrite
    3. पक्का करें कि फ़ाइल का मालिकाना हक "apigee" के पास हो और फ़ाइल मोड 400 हो:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/customer/application/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 नोड पर दोहराएं.

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

JMX पासवर्ड एन्क्रिप्शन की सुविधा चालू करने के लिए, यह तरीका अपनाएं:

  1. source/conf/casssandra-env.sh फ़ाइल खोलें.
  2. cassandra.properties फ़ाइल बनाना और उसमें बदलाव करना:
    1. /opt/apigee/customer/application/cassandra.properties फ़ाइल में बदलाव करें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
    2. फ़ाइल में यह जानकारी जोड़ें:
      conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
    3. cassandra.properties फ़ाइल सेव करें.
    4. फ़ाइल के मालिक को apigee:apigee में बदलें. इसके लिए, यहां दिया गया उदाहरण देखें:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  3. कमांड लाइन पर, अपनी पसंद के पासवर्ड के SHA1 हैश जनरेट करें. इसके लिए, यह डालें echo -n 'Secret' | openssl dgst -sha1
  4. $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password (पिछले सेक्शन में बनाया गया) में उपयोगकर्ता नाम के लिए पासवर्ड सेट करें.
  5. Cassandra पर कॉन्फ़िगरेशन चलाएं:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Cassandra को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. अन्य सभी Cassandra नोड पर यह प्रोसेस दोहराएं.

Cassandra के लिए, एसएसएल के साथ जेएमएक्स चालू करना

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

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

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

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

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

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

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

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

    1. कीस्टोर फ़ाइल को /opt/apigee/customer/application/apigee-cassandra/ में रखें.
    2. यह पक्का करें कि कीस्टोर फ़ाइल को सिर्फ़ Apigee उपयोगकर्ता पढ़ सके. इसके लिए, यह डालें
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
  4. एसएसएल के साथ जेएमएक्स के लिए Cassandra को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
    1. Cassandra नोड को बंद करने के लिए, यह कमांड डालें
      apigee-service apigee-cassandra stop
    2. Cassandra में एसएसएल चालू करने के लिए, /opt/apigee/customer/application/cassandra.properties फ़ाइल खोलें और ये लाइनें जोड़ें:
      conf_cassandra_env_com.sun.management.jmxremote.ssl=true
      conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1
      conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
    3. फ़ाइल के मालिक को apigee:apigee में बदलें. इसके लिए, यहां दिया गया उदाहरण देखें:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. Cassandra पर कॉन्फ़िगरेशन चलाएं:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. Cassandra को रीस्टार्ट करें:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. इस प्रोसेस को सभी अन्य Cassandra नोड पर दोहराएं.
    7. 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

    जेएमएक्स ऑथेंटिकेशन और एसएसएल के लिए, 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
    -Djavax.net.ssl.trustStoreType=PKCS12

    पक्का करें कि 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>
    # If you are using a non standard truststore type, export truststore type as well
    # Possible values are JKS, PKCS12, BCFKS
    export CASS_JMX_TRUSTSTORE_TYPE=PKCS12

    यहां दिया गया 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> CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. nodetool सेट अप करें. Nodetool को JMX पैरामीटर पास करने की ज़रूरत होती है. SSL की सुविधा वाले JMX के साथ nodetool को चलाने के लिए, दो तरीके हैं. इनके बारे में यहां बताया गया है:

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

    nodetool पैरामीटर के बारे में ज़्यादा जानने के लिए, Apache Cassandra nodetool दस्तावेज़ देखें.

    कॉन्फ़िगरेशन का पहला विकल्प

    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
    -Djavax.net.ssl.trustStoreType=PKCS12

    ऊपर बताया गया ट्रस्टस्टोर पाथ, 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 -Djavax.net.ssl.trustStoreType=PKCS12 -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. 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 एट्रिब्यूट (MBeans) को मॉनिटर करने के लिए, JConsole और यहां दिया गया सेवा यूआरएल इस्तेमाल करें. ये एट्रिब्यूट, JMX के ज़रिए उपलब्ध कराए जाते हैं:

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

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

Cassandra JMX के आंकड़े

JMX MBeans 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. रिंग की सामान्य जानकारी (यह जानकारी, सिंगल Cassandra नोड के लिए भी उपलब्ध हो सकती है): सभी नोड के लिए "अप" और "सामान्य" देखें.
    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 संसाधन

इस यूआरएल पर जाएं: Cassandra monitoring.

Apache Qpid Broker-J को मॉनिटर करना

Qpid मैनेजमेंट कंसोल से, Qpid Broker-J को मॉनिटर किया जा सकता है. इस सेक्शन में बताया गया है कि कंसोल को कैसे ऐक्सेस किया जाता है और बुनियादी मॉनिटरिंग फ़ंक्शन करने के लिए इसका इस्तेमाल कैसे किया जाता है. मैनेजमेंट कंसोल को इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, Apache Qpid के दस्तावेज़ में वेब मैनेजमेंट कंसोल देखें.

मैनेजमेंट कंसोल को ऐक्सेस करना

मैनेजमेंट कंसोल का डिफ़ॉल्ट पोर्ट 8090 है. इस डिफ़ॉल्ट पोर्ट पर कंसोल को ऐक्सेस करने के लिए, अपने वेब ब्राउज़र को इस पर ले जाएं:

http://QPID_NODE_IP:8090

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

क्यू और मैसेज पर नज़र रखना

बाईं ओर मौजूद नेविगेशन पैनल में, Java-Broker > virtualhosts > queues पर जाएं. यूज़र इंटरफ़ेस (यूआई) के मुख्य हिस्से में किसी सूची की जानकारी देखने के लिए, उसे चुनें. ज़्यादा जानकारी वाले व्यू में, सूची के एट्रिब्यूट और आंकड़े देखे जा सकते हैं. इनमें डिलीवर किए गए मैसेज, सूची में शामिल किए गए मैसेज, मैसेज की दरें वगैरह शामिल हैं.

लॉग फ़ाइलें देखना और डाउनलोड करना

बाईं ओर मौजूद नेविगेशन पैनल में, Java-Broker > brokerloggers > logfile पर जाएं. यूज़र इंटरफ़ेस (यूआई) के मुख्य ब्यौरे वाले व्यू में, लॉग फ़ाइल की जानकारी देखी जा सकती है और लॉग फ़ाइलें डाउनलोड की जा सकती हैं.

Qpid मैनेजमेंट एपीआई का इस्तेमाल करना

मैनेजमेंट से जुड़े टास्क अपने-आप होने की सुविधा सेट अप करने और ब्रोकर को मॉनिटर करने के लिए, Apache Qpid Broker-J REST API का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, Apache Qpid Broker REST API से जुड़ा दस्तावेज़ देखें.

ब्रोकर पर नज़र रखने के लिए, कमांड लाइन टूल का भी इस्तेमाल किया जा सकता है. उदाहरण के लिए:

curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"

Qpid के लिए, एसएसएल की मदद से मॉनिटरिंग की सुविधा चालू करना

निगरानी और मैनेजमेंट के लिए अतिरिक्त सुरक्षा देने के लिए, Qpid के मैनेजमेंट पोर्टल और Qpid के मैनेजमेंट एपीआई पर एसएसएल चालू करें. कुंजी और सर्टिफ़िकेट देने के लिए, यहां दिए गए दिशा-निर्देशों का पालन करें.

Qpid, फ़ाइल कीस्टोर का विकल्प देता है. यह Apigee में चालू होता है. इस टाइप में, स्टैंडर्ड जेकेएस कीस्टोर फ़ॉर्मैट का इस्तेमाल किया जाता है. इसे Java और Java टूल, जैसे कि keytool के साथ इस्तेमाल किया जा सकता है. यह PKCS12 कीस्टोर को भी स्वीकार कर सकता है. इसे OpenSSL जैसे टूल का इस्तेमाल करके जनरेट किया जा सकता है.

कीस्टोर तैयार करना

कीस्टोर जनरेट करने के लिए, Java Keytool Documentation देखें.

PKCS12 कीस्टोर जनरेट करने के लिए, OpenSSL दस्तावेज़ देखें.

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

  1. कीस्टोर फ़ाइल को /opt/apigee/customer/application/apigee-qpidd में रखें.
  2. पक्का करें कि कीस्टोर फ़ाइल को सिर्फ़ Apigee उपयोगकर्ता ही पढ़ सके:
    chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore

Qpid में एसएसएल चालू करना

एक बार में एक Qpid नोड पर, यहां दिया गया तरीका अपनाएं:

/opt/apigee/customer/application/qpidd.properties फ़ाइल खोलें और ये लाइनें जोड़ें:

conf_qpidd_qpid_management.https.enabled=true
conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
conf_qpidd_qpid.keystore.password=keystore-password
conf_qpidd_qpid.keystore.certificateAlias=certificate-alias
## If you are using a PKCS12 keystore, specify the keystore type
conf_qpidd_qpid.keystore.keyStoreType=PKCS12
  1. फ़ाइल के मालिक को apigee:apigee में बदलें:
    chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
  2. Qpidd को कॉन्फ़िगर करें:
    apigee-service apigee-qpidd configure
  3. Qpidd को रीस्टार्ट करें:
    apigee-service apigee-qpidd restart
  4. wait_for_ready की मदद से स्टेटस देखें:
    apigee-service apigee-qpidd wait_for_ready

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

फ़ाइल /opt/apigee/customer/application/qpidd.properties से प्रॉपर्टी हटाएं या उन्हें टिप्पणी के तौर पर मार्क करें:

conf_qpidd_qpid_management.https.enabled=true
conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
  1. Qpidd को कॉन्फ़िगर करें:
    apigee-service apigee-qpidd configure
  2. Qpidd को रीस्टार्ट करें:
    apigee-service apigee-qpidd restart
  3. wait_for_ready का इस्तेमाल करके स्टेटस देखें:
    apigee-service apigee-qpidd wait_for_ready

Apache ZooKeeper

ZooKeeper का स्टेटस देखना

  1. पक्का करें कि ZooKeeper प्रोसेस चल रही हो. ZooKeeper, opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid में एक 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.8.5-19f1842d4b6ee1f82cc8b05284959b26c6ae507d, built on 2025-09-18 17:23 UTC
    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

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

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

  1. सिस्टम एडमिन की एंट्री के बारे में क्वेरी करने के लिए, ldapsearch (yum install symasldap-clients) का इस्तेमाल करें. इस एंट्री का इस्तेमाल, सभी एपीआई कॉल की पुष्टि करने के लिए किया जाता है.
    /opt/symas/bin/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"
    }

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