Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
वीडियो
वीडियो | ब्यौरा |
---|---|
500 सर्वर में गड़बड़ी - बैकएंड की वजह से | यह बैकएंड सर्वर की वजह से होने वाले रीयल-टाइम 500 Internal Server Error को दिखाता है. साथ ही, गड़बड़ी को ठीक करने के तरीके भी बताता है. |
समस्या का ब्यौरा
क्लाइंट ऐप्लिकेशन को एपीआई कॉल के रिस्पॉन्स के तौर पर,
Internal Server Error
मैसेज के साथ 500
का एचटीटीपी स्टेटस कोड मिलता है.
एचटीटीपी स्टेटस कोड 500
, गड़बड़ी का सामान्य जवाब है. इसका मतलब है कि सर्वर
के सामने किसी गड़बड़ी की वजह से अनुरोध पूरा नहीं किया जा सका. आम तौर पर, सर्वर यह गड़बड़ी तब दिखाता है, जब कोई दूसरा गड़बड़ी कोड सही नहीं होता.
गड़बड़ी के मैसेज
क्लाइंट ऐप्लिकेशन को यह रिस्पॉन्स कोड मिलता है:
HTTP/1.1 500 Internal Server Error
इसके अलावा, आपको गड़बड़ी का एक मैसेज भी दिख सकता है, जो नीचे दिखाए गए मैसेज से मिलता-जुलता हो:
नमूना #1
बैकएंड सर्वर से मिले जवाब का सैंपल #1
{"errorMessage":"Sorry either your e-mail or password didn't match.", "errorParameters":"{}", "errorCode":"500", "errorKey":"INVALID_EMAILPASSWORD"}
नमूना #2
बैकएंड सर्वर से मिले जवाब का सैंपल #2
<Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <Error> <code>500</code> <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message> </Error> </Body> </Envelope>
संभावित कारण
कई वजहों से 500 Internal Server Error
को बैकएंड सर्वर दिखा सकता है. इस प्लेबुक में बताया गया है कि सामान्य तरीकों को अपनाकर समस्या कैसे हल करें और इस गड़बड़ी की वजह चाहे जो भी हो, उसे ठीक कैसे करें.
इस समस्या की ये वजहें हो सकती हैं:
वजह | ब्यौरा | समस्या हल करने के लिए निर्देश |
---|---|---|
बैकएंड सर्वर में गड़बड़ी | किसी वजह से बैकएंड सर्वर काम नहीं कर सकता. | Edge के निजी और सार्वजनिक क्लाउड के उपयोगकर्ता |
निदान के सामान्य चरण
इस गड़बड़ी का पता लगाने के लिए, नीचे दिए गए किसी टूल/तकनीक का इस्तेमाल करें:
एपीआई मॉनिटरिंग
प्रोसेस #1: एपीआई मॉनिटरिंग का इस्तेमाल करना
एपीआई मॉनिटरिंग का इस्तेमाल करके, गड़बड़ी का पता लगाने के लिए:
- सही भूमिका वाले उपयोगकर्ता के तौर पर, Apigee Edge के यूज़र इंटरफ़ेस (यूआई) में साइन इन करें.
उस संगठन पर जाएं जिसमें आपको समस्या की जांच करनी है.
- विश्लेषण करें > एपीआई की निगरानी करना > जांच करें पेज पर जाएं.
- वह खास समयसीमा चुनें जिसमें आपने गड़बड़ियां देखी थीं.
समय के हिसाब से गलत कोड प्लॉट करें.
वह सेल चुनें जिसमें गड़बड़ी कोड
messaging.adaptors.http.flow.ErrorResponseCode
है, जैसा कि नीचे दिखाया गया है:गड़बड़ी कोड
messaging.adaptors.http.flow.ErrorResponseCode
के बारे में जानकारी नीचे दिखाई गई है:लॉग देखें पर क्लिक करें और पूरे न हो पाने वाले अनुरोध की लाइन को बड़ा करें.
- लॉग विंडो से, नीचे दी गई जानकारी पर ध्यान दें:
- मैसेज आईडी का अनुरोध करना
- स्थिति कोड:
500
- गलत इस्तेमाल का सोर्स:
target
- गलत कोड:
messaging.adaptors.http.flow.ErrorResponseCode
ट्रेस
प्रोसेस #2: ट्रेस टूल का इस्तेमाल करना
ट्रेस टूल का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:
- ट्रेस सेशन को चालू करें या फिर
500 Internal Server Error
गड़बड़ी कोड के साथ,messaging.adaptors.http.flow.ErrorResponseCode
आने का इंतज़ार करें या- अगर समस्या को फिर से बनाया जा सकता है, तो समस्या को फिर से दिखाने के लिए एपीआई कॉल करें
500 Internal Server Error
पक्का करें कि FlowInfos दिखाएं चालू है:
- सफल न होने वाले अनुरोधों में से किसी एक को चुनें और ट्रेस की जांच करें.
- ट्रेस के अलग-अलग फ़ेज़ में नेविगेट करें और पता लगाएं कि गड़बड़ी कहां हुई थी.
आम तौर पर, टारगेट सर्वर से जवाब मिलने के बाद, आपको यह गड़बड़ी दिखेगी. इसके बारे में यहां बताया गया है:
- ट्रेस में AX (Analytics डेटा रिकॉर्ड किया गया) फ़ेज़ पर जाएं और उस पर क्लिक करें.
नीचे की ओर स्क्रोल करके, फ़ेज़ की जानकारी वाले रिस्पॉन्स हेडर सेक्शन पर जाएं और X-Apigee-fault-code और X-Apigee-fault-source की वैल्यू, और X-Apigee-Message-ID की वैल्यू तय करें, जैसा कि यहां दिखाया गया है:
- X-Apigee-fault-code, X-Apigee-fault-source, और X-Apigee-Message-ID की वैल्यू नोट करें:
रिस्पॉन्स हेडर | वैल्यू |
---|---|
X-Apigee-fault-code | messaging.adaptors.http.flow.ErrorResponseCode |
X-Apigee-fault-source | target |
X-Apigee-Message-ID | MESSAGE_ID |
NGINX
प्रक्रिया #3: NGINX ऐक्सेस लॉग का इस्तेमाल करना
NGINX ऐक्सेस लॉग का इस्तेमाल करके, गड़बड़ी का पता लगाने के लिए:
- अगर आप प्राइवेट क्लाउड उपयोगकर्ता हैं, तो एचटीटीपी
500 Internal Server Error
के बारे में अहम जानकारी तय करने के लिए, NGINX ऐक्सेस लॉग का इस्तेमाल कर सकते हैं. NGINX ऐक्सेस लॉग देखें:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- यह देखने के लिए खोजें कि किसी खास अवधि (अगर यह समस्या पहले हुई है) के दौरान, गड़बड़ी कोड
messaging.adaptors.http.flow.ErrorResponseCode
के साथ कोई500
गड़बड़ी तो नहीं है या500
से जुड़े ऐसे अनुरोध हैं जो अब भी पूरे नहीं हो पा रहे हैं. अगर आपको X-Apigee-fault-code की ऐसी कोई
500
गड़बड़ी दिखती है जोmessaging.adaptors.http.flow.ErrorResponseCode
की वैल्यू से मेल खाती है, तो X-Apigee-fault-source की वैल्यू तय करें.NGINX ऐक्सेस लॉग से 500 गड़बड़ी का नमूना:
NGINX ऐक्सेस लॉग की ऊपर दी गई सैंपल एंट्री में X-Apigee-fault-code और X-Apigee-fault-source के लिए ये वैल्यू दी गई हैं:
हेडर वैल्यू X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
X-Apigee-fault-source target
वजह: बैकएंड सर्वर में गड़बड़ी हुई
संक्रमण की जांच
बैकएंड सर्वर से रिस्पॉन्स मिला 500 Internal Server Error
कई वजहों से
हो सकता है. आपको हर स्थिति का अलग-अलग विश्लेषण करना होगा.
- एपीआई मॉनिटरिंग, ट्रेस टूल या NGINX ऐक्सेस लॉग का इस्तेमाल करके मिली गड़बड़ी का पता लगाने के लिए, गलत कोड, गड़बड़ी का सोर्स तय करें. इस बारे में गड़बड़ी की जानकारी पाने के सामान्य तरीके में बताया गया है.
- अगर गलत सोर्स
target
है और फ़ॉल कोडmessaging.adaptors.http.flow.ErrorResponseCode
है, तो इसका मतलब है कि बैकएंड सर्वर गड़बड़ी दिखाता है. - समस्या की वजह का पता लगाने के लिए, इनमें से कोई एक तरीका अपनाया जा सकता है:
ट्रेस
Trace का इस्तेमाल करना:
अगर आपके पास ट्रेस सेशन नहीं हो पाया है, तो यह तरीका अपनाएं:
- ट्रेस में, वह एपीआई अनुरोध चुनें जो
500 Internal Server Error
के साथ फ़ेल हो गया है. नीचे दिए गए चित्र के अनुसार काम न आने वाले एपीआई अनुरोध से टारगेट सर्वर से मिला रिस्पॉन्स चुनें:
नीचे की ओर स्क्रोल करके,फ़ेज़ की जानकारी सेक्शन पर जाएं और रिस्पॉन्स कॉन्टेंट देखें. इसमें बैकएंड सर्वर से मिला रिस्पॉन्स शामिल है.
जवाब का सैंपल:
<Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <Error> <code>500</code> <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message> </Error> </Body> </Envelope>
ऊपर दिए गए जवाब में, ध्यान दें कि बैकएंड सर्वर से मिला गड़बड़ी का मैसेज, अनुमति नहीं है है. इससे पता चलता है कि उपयोगकर्ता ने शायद अमान्य क्रेडेंशियल पास किए हैं और इसलिए, उसे यह गड़बड़ी मिल रही है.
बैकएंड सर्वर को कॉल करें
बैकएंड सर्वर पर सीधे कॉल करना:
सीधे बैकएंड सर्वर पर कॉल की जा सकती है और:
- पुष्टि करें कि आपको वही
500 Internal Server Error
रिस्पॉन्स मिल रहा है जो Apigee Edge से अनुरोध करने पर मिला था - बैकएंड सर्वर से मिला गड़बड़ी का मैसेज (जवाब) देखें
सीधे बैकएंड सर्वर पर कॉल करने के लिए, नीचे दिया गया तरीका अपनाएं:
- पक्का करें कि आपके पास सभी ज़रूरी हेडर, क्वेरी पैरामीटर, और वे सभी क्रेडेंशियल हों जिन्हें अनुरोध के तहत, बैकएंड सर्वर पर भेजना है.
- अगर बैकएंड सेवा सार्वजनिक तौर पर ऐक्सेस की जा सकती है, तो आपके पास
curl
कमांड, पोस्टमैन या किसी अन्य REST क्लाइंट का इस्तेमाल करने और सीधे बैकएंड सर्वर एपीआई को शुरू करने का विकल्प होता है. अगर बैकएंड सर्वर को सिर्फ़ मैसेज प्रोसेसर से ऐक्सेस किया जा सकता है, तो
curl
कमांड, पोस्टमैन या किसी अन्य REST क्लाइंट का इस्तेमाल किया जा सकता है. साथ ही, सीधे मैसेज प्रोसेसर से बैकएंड सर्वर एपीआई को शुरू किया जा सकता है.- पुष्टि करें कि बैकएंड सेवा वाकई
500 Internal Server Error
दिखा रही है या नहीं. इसके बाद, बैकएंड सर्वर से मिलने वाले गड़बड़ी के मैसेज (रिस्पॉन्स) की जांच करके, इस गड़बड़ी की वजह पता करें.
बैकएंड सर्वर लॉग
बैकएंड सर्वर लॉग का इस्तेमाल करना
- बैकएंड सर्वर लॉग की समीक्षा करें और गड़बड़ी और उसकी वजह के बारे में ज़्यादा जानकारी पाने की कोशिश करें.
- अगर हो सके, तो गड़बड़ी और उसकी वजह के बारे में ज़्यादा जानकारी पाने के लिए, बैकएंड सर्वर पर डीबग मोड चालू करें.
- ट्रेस में, वह एपीआई अनुरोध चुनें जो
देखें कि क्या काम न करने वाले एपीआई प्रॉक्सी के खास टारगेट एंडपॉइंट में, प्रॉक्सी चेन का इस्तेमाल किया जा रहा है. इसका मतलब यह है कि अगर टारगेट सर्वर/टारगेट एंडपॉइंट, Apigee Edge में किसी अन्य प्रॉक्सी को शुरू कर रहा है. इसका पता लगाने के लिए:
अगर आपके पास पूरे न होने वाले अनुरोध का ट्रेस है, तो टारगेट सर्वर को भेजा गया अनुरोध फ़ेज़ पर जाएं. इसके बाद, कर्ल दिखाएं पर क्लिक करें.
- इसके बाद, टारगेट सर्वर को भेजे गए अनुरोध के लिए कर्ल विंडो खुलती है. इससे टारगेट सर्वर के होस्ट का उपनाम तय किया जा सकता है.
- अपने एपीआई प्रॉक्सी के टारगेट एंडपॉइंट की समीक्षा करें और देखें कि बैकएंड सर्वर यूआरएल या टारगेट सर्वर में मौजूद होस्ट नेम, किसी दूसरे प्रॉक्सी या आपके बैकएंड सर्वर पर ले जाता है या नहीं.
- अगर टारगेट सर्वर होस्ट का उपनाम किसी वर्चुअल होस्ट उपनाम की ओर इशारा कर रहा है, तो इसका मतलब है प्रॉक्सी चेन. इस स्थिति में, आपको चेन वाली प्रॉक्सी के लिए ऊपर दिए गए सभी चरणों को तब तक दोहराना होगा, जब तक कि आपको यह पता न चल जाए कि
500 Internal Server Error
की वजह क्या है. इन मामलों में,500 Internal Server Error
अन्य चरणों पर, एक-दूसरे से जुड़ी चेन में भी हो सकता है. साथ ही, इस प्लेबुक में दिए गए निर्देशों या 500 सर्वर की गड़बड़ी की प्लेबुक में दिए गए निर्देशों की मदद से, इस समस्या का पता लगाया जा सकता है और इसका समाधान किया जा सकता है. - अगर टारगेट सर्वर होस्ट का उपनाम आपके बैकएंड सर्वर पर ले जाता है, तो रिज़ॉल्यूशन पर जाएं.
रिज़ॉल्यूशन
अगर यह पता चलता है कि 500
की गड़बड़ी बैकएंड सर्वर से हो रही है, तो अपनी बैकएंड सर्वर टीम के साथ मिलकर समस्या को सही तरीके से ठीक करें.
ऊपर दिए गए उदाहरण में, इस समस्या को ठीक करने के लिए आपको उपयोगकर्ताओं से मान्य क्रेडेंशियल पास करने का अनुरोध करना पड़ सकता है.
इन बातों का ध्यान रखें
500 Internal Server Error
के लिए बैकएंड सर्वर से मिला गड़बड़ी का असल मैसेज, सिर्फ़ तब देखा जा सकता है, जब आपने पूरे न होने वाले अनुरोधों के लिए, ट्रेस सेशन को कैप्चर किया हो.- सुरक्षा को ध्यान में रखते हुए, बैकएंड सर्वर से मिले रिस्पॉन्स को एपीआई मॉनिटरिंग, NGINX ऐक्सेस लॉग या मैसेज प्रोसेसर लॉग में लॉग नहीं किया जाएगा.
500 Internal Server Error
के बारे में ज़्यादा जानकारी पाने और/या बैकएंड सर्वर से मिला गड़बड़ी का मैसेज देखने के लिए, बैकएंड सर्वर लॉग देखें या बैकएंड पर डीबग मोड चालू करें.
ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी इकट्ठा करनी होगी
अगर ऊपर दिए गए निर्देशों का पालन करने के बाद भी समस्या बनी रहती है, तो गड़बड़ी से जुड़ी यह जानकारी इकट्ठा करें और Apigee Edge की सहायता टीम से संपर्क करें.
अगर आप Public Cloud उपयोगकर्ता हैं, तो यह जानकारी दें:
- संगठन का नाम
- परिवेश का नाम
- एपीआई प्रॉक्सी का नाम
500
गड़बड़ी को फिर से दिखाने के लिए,curl
कमांड पूरा करें500 Internal Server Error
के साथ किए गए अनुरोधों वाली ट्रेस फ़ाइल- अगर फ़िलहाल
500
गड़बड़ियां नहीं हो रही हैं, तो पहले500
गड़बड़ियां होने के दौरान समय क्षेत्र की जानकारी के साथ समयावधि दें.
अगर आप प्राइवेट क्लाउड उपयोगकर्ता हैं, तो यह जानकारी दें:
- असफल अनुरोधों के लिए देखा गया पूरा गड़बड़ी का मैसेज
- संगठन, एनवायरमेंट का नाम, और एपीआई प्रॉक्सी का नाम, जिसके लिए आप
500
गड़बड़ियां देख रहे हैं - एपीआई प्रॉक्सी बंडल
500 Internal Server Error
के साथ किए गए अनुरोधों वाली ट्रेस फ़ाइल- NGINX के ऐक्सेस लॉग
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
कहां: ORG, ENV, और PORT# को असल वैल्यू से बदल दिया जाता है.
- मैसेज प्रोसेसर के सिस्टम लॉग
/opt/apigee/var/log/edge-message-processor/logs/system.log
- वह समयावधि जिसमें
500
गड़बड़ियां हुई. टाइमज़ोन की जानकारी के साथ समयावधि.