আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
উপসর্গ
ব্যবহারকারী এজ UI এ ট্রেস সেশন তৈরি করতে অক্ষম৷
ত্রুটি বার্তা
নীচে দেখানো হিসাবে আপনি এজ UI এ একটি ত্রুটি বার্তা পাবেন:
Error creating trace session for API proxy <api proxy name>, revision <revision number>, environment <environment name>.
Failed to create DebugSession <session number>
এজ UI-তে পরিলক্ষিত একটি নমুনা ত্রুটি বার্তার স্ক্রিনশট এখানে:
সম্ভাব্য কারণ
এই ত্রুটির জন্য সম্ভাব্য কিছু কারণ নীচে তালিকাভুক্ত করা হয়েছে:
কারণ | বর্ণনা | এর জন্য প্রযোজ্য সমস্যা সমাধানের নির্দেশাবলী |
নেটওয়ার্ক সংযোগ সমস্যা | নেটওয়ার্ক সংযোগ সমস্যা বা ফায়ারওয়াল নিয়মের কারণে ম্যানেজমেন্ট সার্ভার এবং মেসেজ প্রসেসরের মধ্যে যোগাযোগের ব্যর্থতা। | এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা |
বার্তা প্রসেসরে পরিবেশ লোড হয় না | নির্দিষ্ট পরিবেশ (যেখানে আপনি ট্রেস সক্ষম করার চেষ্টা করছেন) একটি ত্রুটির কারণে বার্তা প্রসেসরে (গুলি) লোড করা হয়নি। | |
বাসি বার্তা প্রসেসর এন্ট্রি | ম্যানেজমেন্ট সার্ভারে অস্তিত্বহীন (বাসি) মেসেজ প্রসেসরের রেফারেন্স রয়েছে। | |
বার্তা প্রসেসর পৌঁছানো যায় না | মেসেজ প্রসেসর বন্ধ হয়ে গেছে বা পৌঁছানো যায় না। | |
উচ্চ সম্পদ ব্যবহার সমস্যা | বার্তা প্রসেসর (গুলি) উচ্চ সম্পদ (সিপিইউ, মেমরি বা লোড) ব্যবহার অনুভব করছে। | |
API প্রক্সি এক বা একাধিক বার্তা প্রসেসরে স্থাপন করা হয়নি | এপিআই প্রক্সি এক বা একাধিক বার্তা প্রসেসরে স্থাপন করা নাও হতে পারে কারণ স্থাপনার সময় ইভেন্ট বিজ্ঞপ্তি অনুপস্থিত। | |
এজ UI এর সাথে সমস্যা | এজ UI কিছু ত্রুটির কারণে একটি ট্রেস সেশন তৈরি করতে অক্ষম৷ |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ব্যবস্থাপনা API চালান:
curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
আপনি যদি কোন ত্রুটি পান, তাদের নোট করুন. নেটওয়ার্ক কানেক্টিভিটি ইস্যুতে যান।
যদি আপনি একটি সফল প্রতিক্রিয়া পান, তাহলে এটি নির্দেশ করে যে ট্রেস সেশন পরিচালনা API এর মাধ্যমে তৈরি করা যেতে পারে। যাইহোক, এজ UI এর সাথে একটি সম্ভাব্য সমস্যা হতে পারে যেমন UI এ ট্রেস সেশন তৈরি করা যাবে না। Edge UI এর সাথে ইস্যুতে যান।
কারণ: নেটওয়ার্ক কানেক্টিভিটি সমস্যা
রোগ নির্ণয়
ম্যানেজমেন্ট সার্ভার লগ
/opt/apigee/var/log/edge-management-server/logs/system.log
পরীক্ষা করুন এবং ট্রেস/ডিবাগ সেশন তৈরির সময় কোন ত্রুটি আছে কিনা তা দেখুন।ম্যানেজমেন্ট সার্ভার লগ থেকে নমুনা ত্রুটি
2018-02-08 09:08:21,310 org:myorg env:uat qtp1073741635-1074 ERROR DISTRIBUTION - DebugSessionAPI.createDebugSession() : createDebugSession : Unable to connect to the server with UUID cedeabd2-e4d1-40bb-8f18-d6afc8835e5b org.apache.http.conn.HttpHostConnectException: Connect to 10.84.75.92:8082 [/10.84.75.92] failed: Connection refused at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:140) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363) ~[httpclient-4.3.5.jar:4.3.5] ...<snipped> Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_65] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_65] ...<snipped>
উপরের নমুনা ত্রুটি দেখায় যে যখন ম্যানেজমেন্ট সার্ভার পোর্ট # 8082-এ মেসেজ প্রসেসরের সাথে সংযোগ করার চেষ্টা করে তখন আমরা "সংযোগ প্রত্যাখ্যান" ত্রুটি পাচ্ছি। তাই, ম্যানেজমেন্ট সার্ভার ট্রেস সেশন তৈরি করতে অক্ষম।
আপনি যদি নেটওয়ার্ক কানেক্টিভিটি সম্পর্কিত কোনো ত্রুটি দেখতে না পান বা উপরের উদাহরণে দেখানো একটির মতো কোনো ত্রুটি দেখতে না পান, তাহলে মেসেজ প্রসেসরে লোড না হওয়া পরিবেশে যান।
আপনি যদি নেটওয়ার্ক কানেক্টিভিটি সম্পর্কিত ত্রুটি(গুলি) দেখেন বা উপরের উদাহরণে দেখানো একটির মতো একটি ত্রুটি দেখেন, তাহলে নিচের ধাপগুলি অনুসরণ করুন৷
নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে পোর্ট 8082-এ ম্যানেজমেন্ট সার্ভার থেকে বার্তা প্রসেসরের সংযোগ পরীক্ষা করুন:
যদি টেলনেট পাওয়া যায়, তাহলে টেলনেট ব্যবহার করুন:
telnet <MessageProcessor_IP> 8082
যদি টেলনেট উপলভ্য না থাকে, তাহলে নেটক্যাট ব্যবহার করে কানেক্টিভিটি চেক করুন:
nc -vz <MessageProcessor_IP> 8082
আপনি যদি "সংযোগ প্রত্যাখ্যান" বা "সংযোগের সময় শেষ" প্রতিক্রিয়া পান তবে পরবর্তী ধাপে যান৷
সংশ্লিষ্ট আইপি ঠিকানা দিয়ে প্রতিটি বার্তা প্রসেসরে লগইন করুন যা ত্রুটি দেখিয়েছে এবং নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
পোর্ট 8082 এ মেসেজ প্রসেসর শুনছে কিনা তা পরীক্ষা করুন:
netstat -an | grep LISTEN | grep 8082
যদি মেসেজ প্রসেসর পোর্ট 8082 এ শুনছে, তাহলে ধাপ #7 এ যান।
যদি মেসেজ প্রসেসর পোর্ট 8082 এ শুনছে না, তাহলে এই কমান্ডটি ব্যবহার করে মেসেজ প্রসেসর পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
বার্তা প্রসেসর সম্পূর্ণরূপে এই কমান্ড ব্যবহার করা শুরু না হওয়া পর্যন্ত অপেক্ষা করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
মেসেজ প্রসেসর চালু হয়ে গেলে, পোর্ট 8082-এ মেসেজ প্রসেসর শুনছে কিনা তা আবার চেক করুন।
যদি মেসেজ প্রসেসর 8082 পোর্টে শুনছে, তাহলে ধাপ #7 এ যান।
আপনি এখন UI-তে ট্রেস সেশন শুরু করতে সক্ষম কিনা তা পরীক্ষা করুন। সমস্যাটি আর পরিলক্ষিত না হলে নিচের ধাপগুলো এড়িয়ে যান।
যদি মেসেজ প্রসেসর চলছে এবং 8082 পোর্টে শুনছে, কিন্তু আপনি এখনও ম্যানেজমেন্ট সার্ভারের মতো অন্যান্য সার্ভার থেকে সংযোগ করতে অক্ষম হন, তাহলে সম্ভবত একটি ফায়ারওয়াল আছে যা অবশ্যই বাহ্যিক সংযোগগুলিকে ব্লক করছে।
ফায়ারওয়াল নিয়ম চেক করতে উপযুক্ত কমান্ড ব্যবহার করুন. উদাহরণস্বরূপ, আপনি আপনার সিস্টেমে সংজ্ঞায়িত সমস্ত ফায়ারওয়াল নিয়ম তালিকাভুক্ত করতে iptables কমান্ডটি চালাতে পারেন:
iptables -L -n
যদি পোর্ট 8082 এর জন্য কোন ফায়ারওয়াল নিয়ম সেট করা না থাকে, তাহলে হাই রিসোর্স ইউটিলাইজেশন ইস্যুতে যান।
পোর্ট 8082-এ কোনো ফায়ারওয়াল নিয়ম সেটআপ থাকলে, নীচের রেজোলিউশন বিভাগে যান।
রেজোলিউশন
- বহিরাগত সার্ভার থেকে পোর্ট 8082 এ ইনবাউন্ড/আউটবাউন্ড ট্রাফিকের অনুমতি দিতে আপনার নেটওয়ার্ক প্রশাসকের সাথে কাজ করুন।
যদি সমস্যাটি এখনও থেকে যায়, তাহলে অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন- এ যান।
কারণ: বার্তা প্রসেসরে পরিবেশ লোড হয় না
রোগ নির্ণয়
- ম্যানেজমেন্ট সার্ভার লগ
/opt/apigee/var/log/edge-management-server/logs/system.log
চেক করুন এবং ট্রেস/ডিবাগ সেশন তৈরির সময় কোন ত্রুটি আছে কিনা তা দেখুন। নীচে দেখানো হিসাবে ট্রেস/ডিবাগ সেশন তৈরি করার সময় আপনি " এমপি(গুলি) থেকে কোনও বৈধ প্রতিক্রিয়া নেই " এর মতো একটি ত্রুটি বার্তা দেখতে পারেন:
2018-01-30 08:28:09,721 org:mynonprod env:uat qtp2007599722-712162 ERROR DISTRIBUTION - DebugSessionAPI.createDebugSession() : no valid responses from MP(s), throwing error 2018-01-30 08:28:09,723 org:mynonprod env:uat qtp2007599722-712162 ERROR REST - CustomJAXRSInvoker.performInvocation() : CustomJAXRSInvoker.performInvocation : Method com.apigee.distribution.DebugSessionAPI.createDebugSession threw an exception. 2018-01-30 08:28:09,724 org:mynonprod env:uat qtp2007599722-712162 ERROR REST - ExceptionMapper.toResponse() : Error occurred : Failed to create DebugSession 1517297564678 2018-01-30 08:28:09,724 org:mynonprod env:uat qtp2007599722-712162 ERROR REST - ExceptionMapper.toResponse() : Returning error response : ErrorResponse{errorCode = distribution.CreateDebugSessionFailed, errorMessage = Failed to create DebugSession 1517297564678}
এই ত্রুটিটি নির্দেশ করে যে বার্তা প্রসেসর(গুলি) কোনো কারণে ম্যানেজমেন্ট সার্ভারে সাড়া দিচ্ছে না।
আপনি যদি উপরের উদাহরণে দেখানো একটির মতো একটি ত্রুটি দেখতে না পান, তাহলে Stale Message Processor Entry- এ যান।
আপনি যদি উপরের উদাহরণে দেখানো একটির মতো একটি ত্রুটি লক্ষ্য করেন, তাহলে এই পদক্ষেপগুলি অনুসরণ করুন৷
এই ত্রুটির একটি সম্ভাব্য কারণ হল আপনি যে পরিবেশে ট্রেস সেশন তৈরি করার চেষ্টা করছেন তা মেসেজ প্রসেসরে লোড হয় না।
প্রতিটি মেসেজ প্রসেসরে লগইন করুন এবং নিচের কমান্ডটি ব্যবহার করে আপনি যে নির্দিষ্ট পরিবেশে ট্রেস সেশন তৈরি করার চেষ্টা করছেন সেটি মেসেজ প্রসেসরে লোড হয়েছে কিনা তা পরীক্ষা করুন:
curl -s http://localhost:8082/v1/runtime/organizations/<org-name>/environments
উদাহরণ আউটপুট:
আপনি উপরের কমান্ডের আউটপুটে মেসেজ প্রসেসরে লোড করা নির্দিষ্ট সংস্থার অন্তর্গত পরিবেশের তালিকা দেখতে পাবেন। উদাহরণস্বরূপ, যদি প্রিপ্রোড এবং পরীক্ষার পরিবেশগুলি বার্তা প্রসেসরে লোড করা হয়, তাহলে আপনি নিম্নরূপ আউটপুট দেখতে পাবেন:
[ "প্রিপ্রোড", "পরীক্ষা" ]
যদি নির্দিষ্ট পরিবেশ, "dev" বলুন, যেখানে আপনি একটি ট্রেস সেশন তৈরি করার চেষ্টা করছেন, উপরের কমান্ডের অংশ হিসাবে তালিকাভুক্ত করা হয়, তাহলে Stale Message Processor Entry- এ যান।
যদি নির্দিষ্ট পরিবেশ, "dev" বলুন, উপরের কমান্ডের অংশ হিসাবে তালিকাভুক্ত না হয়, তাহলে
/opt/apigee/var/log/edge-message-processor/logs/system.log
এবং/opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
চেক করুন/opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
পরিবেশ লোড করার সময় কোনো ত্রুটির জন্য বার্তা প্রসেসরে।মেসেজ প্রসেসরে পরিবেশ লোড করতে ব্যর্থতার কারণ হতে পারে এমন অনেকগুলি বিভিন্ন ত্রুটি থাকতে পারে। রেজোলিউশন ত্রুটি ঘটেছে উপর নির্ভর করে.
রেজোলিউশন
অনেক কারণে মেসেজ প্রসেসরে পরিবেশ লোড নাও হতে পারে। এই বিভাগটি কয়েকটি সম্ভাব্য কারণ ব্যাখ্যা করে যা এই সমস্যাটির দিকে নিয়ে যেতে পারে এবং কীভাবে সমস্যার সমাধান করা যায় তা ব্যাখ্যা করে৷
আপনি যদি মেসেজ প্রসেসর লগে নিম্নলিখিত ত্রুটিগুলির মধ্যে একটি দেখতে পান, তাহলে নির্দিষ্ট পরিবেশে নির্দিষ্ট কীস্টোর/ট্রাস্টস্টোরে যোগ করা শংসাপত্র/কীগুলির সাথে পাওয়া একটি সমস্যার কারণে এটি ঘটে।
ত্রুটি #1: java.security.KeyStoreException: নিজের সার্টিফিকেট ওভাররাইট করা যাবে না
2018-01-30 12:04:38,248 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mycert in key store : mytruststore in environment : test at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.AbstractConfigurator.propagateEvent(AbstractConfigurator.java:85) ~[config-entities-1.0.0.jar:na] at com.apigee.messaging.runtime.Environment.handleUpdate(Environment.java:238) [message-processor-1.0.0.jar:na] … Caused by: java.security.KeyStoreException: Cannot overwrite own certificate at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:355) ~[sunjce_provider.jar:1.8.0_151] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_151] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na] ... 20 common frames omitted 2018-01-30 12:04:38,250 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
ত্রুটি #2: java.security.KeyStoreException: গোপন কী ওভাররাইট করা যাবে না
2017-11-01 03:28:47,560 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mstore in key store : myTruststore in environment : dev at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] ... Caused by: java.security.KeyStoreException: Cannot overwrite secret key at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:354) ~[sunjce_provider.jar:1.8.0_144] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_144] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na] ... 20 common frames omitted 2017-11-01 03:28:47,562 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
নিম্নলিখিত ব্যবস্থাপনা API কল ব্যবহার করে পূর্ববর্তী ধাপে দেখানো ত্রুটি বার্তায় নির্দিষ্ট করা কীস্টোর/ট্রাস্টস্টোরের বিবরণ পান:
curl -v "http://<management-IPaddress>:8080/v1/organizations/<org-name>/environments/<env-name>/keystores/myTruststore" -u <user>
উদাহরণ আউটপুট:
{ "certs": [ "mycert", "mycert-new" ], "keys": [ "mycert" ], "name": "myTruststore" }
উদাহরণ আউটপুট দেখায় যে ট্রাস্টস্টোর myTruststore- এ দুটি শংসাপত্র এবং একটি কী রয়েছে। ট্রাস্টস্টোরে সাধারণত একটি কী থাকে না। যদি এটি করে তবে একটি একক শংসাপত্র এবং একটি একক কী থাকা ভাল৷
নিম্নলিখিত API ব্যবহার করে দুটি শংসাপত্র সম্পর্কে বিশদ পান:
curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
প্রতিটি শংসাপত্রের মেয়াদ শেষ হওয়ার তারিখ পরীক্ষা করুন এবং মেয়াদ শেষ/পুরনো শংসাপত্র নির্ধারণ করুন।
ট্রাস্টস্টোর "myTruststore" থেকে মেয়াদোত্তীর্ণ বা অবাঞ্ছিত শংসাপত্র মুছুন।
যদি সমস্যাটি এখনও থেকে যায় বা আপনি উপরের ধাপ # 1 এ উল্লিখিত ত্রুটিগুলি ছাড়া অন্য কোনও ত্রুটি দেখতে পান তবে অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন এ যান৷
কারণ: বাসি মেসেজ প্রসেসর এন্ট্রি বা মেসেজ প্রসেসর পৌঁছানো যায় না
রোগ নির্ণয়
- যদি এজ UI দীর্ঘ সময় নেয় এবং ট্রেস সেশন তৈরি করতে ব্যর্থ হয়, তাহলে এখানে কিছু সম্ভাব্য কারণ রয়েছে:
- ম্যানেজমেন্ট সার্ভার অ-অস্তিত্বশীল (বাসি) বার্তা প্রসেসরের উল্লেখ করতে পারে
- মেসেজ প্রসেসর(গুলি) বন্ধ করা হয়েছে বা পৌঁছানো যায় না
- বার্তা প্রসেসরগুলি উচ্চ মেমরি/সিপিইউ ব্যবহারে চলছে
- ম্যানেজমেন্ট সার্ভার লগ
/opt/apigee/var/log/edge-management-server/logs/system.log
চেক করুন এবং ট্রেস/ডিবাগ সেশন তৈরির সময় কোন ত্রুটি আছে কিনা তা দেখুন। নীচে দেখানো হিসাবে ট্রেস/ডিবাগ সেশন তৈরি করার সময় আপনি "সার্ভার <UUID> হয় আপ নয় বা পৌঁছানো যায় না" এর মতো একটি ত্রুটি বার্তা দেখতে পারেন:
2017-12-27 07:42:38,975 org:cocacola env:prod qtp2007599722-222063 INFO DISTRIBUTION - DebugSessionAPI.createDebugSession() : server 458b5910-2646-441c-a6e2-428b6d84e021 is either not up or reachable, skipping the server
এটি নীচে দেখানো হিসাবে কিছুক্ষণ পরে আরও একটি ত্রুটি "সংযোগের সময় শেষ" অনুসরণ করা যেতে পারে:
2017-12-27 07:44:46.000 UTC org:cocacola env:prod qtp2007599722-222063 ERROR DISTRIBUTION - DebugSessionAPI.createDebugSession() : createDebugSession : Unable to connect to the server with UUID {}, skipping it458b5910-2646-441c-a6e2-428b6d84e021 org.apache.http.conn.HttpHostConnectException: Connect to 192.168.101.7:8080 [/192.168.101.7] failed: Connection timed out (Connection timed out) at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:140) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219) ~[httpclient-4.3.5.jar:4.3.5] …<snipped> Caused by: java.net.ConnectException: Connection timed out (Connection timed out) at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_144] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_144] …<snipped>
এই দুটি ত্রুটি নির্দিষ্ট বার্তা প্রসেসর(গুলি) এর কারণে হতে পারে:
- বাসি হচ্ছে (আর বিদ্যমান নেই)
- নিচে থাকা/কোন কারণে পৌঁছানো যায় না
পরিস্থিতির সম্মুখীন হওয়ার উপর নির্ভর করে উপযুক্ত রেজোলিউশন অনুসরণ করুন।
রেজোলিউশন
দৃশ্যকল্প #1 : বার্তা প্রসেসর (গুলি) বাসি (অস্তিত্বহীন)
নীচের ব্যবস্থাপনা API ব্যবহার করে বার্তা প্রসেসরের তালিকা পান:
curl -u <sysadmin> "http://<management-server-host>:8080/v1/servers?pod=<podName>®ions=<regionName>"
ম্যানেজমেন্ট সার্ভার লগগুলিতে ত্রুটি বার্তায় উল্লিখিত বার্তা প্রসেসরগুলির UUID (গুলি) এর সাথে সম্পর্কিত IP ঠিকানা বা হোস্টনামটি নোট করুন (উপরে নির্ণয়ের ধাপ #3)। নিম্নলিখিত উপায়গুলির মধ্যে একটি ব্যবহার করে এগুলি বৈধ বার্তা প্রসেসর কিনা তা যাচাই করুন:
- সর্বশেষ ব্যক্তিগত ক্লাউড টপোলজি সেটআপ চিত্র
- সর্বশেষ এজ সার্ভার আইপি ঠিকানা - হোস্ট নেম ম্যাপিং টেবিল
আপনি যদি এগুলিকে বৈধ বার্তা প্রসেসর বলে মনে করেন, তাহলে দৃশ্যকল্প 2-এ যান : বার্তা প্রসেসর (গুলি) পৌঁছানো যায় না ।
নিচের ম্যানেজমেন্ট এপিআই ব্যবহার করে বাসি (অবিদ্যমান) মেসেজ প্রসেসর মুছুন:
প্রতিষ্ঠানের পরিবেশ থেকে বার্তা প্রসেসর ডিরেজিস্টার করুন:
curl -X POST http://<management-server-host>:8080/v1/o/<orgName>/e/<envName>/servers -d "uuid={uuid}®ion=<regionName>&pod=<podName}&action=remove"
ডিরেজিস্টার সার্ভারের ধরন:
curl http://<management-server-host>:8080/v1/servers -X POST -d "type={message-processor}®ion=<regionName>&pod=<podName>&uuid=<uuid>&action=remove"
সার্ভার মুছুন:
curl http://<management-ip>:8080/v1/servers/<uuid> -X DELETE
আপনার প্রতিষ্ঠানের অন্য কোনো পরিবেশে আপনার একই সমস্যা থাকলে ধাপ #3টি পুনরাবৃত্তি করুন।
দৃশ্যকল্প 2: বার্তা প্রসেসর(গুলি) পৌঁছানো যায় না
- ম্যানেজমেন্ট সার্ভার লগের ত্রুটি বার্তায় দেখা UUID-এর উপর ভিত্তি করে IP ঠিকানা/হোস্টের নাম নির্ধারণ করে প্রতিটি মেসেজ প্রসেসরে লগইন করুন।
বার্তা প্রসেসর পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
আপনি ট্রেস সেশন তৈরি করতে সক্ষম কিনা তা পুনরায় পরীক্ষা করুন। যদি সমস্যাটি থেকে যায়, অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন এ যান ।
কারণ: উচ্চ সম্পদ ব্যবহার সমস্যা
রোগ নির্ণয়
প্রতিটি মেসেজ প্রসেসরে লগইন করুন এবং পরীক্ষা করুন যে কোনও সংস্থান - CPU, মেমরি বা লোডের উচ্চ ব্যবহার আছে কিনা। আপনি মেসেজ প্রসেসর প্রক্রিয়ার সম্পদ ব্যবহারের তথ্য পেতে ইউনিক্স ভিত্তিক অপারেটিং সিস্টেমে
top
কমান্ড ব্যবহার করতে পারেন:top
যদি মেসেজ প্রসেসর(গুলি) উচ্চ সম্পদ ব্যবহারের অভিজ্ঞতা না পায়, তাহলে Must Gather Diagnostic Information এ যান।
যদি মেসেজ প্রসেসর(গুলি) উচ্চ CPU বা মেমরি ব্যবহারের সম্মুখীন হয়, তাহলে এর ফলে মেসেজ প্রসেসর সময়মতো ম্যানেজমেন্ট সার্ভারে সাড়া না দিতে পারে। এটি অবশেষে আপনাকে ট্রেস সেশন তৈরি করতে সক্ষম হতে বাধা দেয়।
যদি কোনো মেসেজ প্রসেসর উচ্চ CPU ব্যবহারের সম্মুখীন হয়, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রতি 30 সেকেন্ডে তিনটি থ্রেড ডাম্প তৈরি করুন:
sudo <JAVA_HOME>/bin/jstack -l <pid> > <filename>
যদি কোনো মেসেজ প্রসেসরের উচ্চ মেমরি ব্যবহার হয়, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি হিপ ডাম্প তৈরি করুন:
sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
রেজোলিউশনে যান।
রেজোলিউশন
নীচের কমান্ডটি ব্যবহার করে বার্তা প্রসেসর পুনরায় চালু করুন। এটি সিপিইউ এবং মেমরি ব্যবহার কমিয়ে আনতে হবে:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
API কলগুলি নিরীক্ষণ করুন এবং সমস্যাটি এখনও বিদ্যমান কিনা তা নিশ্চিত করুন৷
Apigee এজ সাপোর্টের সাথে যোগাযোগ করুন এবং থ্রেড ডাম্প, হিপ ডাম্প এবং মেসেজ প্রসেসর লগ (
/opt/apigee/var/log/edge-message-processor/logs/system.log)
প্রদান করুন যাতে তাদের উচ্চ CPU/ এর কারণ অনুসন্ধান করতে সহায়তা করে মেমরি ব্যবহার।
কারণ: API প্রক্সি এক বা একাধিক বার্তা প্রসেসরে স্থাপন করা হয়নি
কদাচিৎ একটি API প্রক্সি এক বা একাধিক বার্তা প্রসেসরে স্থাপন করা নাও হতে পারে। নির্দিষ্ট API প্রক্সি স্থাপনের সময় ম্যানেজমেন্ট সার্ভার থেকে মেসেজ প্রসেসরে ইভেন্ট বিজ্ঞপ্তি অনুপস্থিত হওয়ার কারণে এটি ঘটে। এই ক্ষেত্রেও, আপনি এজ UI-তে ট্রেস সেশন তৈরি করতে পারবেন না।
রোগ নির্ণয়
প্রতিটি বার্তা প্রসেসরে লগইন করুন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে API প্রক্সির নির্দিষ্ট সংশোধন স্থাপন করা হয়েছে কিনা তা পরীক্ষা করুন:
curl -v localhost:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions
উদাহরণ আউটপুট:
উপরের কমান্ডের আউটপুট হিসাবে আপনি সংশোধনের তালিকা দেখতে পাবেন। উদাহরণস্বরূপ, যদি সংশোধন 12 স্থাপন করা হয় তবে আপনি নিম্নরূপ আউটপুট দেখতে পাবেন:
[ "12" ]
যদি API প্রক্সির নির্দিষ্ট সংশোধন উপরের ধাপ # 1 এ উল্লিখিত কমান্ডের আউটপুট হিসাবে প্রদর্শিত না হয়, তাহলে নীচের রেজোলিউশনে বর্ণিত নির্দিষ্ট বার্তা প্রসেসরটি পুনরায় চালু করুন।
সমস্ত বার্তা প্রসেসরের জন্য ধাপ 1-2 পুনরাবৃত্তি করুন।
যদি API প্রক্সির নির্দিষ্ট সংশোধন সমস্ত বার্তা প্রসেসরে স্থাপন করা হয়, তবে এটি এই সমস্যার কারণ নয়। ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে ।
রেজোলিউশন
নির্দিষ্ট বার্তা প্রসেসর(গুলি) পুনরায় আরম্ভ করুন যেখানে API প্রক্সির নির্দিষ্ট সংশোধন স্থাপন করা হয়নি:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
কারণ: এজ UI এর সাথে সমস্যা
রোগ নির্ণয়
- এজ UI লগগুলি
/opt/apigee/var/log/edge-ui/application.log
এবং/opt/apigee/var/log/edge-ui/edge-ui.log
চেক করুন এবং কোন ত্রুটি আছে কিনা তা দেখুন৷ - Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন এবং আরও তদন্তের জন্য এই ফাইলগুলি শেয়ার করুন৷
ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে
উপরের নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, অনুগ্রহ করে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন। এপিজি এজ সাপোর্টে যোগাযোগ করুন এবং শেয়ার করুন:
কমান্ডের আউটপুট:
curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
ম্যানেজমেন্ট সার্ভার লগ
/opt/apigee/var/log/edge-management-server/logs/system.log.
বার্তা প্রসেসর লগ
/opt/apigee/var/log/edge-message-processor/logs/system.log.
ম্যানেজমেন্ট সার্ভার থেকে মেসেজ প্রসেসরে টেলনেট/এনসি কমান্ডের আউটপুট:
telnet <MessageProcessor_IP> 8082 nc -vz <MessageProcessor_IP> 8082
মেসেজ প্রসেসরে নিচের নেটস্ট্যাট কমান্ডের আউটপুট:
netstat -an > netstat.txt
যদি এটি এজ UI এর সাথে একটি সমস্যা বলে পাওয়া যায়, তাহলে এজ UI লগ
/opt/apigee/var/log/edge-ui/application.log
এবং/opt/apigee/var/log/edge-ui/edge-ui.log.
প্রদান করুন।/opt/apigee/var/log/edge-ui/edge-ui.log.
এই প্লেবুকের কোন বিভাগগুলি চেষ্টা করা হয়েছে এবং অন্য কোন অন্তর্দৃষ্টি যা আমাদের এই সমস্যার দ্রুত সমাধান করতে সাহায্য করবে সে সম্পর্কে বিশদ বিবরণ।