ট্রেস সেশন তৈরি করতে অক্ষম৷

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

লক্ষণ

ব্যবহারকারী Edge UI-তে ট্রেস সেশন তৈরি করতে পারছেন না।

ত্রুটি বার্তা

আপনি Edge UI-তে নিচে দেখানো ছবির মতো একটি এরর মেসেজ পাবেন:

Error creating trace session for API proxy <api proxy name>, revision <revision number>, environment <environment name>.
Failed to create DebugSession <session number> 

এখানে Edge UI-তে দেখা যাওয়া একটি নমুনা ত্রুটি বার্তার স্ক্রিনশট দেওয়া হলো:

সম্ভাব্য কারণসমূহ

এই ত্রুটির কয়েকটি সম্ভাব্য কারণ নিচে দেওয়া হলো:

কারণ বর্ণনা সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য
নেটওয়ার্ক সংযোগ সমস্যা নেটওয়ার্ক সংযোগ সমস্যা অথবা ফায়ারওয়াল নিয়মের কারণে ম্যানেজমেন্ট সার্ভার এবং মেসেজ প্রসেসরের মধ্যে যোগাযোগ ব্যর্থ হয়েছে। এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা
মেসেজ প্রসেসরে এনভায়রনমেন্ট লোড করা হয়নি একটি ত্রুটির কারণে নির্দিষ্ট এনভায়রনমেন্ট (যেটিতে আপনি ট্রেস চালু করার চেষ্টা করছেন) মেসেজ প্রসেসর(গুলি)-এ লোড করা হয়নি।
পুরনো বার্তা প্রসেসর এন্ট্রি ম্যানেজমেন্ট সার্ভারটি অস্তিত্বহীন (পুরানো) মেসেজ প্রসেসরগুলোর রেফারেন্স ব্যবহার করছে।
বার্তা প্রসেসর নাগালের বাইরে মেসেজ প্রসেসরটি বন্ধ হয়ে গেছে অথবা এর সাথে যোগাযোগ করা সম্ভব হচ্ছে না।
উচ্চ সম্পদ ব্যবহারের সমস্যা মেসেজ প্রসেসর(গুলি) উচ্চ হারে রিসোর্স (সিপিইউ, মেমরি বা লোড) ব্যবহার করছে।
এক বা একাধিক মেসেজ প্রসেসরে এপিআই প্রক্সি স্থাপন করা হয়নি ডেপ্লয়মেন্টের সময় ইভেন্ট নোটিফিকেশন না পাওয়ার কারণে এক বা একাধিক মেসেজ প্রসেসরে এপিআই প্রক্সি ডেপ্লয় করা নাও যেতে পারে।
Edge UI-এর সাথে সমস্যা কোনো ত্রুটির কারণে Edge UI একটি ট্রেস সেশন তৈরি করতে পারছে না।

সাধারণ রোগ নির্ণয়ের ধাপসমূহ

  1. এই ম্যানেজমেন্ট এপিআইটি চালান:

    curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
    
  2. কোনো ত্রুটি পেলে, সেগুলো লিখে রাখুন। নেটওয়ার্ক সংযোগ সমস্যা অংশে যান।

  3. যদি আপনি একটি সফল প্রতিক্রিয়া পান, তাহলে তা নির্দেশ করে যে ম্যানেজমেন্ট এপিআই (Management API)-এর মাধ্যমে ট্রেস সেশন তৈরি করা যেতে পারে। তবে, এজ ইউআই (Edge UI)-তে কোনো সম্ভাব্য সমস্যা থাকতে পারে, যার কারণে ইউআই-তে ট্রেস সেশন তৈরি করা যাচ্ছে না। 'এজ ইউআই-এর সমস্যা' (Issue with Edge UI) অংশে যান।

কারণ: নেটওয়ার্ক সংযোগের সমস্যা

