Edge kullanıcı arayüzünde yakalanmayan API istekleri

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Belirti

Aşağıdaki resimde, izleme oturumu başlatıldığında API isteklerinin Edge kullanıcı arayüzünde yakalanmadığı gösterilmektedir:

Hata Mesajı

Bu sorun oluştuğunda Edge kullanıcı arayüzünde hata mesajı gösterilmeyecek.

Olası Nedenler

Aşağıdaki tabloda, Edge UI Trace'te API isteklerinin yakalanamamasının olası nedenleri gösterilmektedir:

Neden Açıklama Aşağıdakiler İçin Geçerli Sorun Giderme Talimatları
Mesaj İşleyen tarafından işleme koyulmayan istekler API isteklerinin, iz yakalamak için Edge'in bileşeninin Mesaj İşleyicisi tarafından işlenmesi gerekir. Bir API isteği Apigee Edge'e ulaşamazsa, Edge'e (ör. veya İleti İşleyen tarafından işlenmeden önce başarısız olursa iz yakalanamaz. Edge Herkese Açık ve Private Cloud Kullanıcıları
Sınıflandırma Ağacında API Proxy'si Bulunamadı Apigee Mesaj İşleyicileri; gelen isteğin ana makine adına, temel yoluna, düzeltmeye ve ortamına göre istekleri dağıtmak için Sınıflandırma Ağacı adı verilen bir Yönlendirme Kuralı tanımını kullanır. İlgili API proxy'si herhangi bir nedenle Sınıflandırma Ağacı'ndan kaldırılırsa İzleme işlemleri doldurulmayabilir. Edge Private Cloud Kullanıcıları

Neden: Mesajı İşleyen tarafından işlenmeyen istekler

Teşhis

İzleme oturumunda bir API isteği yakalamak için API isteğinin, Edge'in bileşen Mesaj İşleyicisi tarafından işlenmesi gerekir. Bir API isteğinin Trace işleminde yakalanmamasının birkaç nedeni olabilir.

Örneğin, bir API isteği Apigee Edge'e ulaşamazsa, Edge'e (ör. veya İleti İşleyici tarafından işlenmeden önce başarısız olursa iz yakalanamaz. Bu senaryoların her biri aşağıda daha ayrıntılı olarak açıklanmıştır.

1. Senaryo: İstekler Apigee Edge'e ulaşamıyor

  • Neden

    Bu senaryoda, hata DNS çözümlemesinden veya ağ bağlantısı sorunundan kaynaklanıyor olabilir. Öyleyse bu komutu çalıştırdığınızda aşağıdaki hatayı görebilirsiniz:

    curl https://hostName:port/apiProxyBasePath/requestPath
    
    curl: (6) Could not resolve host: hostName
    
  • Çözünürlük

    DNS yapılandırmasını şu komutla doğrulayabilirsiniz:

    dig hostName

    Ağ bağlantısını aşağıdaki komutla doğrulayabilirsiniz:

    telnet hostName port

2. Senaryo: Apigee Edge Yönlendirici'de istekler başarısız oluyor

  • Neden

    Bu senaryoda, hata bir TLS/SSL el sıkışma hatasından kaynaklanıyor olabilir. Öyleyse aşağıdaki hatalardan birini görebilirsiniz:

    Received fatal alert: handshake_failure
    
    HTTP/1.1 400 Bad Request
    

    SSL sertifika hatasıyla da karşılaşabilirsiniz.

  • Çözünürlük

    Bu sorunları gidermek ve çözmek için aşağıdaki başucu kitaplarına bakın:

    TLS/SSL El Sıkışması Hataları

    400 Hatalı İstek - SSL Sertifika Hatası

3. Senaryo: İstekler İleti İşleyen tarafından işlenemiyor

  • Neden

    Bu senaryoda, Apigee Mesaj İşleyicisi aşağıdaki mesaj için API Proxy'sini bulamaz: belirtilen sanal ana makine ve yol. Bunun sonucunda, şu hatalar var:

    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"
        }
      }
    }
    
    
  • Çözünürlük

    Bu sorunu gidermek ve çözmek için şu başucu kitabına bakın: 404 Ana makine için proxy tanımlanamıyor.

ziyaret edin.

Neden: Sınıflandırma Ağacında API Proxy'si Bulunamadı

