ایجاد جلسه ردیابی ممکن نیست

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

علامت

کاربر قادر به ایجاد جلسه ردیابی در رابط کاربری Edge نیست.

پیغام خطا

مطابق شکل زیر در 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
محیط روی پردازشگر پیام بارگذاری نشده است محیط خاصی (که در آن می‌خواهید ردیابی را فعال کنید) به دلیل خطا در پردازشگر پیام بارگذاری نشده است.
ورودی های پردازشگر پیام قدیمی سرور مدیریت به پردازشگرهای پیام غیر موجود (کهنه) اشاره می کند.
پردازشگر پیام غیرقابل دسترسی است پردازشگر پیام متوقف شده یا غیرقابل دسترس شده است.
مشکل استفاده از منابع بالا پردازنده (های) پیام از منابع بالایی (CPU، حافظه یا بار) استفاده می کنند.
پروکسی API در یک یا چند پردازشگر پیام مستقر نشده است پروکسی API ممکن است در یک یا چند پردازشگر پیام به دلیل از دست رفتن اعلان رویداد در حین استقرار مستقر نشود.
مشکل با Edge UI رابط کاربری Edge به دلیل برخی خطاها قادر به ایجاد یک جلسه ردیابی نیست.

مراحل تشخیص رایج

  1. این API مدیریت را اجرا کنید:

    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. اگر پاسخ موفقیت آمیزی دریافت کردید، این نشان می دهد که جلسه ردیابی می تواند از طریق مدیریت API ایجاد شود. با این حال، ممکن است مشکلی در رابط کاربری Edge وجود داشته باشد به طوری که جلسه ردیابی نمی تواند در رابط کاربری ایجاد شود. به Issue with Edge UI بروید.

علت: مشکل اتصال به شبکه

تشخیص

  1. گزارش مدیریت سرور /opt/apigee/var/log/edge-management-server/logs/system.log را بررسی کنید و ببینید آیا در هنگام ایجاد جلسه trace/debug خطایی وجود دارد یا خیر.

    نمونه خطا از مدیریت گزارش سرور

    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. خطای نمونه بالا نشان می دهد که وقتی سرور مدیریت سعی می کند به پردازشگر پیام در پورت شماره 8082 متصل شود، خطاهای "اتصال رد شد" را دریافت می کنیم. بنابراین، سرور مدیریت قادر به ایجاد جلسه ردیابی نیست.

  3. اگر هیچ خطایی در ارتباط با اتصال شبکه یا خطای مشابه آنچه در مثال بالا نشان داده شده است نمی بینید، به محیطی که در پردازشگر پیام بارگذاری نشده است بروید.

  4. اگر خطا(های) مربوط به اتصال شبکه یا خطای مشابه آنچه در مثال بالا نشان داده شده است مشاهده کردید، مراحل زیر را دنبال کنید.

  5. با استفاده از مراحل زیر اتصال از سرور مدیریت به پردازشگر پیام را در پورت 8082 آزمایش کنید:

    1. اگر telnet در دسترس است، از telnet استفاده کنید:

      telnet <MessageProcessor_IP> 8082
      
    2. اگر telnet در دسترس نیست، از netcat برای بررسی اتصال به صورت زیر استفاده کنید:

      nc -vz <MessageProcessor_IP> 8082
      
    3. اگر پاسخ "اتصال رد شد" یا "وقت اتصال تمام شد" دریافت کردید، به مرحله بعدی بروید.

  6. با آدرس IP مربوطه که خطا را نشان می دهد وارد هر یک از پردازشگرهای پیام شوید و مراحل زیر را انجام دهید:

    1. بررسی کنید که آیا پردازشگر پیام به درگاه 8082 گوش می دهد یا خیر:

      netstat -an | grep LISTEN | grep 8082
      
    2. اگر پردازشگر پیام به درگاه 8082 گوش می دهد، به مرحله 7 بروید.

    3. اگر پردازشگر پیام به پورت 8082 گوش نمی دهد، با استفاده از این دستور، پردازشگر پیام را مجددا راه اندازی کنید:

      /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. هنگامی که پردازشگر پیام روشن شد، دوباره بررسی کنید که آیا پردازشگر پیام به درگاه 8082 گوش می دهد یا خیر.

    6. اگر پردازشگر پیام در حال گوش دادن به پورت 8082 است، به مرحله 7 بروید.

  7. بررسی کنید که آیا اکنون می‌توانید جلسه ردیابی را در رابط کاربری شروع کنید. اگر مشکل دیگر مشاهده نشد، مراحل زیر را رد کنید.

  8. اگر پردازشگر پیام در حال اجرا است و در حال گوش دادن به پورت 8082 است، اما هنوز نمی توانید از سرورهای دیگر مانند مدیریت سرور متصل شوید، احتمالاً یک فایروال وجود دارد که باید اتصالات خارجی را مسدود کند.

  9. از دستور مناسب برای بررسی قوانین فایروال استفاده کنید. به عنوان مثال، می توانید دستور iptables را برای لیست کردن تمام قوانین فایروال تعریف شده در سیستم خود اجرا کنید:

    iptables -L -n
    
  10. اگر قوانین فایروال برای پورت 8082 تنظیم نشده است، به مشکل استفاده از منابع بالا بروید.

  11. اگر قوانین فایروال روی پورت 8082 تنظیم شده است، به بخش Resolution در زیر بروید.