রোগ নির্ণয়

  1. ম্যানেজমেন্ট সার্ভার লগ /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>
    
  2. উপরের নমুনা ত্রুটিটি থেকে দেখা যাচ্ছে যে, ম্যানেজমেন্ট সার্ভার যখন পোর্ট #৮০৮২-তে মেসেজ প্রসেসরের সাথে সংযোগ করার চেষ্টা করে, তখন আমরা "Connection refused" ত্রুটি পাচ্ছি। ফলে, ম্যানেজমেন্ট সার্ভার ট্রেস সেশন তৈরি করতে পারছে না।

  3. যদি আপনি নেটওয়ার্ক সংযোগ সম্পর্কিত কোনো ত্রুটি অথবা উপরের উদাহরণে দেখানো ত্রুটির মতো কোনো ত্রুটি দেখতে না পান, তাহলে 'মেসেজ প্রসেসরে এনভায়রনমেন্ট লোড হয়নি' অংশে যান।

  4. যদি আপনি নেটওয়ার্ক সংযোগ সংক্রান্ত কোনো ত্রুটি অথবা উপরের উদাহরণে দেখানো ত্রুটির মতো কোনো ত্রুটি দেখতে পান, তাহলে নিচের ধাপগুলো অনুসরণ করুন।

  5. নিম্নলিখিত ধাপগুলো অনুসরণ করে ম্যানেজমেন্ট সার্ভার থেকে মেসেজ প্রসেসরের ৮০৮২ পোর্টে সংযোগ পরীক্ষা করুন:

    1. যদি টেলনেট উপলব্ধ থাকে, তাহলে টেলনেট ব্যবহার করুন:

      telnet <MessageProcessor_IP> 8082
      
    2. যদি টেলনেট উপলব্ধ না থাকে, তাহলে নিম্নলিখিতভাবে নেটক্যাট ব্যবহার করে সংযোগ পরীক্ষা করুন:

      nc -vz <MessageProcessor_IP> 8082
      
    3. যদি "Connection Refused" বা "Connection timed out" প্রতিক্রিয়া পান, তাহলে পরবর্তী ধাপে যান।

  6. যে আইপি অ্যাড্রেসটিতে ত্রুটি দেখা দিয়েছিল, সেই সংশ্লিষ্ট আইপি অ্যাড্রেসটি ব্যবহার করে প্রতিটি মেসেজ প্রসেসরে লগইন করুন এবং নিম্নলিখিত ধাপগুলো অনুসরণ করুন:

    1. মেসেজ প্রসেসরটি ৮০৮২ পোর্টে লিসেন করছে কিনা তা যাচাই করুন:

      netstat -an | grep LISTEN | grep 8082
      
    2. যদি মেসেজ প্রসেসরটি ৮০৮২ পোর্টে লিসেন করে, তাহলে ৭ নম্বর ধাপে যান।

    3. যদি মেসেজ প্রসেসরটি ৮০৮২ পোর্টে লিসেন না করে, তাহলে এই কমান্ডটি ব্যবহার করে মেসেজ প্রসেসরটি রিস্টার্ট করুন:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    4. এই কমান্ডটি ব্যবহার করে মেসেজ প্রসেসরটি সম্পূর্ণরূপে চালু হওয়া পর্যন্ত অপেক্ষা করুন:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
      
    5. মেসেজ প্রসেসরটি চালু হয়ে গেলে, সেটি ৮০৮২ পোর্টে লিসেন করছে কি না তা পুনরায় যাচাই করুন।

    6. যদি মেসেজ প্রসেসরটি ৮০৮২ পোর্টে লিসেন করে, তাহলে ৭ নম্বর ধাপে যান।

  7. আপনি এখন UI-তে ট্রেস সেশনটি চালু করতে পারছেন কিনা তা পরীক্ষা করুন। যদি সমস্যাটি আর দেখা না যায়, তাহলে নিচের ধাপগুলো এড়িয়ে যান।

  8. যদি মেসেজ প্রসেসরটি চালু থাকে এবং ৮০৮২ পোর্টে লিসেন করে, কিন্তু তারপরেও আপনি ম্যানেজমেন্ট সার্ভারের মতো অন্যান্য সার্ভার থেকে সংযোগ করতে না পারেন, তাহলে সম্ভবত কোনো ফায়ারওয়াল বাইরের সংযোগগুলোকে ব্লক করছে।

  9. ফায়ারওয়াল নিয়মগুলো পরীক্ষা করতে উপযুক্ত কমান্ড ব্যবহার করুন। উদাহরণস্বরূপ, আপনার সিস্টেমে সংজ্ঞায়িত সমস্ত ফায়ারওয়াল নিয়মের তালিকা দেখতে আপনি iptables কমান্ডটি চালাতে পারেন:

    iptables -L -n
    
  10. যদি পোর্ট ৮০৮২-এর জন্য কোনো ফায়ারওয়াল নিয়ম সেট করা না থাকে, তাহলে 'উচ্চ রিসোর্স ব্যবহার সমস্যা' (High Resource Utilization Issue) অংশে যান।

  11. যদি পোর্ট ৮০৮২-তে কোনো ফায়ারওয়াল নিয়ম সেটআপ করা থাকে, তাহলে নিচের সমাধান (Resolution) বিভাগে যান।

