Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
समस्या का ब्यौरा
इस इमेज में दिखाया गया है कि ट्रेस सेशन शुरू होने पर, API अनुरोधों को Edge यूज़र इंटरफ़ेस (यूआई) में कैप्चर नहीं किया जाता है:
गड़बड़ी संदेश
जब यह समस्या होगी, तो Edge यूज़र इंटरफ़ेस (यूआई) में गड़बड़ी का कोई मैसेज नहीं दिखेगा.
संभावित वजहें
नीचे दी गई टेबल में, Edge यूज़र इंटरफ़ेस (यूआई) ट्रेस में एपीआई अनुरोधों को कैप्चर न कर पाने की संभावित वजहें बताई गई हैं:
Cause | Description | समस्या हल करने वाले निर्देश इन पर लागू होते हैं |
---|---|---|
मैसेज प्रोसेसर, अनुरोधों को प्रोसेस नहीं करता | ट्रेस को कैप्चर करने के लिए, API अनुरोधों को Edge के कॉम्पोनेंट मैसेज प्रोसेसर के ज़रिए प्रोसेस किया जाना चाहिए. अगर कोई एपीआई अनुरोध Apigee Edge तक नहीं पहुंच पाता है, तो वह Edge के एंट्री पॉइंट पर फ़ेल हो जाता है (जैसे, राऊटर) या मैसेज प्रोसेसर के ज़रिए इसे प्रोसेस करने से पहले काम नहीं करता. इसके बाद, ट्रेस कैप्चर नहीं किया जा सकता. | Edge के सार्वजनिक और निजी क्लाउड उपयोगकर्ता |
क्लासिफ़िकेशन ट्री में एपीआई प्रॉक्सी नहीं मिली | Apigee Message प्रोसेसर, आने वाले अनुरोध के होस्टनेम, बेस पाथ, बदलाव, और एनवायरमेंट के आधार पर अनुरोधों को भेजने के लिए, क्लासिफ़िकेशन ट्री नाम के रूटिंग नियम की परिभाषा का इस्तेमाल करते हैं. अगर किसी वजह से, क्लासिफ़िकेशन ट्री से सही एपीआई प्रॉक्सी हटा दी जाती है, तो हो सकता है कि ट्रेस करने वाले ट्रांज़ैक्शन की जानकारी अपने-आप न भरे. | Edge के प्राइवेट क्लाउड उपयोगकर्ता |
वजह: मैसेज प्रोसेसर की ओर से अनुरोधों को प्रोसेस नहीं किया गया
विश्लेषण
ट्रेस सेशन में एपीआई अनुरोध को कैप्चर करने के लिए, एपीआई अनुरोध को Edge के कॉम्पोनेंट मैसेज प्रोसेसर की मदद से प्रोसेस किया जाना चाहिए. ट्रेस लेन-देन में एपीआई अनुरोध को कैप्चर न किए जाने की कई वजहें हो सकती हैं.
उदाहरण के लिए, अगर कोई एपीआई अनुरोध Apigee Edge तक नहीं पहुंच पाता है, तो वह Edge (जैसे, राऊटर) या मैसेज प्रोसेसर के ज़रिए प्रोसेस होने से पहले काम नहीं करता, तो ट्रेस कैप्चर नहीं किया जा सकता. इनमें से हर एक स्थिति के बारे में ज़्यादा जानकारी नीचे दी गई है.
पहली स्थिति: Apigee Edge को अनुरोध मिलने की समस्या
वजह
इस स्थिति में, यह गड़बड़ी डीएनएस रिज़ॉल्यूशन या नेटवर्क कनेक्टिविटी से जुड़ी समस्या की वजह से हो सकती है. अगर ऐसा है, तो इस निर्देश को चलाते समय आपको गड़बड़ी का यह मैसेज दिख सकता है:
curl https://hostName:port/apiProxyBasePath/requestPath
curl: (6) Could not resolve host: hostName
रिज़ॉल्यूशन
डीएनएस कॉन्फ़िगरेशन की पुष्टि करने के लिए, इस निर्देश का इस्तेमाल किया जा सकता है:
dig hostName
आपके पास इस निर्देश की मदद से, नेटवर्क कनेक्टिविटी की पुष्टि करने का विकल्प है:
telnet hostName port
दूसरी स्थिति: Apigee Edge राऊटर पर अनुरोध पूरे नहीं हो पाते
वजह
इस स्थिति में, गड़बड़ी TLS/एसएसएल हैंडशेक के काम न करने की वजह से हो सकती है. ऐसा होने पर, आपको इनमें से कोई एक गड़बड़ी दिख सकती है:
Received fatal alert: handshake_failure
HTTP/1.1 400 Bad Request
आपको एसएसएल सर्टिफ़िकेट की गड़बड़ी भी दिख सकती है.
रिज़ॉल्यूशन
इन समस्याओं को हल करने के लिए, नीचे दी गई प्लेबुक देखें:
तीसरी स्थिति: मैसेज प्रोसेसर के ज़रिए अनुरोधों को प्रोसेस नहीं किया जा सकता
वजह
इस स्थिति में, Apigee Message प्रोसेसर को, दिए गए वर्चुअल होस्ट और पाथ के लिए, एपीआई प्रॉक्सी नहीं मिल सका. इस वजह से, आपको इनमें से कोई एक गड़बड़ी दिख सकती है:
HTTP/1.1 404 Not Found
{ "fault":{ "faultstring":"Unable to identify proxy for host: default and url: \/apiProxyBasePath/requestPath", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }
रिज़ॉल्यूशन
इस गड़बड़ी को ठीक करने और इसे हल करने के लिए, यह प्लेबुक देखें: 404 होस्ट के लिए प्रॉक्सी की पहचान नहीं की जा सकी.
वजह: क्लासिफ़िकेशन ट्री में एपीआई प्रॉक्सी नहीं मिला
विश्लेषण
अगर किसी मैसेज प्रोसेसर को क्लासिफ़िकेशन ट्री में एपीआई प्रॉक्सी नहीं मिलती, तो उस प्रॉक्सी के लिए किया गया कोई भी एपीआई अनुरोध, Edge यूज़र इंटरफ़ेस (यूआई) में ट्रेस सेशन में नहीं दिखाया जाएगा.
नीचे दिए गए तरीके का इस्तेमाल करके पता लगाएं कि क्या ऐसा है:
प्रत्येक संदेश प्रोसेसर में लॉग इन करें और यह देखने के लिए जांच करें कि क्या अनुरोध किए गए API का विशिष्ट संशोधन निम्न आदेश का उपयोग करके संदेश प्रोसेसर के प्रासंगिक परिवेश में परिनियोजित किया गया है:
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
आउटपुट का उदाहरण:
ऊपर दिया गया निर्देश, डिप्लॉय किए गए बदलावों की एक सूची दिखाएगा. उदाहरण के लिए, अगर वर्शन 12 लागू किया गया है, तो आपको यह आउटपुट दिखेगा:
[ "12" ]
जब तक आपको बीच-बीच में आने वाली एचटीटीपी 404 गड़बड़ियों का सामना नहीं करना पड़ रहा हो, तब तक आप यह देख सकते हैं कि कोई खास बदलाव लागू किया गया है.
क्लासिफ़िकेशन ट्री पढ़ें और नीचे दिए गए कमांड का इस्तेमाल करके, देखें कि एपीआई प्रॉक्सी नाम मौजूद है या नहीं:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
हर मैसेज प्रोसेसर के लिए, पहले और दूसरे चरण को दोहराएं. अगर दिया गया एपीआई प्रॉक्सी नाम किसी भी मैसेज प्रोसेसर के क्लासिफ़िकेशन ट्री से गायब है, तो नीचे दिए गए समाधान का पालन करें.
रिज़ॉल्यूशन
इस समस्या को हल करने के लिए, कृपया नीचे दिया गया तरीका अपनाएं. बहुत ज़्यादा अनुरोध लोड होने के दौरान, Message प्रोसेसर को रीस्टार्ट करने से होने वाली प्रोडक्शन रुकावटों से बचने के लिए ज़रूरी सावधानी बरतें.
उन सभी मैसेज प्रोसेसर होस्ट में लॉग इन करें जिनके लिए क्लासिफ़िकेशन ट्री में खास एपीआई प्रॉक्सी मौजूद नहीं है. इसके बाद, मैसेज प्रोसेसर को रीस्टार्ट करने के लिए, नीचे दिए गए निर्देश का इस्तेमाल करें:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
रीस्टार्ट होने पर, नीचे दिए गए निर्देश का इस्तेमाल करके, उसके चालू होने तक इंतज़ार करें:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
संदेश प्रोसेसर के तैयार हो जाने पर, निम्न आदेश का उपयोग करके API प्रॉक्सी की उपलब्धता को सत्यापित करें:
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
आउटपुट का उदाहरण:
ऊपर दिया गया निर्देश, डिप्लॉय किए गए बदलावों की एक सूची दिखाएगा. उदाहरण के लिए, अगर वर्शन 12 लागू किया गया है, तो आपको यह आउटपुट दिखेगा:
[ "12" ]
जब तक आपको बीच-बीच में आने वाली एचटीटीपी 404 गड़बड़ियों का सामना नहीं करना पड़ रहा हो, तब तक आप यह देख सकते हैं कि कोई खास बदलाव लागू किया गया है.
क्लासिफ़िकेशन ट्री को पढ़ें और इस निर्देश का इस्तेमाल करके, पुष्टि करें कि एपीआई प्रॉक्सी नाम मौजूद है:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
अगर समस्या अब भी बनी रहती है, तो गड़बड़ी की जानकारी इकट्ठा करना ज़रूरी है पर जाएं.
गड़बड़ी की जानकारी इकट्ठा करना ज़रूरी है
अगर ऊपर दिए गए निर्देशों का पालन करने के बाद भी समस्या बनी रहती है, तो कृपया गड़बड़ी से जुड़ी यह जानकारी इकट्ठा करें और उसे Apigee Edge की सहायता टीम के साथ शेयर करें:
गड़बड़ी की जानकारी जानकारी टाइप | कमांड |
---|---|
ट्रेस सेशन कमांड का आउटपुट | curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user |
मैनेजमेंट सर्वर लॉग | /opt/apigee/var/log/edge-management-server/logs/system.log |
Message प्रोसेसर के लॉग | /opt/apigee/var/log/edge-message-processor/logs/system.log |
मैनेजमेंट सर्वर से मैसेज प्रोसेसर को भेजे गए telnet /netcat निर्देशों का आउटपुट |
telnet MessageProcessor_IP 8082 nc -vz MessageProcessor_IP 8082 |
मैसेज प्रोसेसर पर नेटस्टेट कमांड का आउटपुट | netstat -an > netstat.txt |
सभी मैसेज प्रोसेसर पर खास एपीआई प्रॉक्सी के लिए डिप्लॉय किए गए आउटपुट लिस्टिंग में बदलाव | curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions |
सभी मैसेज प्रोसेसर पर क्लासिफ़िकेशन ट्री का आउटपुट | curl -i http://localhost:8082/v1/classification/tree |