قطعنامه

  1. با سرپرست شبکه خود کار کنید تا به ترافیک ورودی/خروجی در پورت 8082 از سرورهای خارجی اجازه دهید.

اگر مشکل همچنان ادامه داشت، به «اطلاعات تشخیصی باید جمع‌آوری شود» بروید.

علت: محیط بر روی پردازشگر پیام بارگذاری نشده است

تشخیص

  1. گزارش های مدیریت سرور /opt/apigee/var/log/edge-management-server/logs/system.log را بررسی کنید و ببینید آیا در هنگام ایجاد جلسه trace/debug خطایی وجود دارد یا خیر.
  2. در طول ایجاد جلسه ردیابی/اشکال‌زدایی ممکن است پیام خطایی مانند « عدم پاسخ‌های معتبر از MP(ها) » را مشاهده کنید، همانطور که در زیر نشان داده شده است:

    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. اگر خطایی مشابه آنچه در مثال بالا نشان داده شده مشاهده نکردید، به ورودی های پردازشگر پیام قدیمی بروید.

  4. اگر خطای مشابهی را مشاهده کردید که در مثال بالا نشان داده شده است، این مراحل را دنبال کنید.

  5. یکی از محتمل‌ترین دلایل این خطا این است که محیطی که در آن سعی می‌کنید جلسه ردیابی را ایجاد کنید در پردازشگر(های پیام) بارگذاری نشده است.

  6. به هر یک از پردازشگر(های) پیام وارد شوید و بررسی کنید که آیا محیط خاصی که در آن سعی دارید جلسه ردیابی را ایجاد کنید، با استفاده از دستور زیر بر روی پردازشگر پیام بارگذاری شده است:

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

    خروجی نمونه:

    در خروجی دستور بالا لیستی از محیط های متعلق به سازمان خاصی را که بر روی Message Processor بارگذاری شده اند مشاهده خواهید کرد. برای مثال، اگر محیط های preprod و test بر روی Message Processor بارگذاری شوند، خروجی را به صورت زیر خواهید دید:

    [ "preprod"، "test" ]

  7. اگر محیط خاصی، مثلاً «dev» که در آن سعی می‌کنید یک جلسه ردیابی ایجاد کنید، به عنوان بخشی از دستور بالا فهرست شده است، سپس به ورودی‌های پردازشگر پیام قدیمی بروید.

  8. اگر محیط خاص، مثلاً "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 در پردازشگر پیام برای هر گونه خطا در حین بارگذاری محیط.

  9. ممکن است خطاهای مختلفی وجود داشته باشد که می تواند منجر به شکست در بارگیری یک محیط در پردازشگر پیام شود. وضوح به خطای رخ داده بستگی دارد.

قطعنامه