সমাধান

  1. বাহ্যিক সার্ভারগুলো থেকে পোর্ট ৮০৮২-তে ইনবাউন্ড/আউটবাউন্ড ট্র্যাফিকের অনুমতি দেওয়ার জন্য আপনার নেটওয়ার্ক অ্যাডমিনিস্ট্রেটরের সাথে কাজ করুন।

যদি সমস্যাটি এখনও থেকে যায়, তাহলে 'অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন' অংশে যান।

কারণ: মেসেজ প্রসেসরে এনভায়রনমেন্ট লোড করা হয়নি

রোগ নির্ণয়

  1. ম্যানেজমেন্ট সার্ভারের লগ /opt/apigee/var/log/edge-management-server/logs/system.log চেক করুন এবং দেখুন ট্রেস/ডিবাগ সেশন তৈরির সময় কোনো ত্রুটি আছে কিনা।
  2. ট্রেস/ডিবাগ সেশন তৈরি করার সময় আপনি নীচে দেখানো " এমপি(গুলি) থেকে কোনও বৈধ প্রতিক্রিয়া নেই " এর মতো একটি ত্রুটি বার্তা দেখতে পারেন:

    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}
    

    এই ত্রুটিটি নির্দেশ করে যে, কোনো কারণে মেসেজ প্রসেসরগুলো ম্যানেজমেন্ট সার্ভারে সাড়া দিচ্ছে না।

  3. যদি আপনি উপরের উদাহরণে দেখানো ত্রুটির মতো কোনো ত্রুটি দেখতে না পান, তাহলে 'Stale Message Processor Entries'- এ যান।

  4. যদি আপনি উপরের উদাহরণে দেখানো ত্রুটির মতো কোনো ত্রুটি দেখতে পান, তাহলে এই ধাপগুলো অনুসরণ করুন।

  5. এই ত্রুটির অন্যতম সম্ভাব্য কারণ হলো, যে পরিবেশে আপনি ট্রেস সেশন তৈরি করার চেষ্টা করছেন, সেটি মেসেজ প্রসেসরগুলোতে লোড করা নেই।

  6. প্রতিটি মেসেজ প্রসেসরে লগইন করুন এবং নিচের কমান্ডটি ব্যবহার করে পরীক্ষা করে দেখুন যে, আপনি যে নির্দিষ্ট এনভায়রনমেন্টে ট্রেস সেশন তৈরি করার চেষ্টা করছেন, সেটি মেসেজ প্রসেসরটিতে লোড হয়েছে কি না:

    curl -s http://localhost:8082/v1/runtime/organizations/<org-name>/environments
    

    উদাহরণ আউটপুট:

    উপরের কমান্ডের আউটপুটে আপনি নির্দিষ্ট অর্গানাইজেশনের অন্তর্গত সেইসব এনভায়রনমেন্টের তালিকা দেখতে পাবেন, যেগুলো মেসেজ প্রসেসরে লোড করা আছে। উদাহরণস্বরূপ, যদি প্রিপ্রড এবং টেস্ট এনভায়রনমেন্টগুলো মেসেজ প্রসেসরে লোড করা থাকে, তাহলে আপনি আউটপুটটি নিম্নরূপ দেখতে পাবেন:

    [ "প্রিপ্রোড", "টেস্ট" ]

  7. যদি নির্দিষ্ট এনভায়রনমেন্ট, ধরা যাক "dev", যেখানে আপনি একটি ট্রেস সেশন তৈরি করার চেষ্টা করছেন, সেটি উপরের কমান্ডের অংশ হিসেবে তালিকাভুক্ত থাকে, তাহলে Stale Message Processor Entries- এ যান।

  8. যদি নির্দিষ্ট এনভায়রনমেন্ট, ধরা যাক 'dev', উপরের কমান্ডের অংশ হিসেবে তালিকাভুক্ত না থাকে, তাহলে এনভায়রনমেন্ট লোড করার সময় কোনো ত্রুটি হয়েছে কিনা তা জানতে মেসেজ প্রসেসরের /opt/apigee/var/log/edge-message-processor/logs/system.log এবং /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log ফাইলগুলো পরীক্ষা করুন।

  9. বিভিন্ন ধরনের ত্রুটির কারণে মেসেজ প্রসেসরে কোনো এনভায়রনমেন্ট লোড হতে ব্যর্থ হতে পারে। এর সমাধান নির্ভর করে সংঘটিত ত্রুটির ধরনের ওপর।