Teşhis

Mesaj İşleyici, Sınıflandırma Ağacı'nda bir API proxy'si bulamazsa söz konusu proxy'ye yapılan API istekleri Uç Kullanıcı Arayüzündeki İzleme oturumlarında gösterilmez.

Böyle bir durumun söz konusu olup olmadığını belirlemek için aşağıdaki adımları uygulayın:

  1. Mesaj İşleyicilerin her birine giriş yapın ve aşağıdaki komutu kullanarak istenen API'nin özel düzeltmesinin Mesaj İşleyen'in ilgili ortamına dağıtılıp dağıtılmadığını kontrol edin:

    curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
    

    Örnek çıkış:

    Yukarıdaki komut, dağıtılan düzeltmelerin listesini oluşturur. Örneğin, düzeltme 12 dağıtıldıysa aşağıdaki çıkışı görürsünüz:

    [ "12" ]
    

    Aralıklı HTTP 404 hatalarıyla karşılaşmıyorsanız ilgili düzeltmenin dağıtıldığını görebilirsiniz.

  2. Sınıflandırma Ağacı'nı okuyun ve aşağıdaki komutu kullanarak API proxy adının mevcut olup olmadığını kontrol edin:

    curl -i http://localhost:8082/v1/classification/tree | grep apiName
    
  3. Her Mesaj İşleyici için 1. ve 2. adımları tekrarlayın. Mesaj İşleyicilerden herhangi birinin Sınıflandırma Ağacı'nda belirtilen API proxy adı yoksa aşağıdaki çözümü uygulayın.

Çözüm

Bu sorunu çözmek için lütfen aşağıdaki adımları uygulayın. Çok fazla istek yükü yaşanırken İleti İşlemcilerinin yeniden başlatılmasından kaynaklanabilecek üretim kesintilerini önlemek için gerekli önlemleri aldığınızdan emin olun.

  1. Sınıflandırma Ağacı'nda belirtilen API proxy'si eksik olan Mesaj İşleyici ana makinelerinin her birine giriş yapın ve Mesaj İşleyici'yi yeniden başlatmak için aşağıdaki komutu kullanın:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. Yeniden başlattıktan sonra, etkinleşene kadar beklemek için aşağıdaki komutu kullanın:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
    
  3. Mesaj İşleyici hazır olduğunda, aşağıdaki komutu kullanarak API proxy'sinin kullanılabilirliğini doğrulayın:

    curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
    

    Örnek çıkış:

    Yukarıdaki komut, dağıtılan düzeltmelerin listesini oluşturur. Örneğin, düzeltme 12 dağıtıldıysa aşağıdaki çıkışı görürsünüz:

    [ "12" ]
    

    Aralıklı HTTP 404 hatalarıyla karşılaşmıyorsanız ilgili düzeltmenin dağıtıldığını görebilirsiniz.

  4. Sınıflandırma Ağacı'nı okuyun ve aşağıdaki komutu kullanarak API proxy'sinin adını doğrulayın:

    curl -i http://localhost:8082/v1/classification/tree | grep apiName
    

    Sorun devam ederse Teşhis Bilgilerinin Toplanması Gerekenler bölümüne gidin.

Teşhis Bilgileri Toplanmalıdır

Yukarıdaki talimatları uyguladıktan sonra sorun devam ederse lütfen aşağıdaki teşhis bilgilerini toplayıp Apigee Edge Destek Ekibi ile paylaşın:

Teşhis Bilgileri Türü    Komut
İzleme oturum komutu çıkışı
curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user
Management Server günlüğü
/opt/apigee/var/log/edge-management-server/logs/system.log
Mesaj işleyen günlükleri
/opt/apigee/var/log/edge-message-processor/logs/system.log
Yönetim Sunucusu'ndan İleti İşleyici'ye telnet/netcat komutlarının çıkışı
telnet MessageProcessor_IP 8082
nc -vz MessageProcessor_IP 8082
Mesaj İşleyicilerde netstat komutunun çıkışı
netstat -an > netstat.txt
Tüm İleti İşleyicilerde belirli API Proxy'si için dağıtılan çıkış listesi düzeltmeleri
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
Tüm mesaj işleyicilerde Sınıflandırma Ağacı çıkışı
curl -i http://localhost:8082/v1/classification/tree