ممکن است به دلایل زیادی محیط در پردازشگر پیام بارگذاری نشود. این بخش چند دلیل احتمالی را نشان می دهد که می تواند منجر به این مشکل شود و توضیح می دهد که چگونه مشکل را حل کنید.

  1. اگر یکی از خطاهای زیر را در گزارش پردازشگر پیام می‌بینید، به دلیل مشکلی است که در گواهی‌ها/کلیدهایی که در محیط مشخص شده به keystore/truststore مشخص شده اضافه شده‌اند، ایجاد شده است.

    خطای شماره 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 
    
  2. با استفاده از فراخوانی مدیریت API زیر، جزئیات keystore/truststore مشخص شده در پیام خطای نشان داده شده در مرحله قبل را دریافت کنید:

    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. خروجی مثال نشان می دهد که دو گواهی و یک کلید در Truststore myTrussttore وجود دارد. Truststore معمولاً حاوی کلید نیست. در صورت وجود، بهتر است یک گواهی و یک کلید داشته باشید.

  4. جزئیات مربوط به دو گواهی را با استفاده از API زیر دریافت کنید:

    curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
    
  5. تاریخ انقضای هر یک از گواهینامه ها را بررسی کنید و گواهی منقضی شده/قدیمی را تعیین کنید.

  6. گواهی منقضی شده یا ناخواسته را از Truststore "myTrussttore" حذف کنید.

اگر مشکل همچنان ادامه دارد یا اگر خطای دیگری غیر از موارد ذکر شده در مرحله شماره 1 در بالا مشاهده کردید، به Must Gather Diagnostic Information بروید.

علت: ورودی‌های پردازشگر پیام قدیمی یا غیرقابل دسترس بودن پردازشگرهای پیام

تشخیص

  1. اگر رابط کاربری Edge زمان زیادی طول بکشد و نتواند جلسه ردیابی را ایجاد کند، در اینجا برخی از دلایل احتمالی وجود دارد:
    1. سرور مدیریت ممکن است به پردازشگرهای پیام موجود (کهنه) اشاره داشته باشد
    2. پردازشگر(های) پیام متوقف شده یا غیر قابل دسترس شده است
    3. پردازشگرهای پیام در حال استفاده از حافظه/CPU بالایی هستند
  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
    

    ممکن است پس از مدتی یک خطای دیگر "اتصال به پایان رسید" مانند شکل زیر باشد:

    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: پردازشگر(های) پیام قدیمی هستند (وجود ندارند)

  1. لیست پردازشگرهای پیام را با استفاده از API مدیریت زیر دریافت کنید:

    curl -u <sysadmin> "http://<management-server-host>:8080/v1/servers?pod=<podName>&regions=<regionName>"
    
  2. آدرس IP یا نام میزبان مربوط به UUID (های) پردازشگرهای پیام ذکر شده در پیام خطا در گزارش‌های سرور مدیریت (مرحله شماره 3 در تشخیص بالا) را یادداشت کنید. با استفاده از یکی از روش‌های زیر بررسی کنید که آیا این پردازشگرهای پیام معتبر هستند:

    1. جدیدترین نمودار راه اندازی توپولوژی ابر خصوصی
    2. آخرین آدرس IP سرور Edge - جدول نگاشت نام میزبان

    اگر متوجه شدید که آنها پردازشگرهای پیام معتبر هستند، به سناریو 2 بروید: پردازشگر (های) پیام غیرقابل دسترس است .

  3. با استفاده از APIهای مدیریتی زیر، پردازشگرهای پیام قدیمی (غیر موجود) را حذف کنید:

    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. اگر در هر محیط دیگری در سازمان خود مشکل مشابهی دارید، مرحله 3 را تکرار کنید.

سناریو 2: پردازشگر(های) پیام غیرقابل دسترسی است

  1. با تعیین آدرس های IP/نام میزبان بر اساس UUID های مشاهده شده در پیام خطا در گزارش های سرور مدیریت، به هر یک از پردازشگر(های) پیام وارد شوید.
  2. پردازشگر پیام را مجددا راه اندازی کنید:

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

دوباره بررسی کنید که آیا می توانید جلسه ردیابی را ایجاد کنید. اگر مشکل ادامه داشت، به Must Gather Diagnostic Information بروید .

علت: مشکل استفاده از منابع زیاد