সমাধান

বিভিন্ন কারণে মেসেজ প্রসেসরে এনভায়রনমেন্ট লোড নাও হতে পারে। এই অংশে এই সমস্যার কয়েকটি সম্ভাব্য কারণ তুলে ধরা হয়েছে এবং এর সমাধান পদ্ধতি ব্যাখ্যা করা হয়েছে।

  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
    

    ত্রুটি #২: 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 
    
  2. পূর্ববর্তী ধাপে দেখানো ত্রুটি বার্তায় উল্লেখিত কীস্টোর/ট্রাস্টস্টোরের বিবরণ পেতে নিম্নলিখিত ম্যানেজমেন্ট এপিআই কলটি ব্যবহার করুন:

    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" 
    }
    
  3. উদাহরণ আউটপুট থেকে দেখা যায় যে, myTruststore ট্রাস্টস্টোরটিতে দুটি সার্টিফিকেট এবং একটি কী রয়েছে। ট্রাস্টস্টোরে সাধারণত কোনো কী থাকে না। যদি থাকে, তবে একটিমাত্র সার্টিফিকেট এবং একটিমাত্র কী থাকাই শ্রেয়।

  4. নিম্নলিখিত API ব্যবহার করে সার্টিফিকেট দুটি সম্পর্কে বিস্তারিত তথ্য জানুন:

    curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
    
  5. প্রতিটি সার্টিফিকেটের মেয়াদ শেষ হওয়ার তারিখ যাচাই করুন এবং মেয়াদোত্তীর্ণ/পুরানো সার্টিফিকেটটি শনাক্ত করুন।

  6. 'myTruststore' ট্রাস্টস্টোর থেকে মেয়াদোত্তীর্ণ বা অপ্রয়োজনীয় সার্টিফিকেটটি মুছে ফেলুন।

যদি সমস্যাটি এখনও থেকে যায় অথবা উপরে ধাপ #১-এ উল্লিখিত ত্রুটিগুলি ছাড়া অন্য কোনো ত্রুটি দেখতে পান, তাহলে অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন (Must Gather Diagnostic Information) -এ যান।

কারণ: পুরোনো মেসেজ প্রসেসর এন্ট্রি অথবা মেসেজ প্রসেসর নাগালের বাইরে

রোগ নির্ণয়

  1. যদি Edge UI ট্রেস সেশন তৈরি করতে অনেক সময় নেয় এবং ব্যর্থ হয়, তাহলে এর কয়েকটি সম্ভাব্য কারণ নিচে দেওয়া হলো:
    1. ম্যানেজমেন্ট সার্ভারটি অস্তিত্বহীন (পুরানো) মেসেজ প্রসেসরকে নির্দেশ করতে পারে।
    2. মেসেজ প্রসেসর(গুলি) বন্ধ করে দেওয়া হয়েছে অথবা নাগালের বাইরে চলে গেছে।
    3. মেসেজ প্রসেসরগুলোতে উচ্চ হারে মেমরি/সিপিইউ ব্যবহৃত হচ্ছে।
  2. ম্যানেজমেন্ট সার্ভারের লগ /opt/apigee/var/log/edge-management-server/logs/system.log চেক করুন এবং দেখুন ট্রেস/ডিবাগ সেশন তৈরির সময় কোনো ত্রুটি আছে কিনা।
  3. ট্রেস/ডিবাগ সেশন তৈরি করার সময় আপনি নিচে দেখানো "সার্ভার <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
    

    এর কিছুক্ষণ পরে নিচে দেখানো অনুযায়ী আরও একটি "Connection timed out" ত্রুটি দেখা দিতে পারে:

    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>
    
  4. এই দুটি ত্রুটি নির্দিষ্ট মেসেজ প্রসেসর(গুলি) এর কারণে ঘটতে পারে:

    1. বাসি হয়ে যাওয়া (আর অস্তিত্ব না থাকা)
    2. কোনো কারণে ডাউন/যোগাযোগ করা যাচ্ছে না
  5. অনুগ্রহ করে উদ্ভূত পরিস্থিতি অনুযায়ী যথাযথ সমাধান অনুসরণ করুন।

সমাধান