تشخیص

  1. به هر یک از پردازشگر(های) پیام وارد شوید و بررسی کنید که آیا از هر منبعی - CPU، حافظه یا بارگیری زیاد استفاده شده است یا خیر. می‌توانید از دستور top در سیستم‌عامل‌های مبتنی بر یونیکس برای دریافت اطلاعات استفاده از منابع فرآیند پیام‌آور استفاده کنید:

    top
    
  2. اگر پردازشگر(های) پیام استفاده زیادی از منابع را تجربه نمی کنند، به قسمت Must Gather Diagnostic Information بروید.

  3. اگر پردازنده(های) پیام از CPU یا حافظه بالایی استفاده می کند، ممکن است باعث شود که پردازشگر پیام به موقع به مدیریت سرور پاسخ ندهد. این در نهایت شما را از ایجاد جلسه ردیابی جلوگیری می کند.

    1. اگر هر یک از پردازشگرهای پیام از CPU بالایی استفاده می کند، با استفاده از دستور زیر، هر 30 ثانیه سه رشته Dump ایجاد کنید:

      sudo <JAVA_HOME>/bin/jstack -l <pid> > <filename>
      
    2. اگر هر یک از پردازشگرهای پیام از حافظه بالایی استفاده می کند، با استفاده از دستور زیر یک heap dump ایجاد کنید:

      sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
      
      
    3. به Resolution بروید.

قطعنامه

  1. با استفاده از دستور زیر، پردازشگر پیام را مجددا راه اندازی کنید. این باید مصرف CPU و حافظه را کاهش دهد:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. تماس‌های API را زیر نظر بگیرید و تأیید کنید که آیا مشکل همچنان وجود دارد.

  3. با پشتیبانی Apigee Edge تماس بگیرید و گزارش‌های thread dump، heap dump و Message Processor ( /opt/apigee/var/log/edge-message-processor/logs/system.log) برای کمک به آنها در بررسی علت بالا بودن CPU/ فراهم کنید. استفاده از حافظه

علت: پراکسی API در یک یا چند پردازنده پیام مستقر نشده است

به ندرت ممکن است یک پراکسی API روی یک یا چند پردازشگر پیام مستقر نشود. این بیشتر به دلیل عدم اعلان رویداد از سرور مدیریت به پردازشگر پیام در حین استقرار پروکسی API خاص اتفاق می افتد. در این مورد نیز، شما نمی توانید جلسه ردیابی را در رابط کاربری Edge ایجاد کنید.

تشخیص

  1. به هر یک از پردازشگرهای پیام وارد شوید و بررسی کنید که آیا ویرایش خاصی از پروکسی API با استفاده از دستور زیر اجرا شده است یا خیر:

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

    خروجی مثال:

    لیستی از ویرایش ها را به عنوان خروجی دستور بالا خواهید دید. به عنوان مثال، اگر نسخه 12 مستقر شده باشد، خروجی را به صورت زیر خواهید دید:

    ["12"]

  2. اگر ویرایش خاص پروکسی API به عنوان خروجی فرمان ذکر شده در مرحله شماره 1 در بالا نشان داده نشد، پردازشگر پیام خاص را همانطور که در وضوح زیر توضیح داده شده مجددا راه اندازی کنید.

  3. مراحل 1-2 را برای همه پردازشگرهای پیام تکرار کنید.

  4. اگر بازبینی خاص پروکسی API در همه پردازشگرهای پیام مستقر شده باشد، این دلیل این مشکل نیست. به اطلاعات تشخیصی باید جمع آوری شود .

قطعنامه

  1. پردازشگر(های) پیام خاصی را که ویرایش خاصی از پروکسی API در آنها اجرا نشده است، مجدداً راه اندازی کنید:

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

علت: مشکل با Edge UI

تشخیص

  1. گزارش های Edge UI /opt/apigee/var/log/edge-ui/application.log و /opt/apigee/var/log/edge-ui/edge-ui.log را بررسی کنید و ببینید آیا خطایی وجود دارد یا خیر.
  2. با پشتیبانی Apigee Edge تماس بگیرید و این فایل ها را برای بررسی بیشتر به اشتراک بگذارید.

باید اطلاعات تشخیصی را جمع آوری کرد

اگر حتی پس از پیروی از دستورالعمل‌های بالا، مشکل همچنان ادامه داشت، لطفاً اطلاعات تشخیصی زیر را جمع‌آوری کنید. تماس بگیرید و آنها را با پشتیبانی Apigee Edge به اشتراک بگذارید:

  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/nc از مدیریت سرور به پردازشگر پیام:

    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. ارائه کنید. /opt/apigee/var/log/edge-ui/edge-ui.log.

  7. جزئیات مربوط به بخش‌هایی که در این کتاب راهنما امتحان شده‌اند و هر بینش دیگری که به ما در حل سریع این مشکل کمک می‌کند.