দৃশ্যকল্প #১ : মেসেজ প্রসেসর(গুলি) অপ্রচলিত (অস্তিত্বহীন)

  1. নিচের ম্যানেজমেন্ট এপিআই ব্যবহার করে মেসেজ প্রসেসরগুলোর তালিকা পান:

    curl -u <sysadmin> "http://<management-server-host>:8080/v1/servers?pod=<podName>&regions=<regionName>"
    
  2. ম্যানেজমেন্ট সার্ভার লগ থেকে (উপরের ডায়াগনোসিস-এর ধাপ #৩) এরর মেসেজে উল্লেখিত মেসেজ প্রসেসরগুলোর UUID-এর সাথে সঙ্গতিপূর্ণ IP অ্যাড্রেস বা হোস্টনেম লিখে রাখুন। নিম্নলিখিত উপায়গুলোর মধ্যে যেকোনো একটি ব্যবহার করে যাচাই করুন যে এগুলো বৈধ মেসেজ প্রসেসর কিনা:

    1. সর্বশেষ প্রাইভেট ক্লাউড টপোলজি সেটআপ ডায়াগ্রাম
    2. সর্বশেষ এজ সার্ভার আইপি ঠিকানা - হোস্ট নেম ম্যাপিং টেবিল

    যদি আপনি সেগুলোকে বৈধ মেসেজ প্রসেসর হিসেবে খুঁজে পান, তাহলে সিনারিও ২-এ যান: মেসেজ প্রসেসর(গুলো) নাগালের বাইরে ।

  3. নিম্নলিখিত ম্যানেজমেন্ট এপিআইগুলো ব্যবহার করে অপ্রচলিত (অস্তিত্বহীন) মেসেজ প্রসেসরগুলো মুছে ফেলুন:

    1. প্রতিষ্ঠানের পরিবেশগুলো থেকে মেসেজ প্রসেসর নিবন্ধনমুক্ত করুন:

      curl -X POST http://<management-server-host>:8080/v1/o/<orgName>/e/<envName>/servers -d "uuid={uuid}&region=<regionName>&pod=<podName}&action=remove" 
      
    2. সার্ভারের ধরণ নিবন্ধনমুক্ত করুন:

      curl http://<management-server-host>:8080/v1/servers -X POST -d "type={message-processor}&region=<regionName>&pod=<podName>&uuid=<uuid>&action=remove"
      
    3. সার্ভারটি মুছে ফেলুন:

      curl http://<management-ip>:8080/v1/servers/<uuid> -X DELETE
      
  4. আপনার প্রতিষ্ঠানের অন্য কোনো পরিবেশে একই সমস্যা দেখা দিলে ধাপ ৩-এর পুনরাবৃত্তি করুন।

দৃশ্যকল্প ২: বার্তা প্রসেসর(গুলি) নাগালের বাইরে

  1. ম্যানেজমেন্ট সার্ভার লগে থাকা এরর মেসেজের UUID-গুলোর উপর ভিত্তি করে IP অ্যাড্রেস/হোস্ট নেম নির্ণয় করে প্রতিটি মেসেজ প্রসেসরে লগইন করুন।
  2. মেসেজ প্রসেসরটি পুনরায় চালু করুন:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
    

আপনি ট্রেস সেশন তৈরি করতে পারছেন কিনা তা পুনরায় পরীক্ষা করুন। সমস্যাটি অব্যাহত থাকলে, 'অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন' অংশে যান ।

কারণ: অতিরিক্ত সম্পদ ব্যবহারের সমস্যা

রোগ নির্ণয়

  1. প্রতিটি মেসেজ প্রসেসরে লগইন করুন এবং পরীক্ষা করে দেখুন কোনো রিসোর্সের—যেমন সিপিইউ, মেমরি বা লোড—অতিরিক্ত ব্যবহার হচ্ছে কি না। ইউনিক্স-ভিত্তিক অপারেটিং সিস্টেমে মেসেজ প্রসেসর প্রসেসের রিসোর্স ব্যবহারের তথ্য পেতে আপনি ‘ top কমান্ডটি ব্যবহার করতে পারেন।

    top
    
  2. যদি মেসেজ প্রসেসর(গুলি) উচ্চ রিসোর্স ব্যবহার না করে, তাহলে অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন (Must Gather Diagnostic Information) ধাপে যান।

  3. যদি মেসেজ প্রসেসরটিতে অতিরিক্ত সিপিইউ বা মেমরি ব্যবহৃত হয়, তাহলে সেটি সময়মতো ম্যানেজমেন্ট সার্ভারে সাড়া দিতে পারে না। এর ফলে আপনি ট্রেস সেশন তৈরি করতে পারেন না।

    1. যদি কোনো মেসেজ প্রসেসরের সিপিইউ ব্যবহার বেড়ে যায়, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রতি ৩০ সেকেন্ডে তিনটি থ্রেড ডাম্প তৈরি করুন:

      sudo <JAVA_HOME>/bin/jstack -l <pid> > <filename>
      
    2. যদি কোনো মেসেজ প্রসেসরের মেমরি ব্যবহার বেশি হয়, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি হিপ ডাম্প তৈরি করুন:

      sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
      
      
    3. সমাধানের দিকে অগ্রসর হোন।

সমাধান

  1. নিচের কমান্ডটি ব্যবহার করে মেসেজ প্রসেসরটি পুনরায় চালু করুন। এতে সিপিইউ এবং মেমরির ব্যবহার কমে আসবে:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. এপিআই কলগুলো পর্যবেক্ষণ করুন এবং সমস্যাটি এখনও বিদ্যমান কিনা তা নিশ্চিত করুন।

  3. উচ্চ সিপিইউ/মেমরি ব্যবহারের কারণ অনুসন্ধানে সাহায্য করার জন্য Apigee Edge Support-এর সাথে যোগাযোগ করুন এবং থ্রেড ডাম্প, হিপ ডাম্প, ও মেসেজ প্রসেসর লগ ( /opt/apigee/var/log/edge-message-processor/logs/system.log) প্রদান করুন।

কারণ: এক বা একাধিক মেসেজ প্রসেসরে এপিআই প্রক্সি স্থাপন করা হয়নি

কদাচিৎ এমন হতে পারে যে একটি এপিআই প্রক্সি এক বা একাধিক মেসেজ প্রসেসরে ডেপ্লয় করা হয়নি। নির্দিষ্ট এপিআই প্রক্সিটি ডেপ্লয় করার সময় ম্যানেজমেন্ট সার্ভার থেকে মেসেজ প্রসেসরে ইভেন্ট নোটিফিকেশন না পৌঁছানোর কারণে বেশিরভাগ ক্ষেত্রে এটি ঘটে থাকে। এই ক্ষেত্রেও, আপনি এজ ইউআই-তে ট্রেস সেশন তৈরি করতে পারবেন না।

রোগ নির্ণয়

  1. নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রতিটি মেসেজ প্রসেসরে লগইন করুন এবং পরীক্ষা করে দেখুন যে এপিআই প্রক্সির নির্দিষ্ট সংস্করণটি ডেপ্লয় করা হয়েছে কিনা:

    curl -v localhost:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions
    

    উদাহরণ আউটপুট:

    উপরের কমান্ডের আউটপুট হিসেবে আপনি রিভিশনগুলোর তালিকা দেখতে পাবেন। উদাহরণস্বরূপ, যদি রিভিশন ১২ ডেপ্লয় করা হয়, তাহলে আপনি আউটপুটটি নিম্নরূপ দেখতে পাবেন:

    [ "১২" ]

  2. যদি উপরের ধাপ #১-এ উল্লিখিত কমান্ডের আউটপুট হিসাবে API প্রক্সির নির্দিষ্ট সংস্করণটি না আসে, তাহলে নীচের সমাধান অংশে ব্যাখ্যা করা অনুযায়ী নির্দিষ্ট মেসেজ প্রসেসরটি পুনরায় চালু করুন।

  3. সমস্ত মেসেজ প্রসেসরগুলোর জন্য ধাপ ১-২ পুনরাবৃত্তি করুন।

  4. যদি এপিআই প্রক্সির নির্দিষ্ট সংস্করণটি সমস্ত মেসেজ প্রসেসরে স্থাপন করা থাকে, তাহলে এটি এই সমস্যার কারণ নয়। 'অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন ' অংশে যান।

সমাধান

  1. সেই নির্দিষ্ট মেসেজ প্রসেসর(গুলি) পুনরায় চালু করুন, যেগুলিতে এপিআই প্রক্সির নির্দিষ্ট সংস্করণটি স্থাপন করা হয়নি:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
    

কারণ: এজ UI-এর সমস্যা

রোগ নির্ণয়

  1. Edge UI লগ /opt/apigee/var/log/edge-ui/application.log এবং /opt/apigee/var/log/edge-ui/edge-ui.log চেক করে দেখুন কোনো ত্রুটি আছে কিনা।
  2. আরও তদন্তের জন্য Apigee Edge Support-এর সাথে যোগাযোগ করুন এবং এই ফাইলগুলি শেয়ার করুন।

রোগ নির্ণয়ের তথ্য অবশ্যই সংগ্রহ করতে হবে

উপরের নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, তাহলে অনুগ্রহ করে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন। Apigee Edge Support-এর সাথে যোগাযোগ করুন এবং সেগুলি তাদের সাথে শেয়ার করুন:

  1. কমান্ডের আউটপুট:

    curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
    
  2. ম্যানেজমেন্ট সার্ভার লগ

    /opt/apigee/var/log/edge-management-server/logs/system.log.
    
  3. মেসেজ প্রসেসর লগ

    /opt/apigee/var/log/edge-message-processor/logs/system.log.
    
  4. ম্যানেজমেন্ট সার্ভার থেকে মেসেজ প্রসেসরে টেলনেট/এনসি কমান্ডের আউটপুট:

    telnet <MessageProcessor_IP> 8082
    nc -vz <MessageProcessor_IP> 8082
    
  5. মেসেজ প্রসেসর(গুলি)তে নিচের netstat কমান্ডটির আউটপুট:

    netstat -an > netstat.txt
    
  6. যদি সমস্যাটি Edge UI-এর বলে প্রমাণিত হয়, তাহলে Edge UI-এর লগ ফাইল /opt/apigee/var/log/edge-ui/application.log এবং /opt/apigee/var/log/edge-ui/edge-ui.log.

  7. এই প্লেবুকের কোন কোন অংশ চেষ্টা করা হয়েছে সে সম্পর্কিত বিবরণ এবং অন্য কোনো তথ্য যা এই সমস্যার সমাধান দ্রুত করতে আমাদের সাহায্য করবে।