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

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Belirti

Aşağıdaki resimde, bir 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örüntülenmez.

Olası Nedenler

Aşağıdaki tabloda, Edge Kullanıcı Arayüzü İzleme'de API isteklerinin yakalanamamasının olası nedenleri gösterilmektedir:

Neden Açıklama Geçerli Sorun Giderme Talimatları
Mesaj İşleyen tarafından işleme alınmayan istekler API istekleri, izlemenin yakalanması için Edge'in bileşen Mesaj İşleyicisi tarafından işlenmelidir. Bir API isteği Apigee Edge'e ulaşamazsa, Edge'in giriş noktasında (ör. Yönlendirici) ya da ileti İşleyici tarafından işlenmeden önce başarısız olursa iz yakalanamaz. Edge'in Herkese Açık ve Özel Bulut Kullanıcıları
Sınıflandırma Ağacında API Proxy'si Bulunamadı Apigee Mesaj İşleyicileri, gelen isteğin ana makine adı, temel yol, düzeltme ve ortamına göre istekleri göndermek için Sınıflandırma Ağacı adlı bir Yönlendirme Kuralı tanımı 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 Özel Bulut Kullanıcıları

Neden: İleti İşleyici tarafından işlenmeyen istekler

Teşhis

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

Örneğin, bir API isteği Apigee Edge'e ulaşamıyorsa, Edge'in giriş noktasında (ör. Yönlendirici) ya da İ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çıklanmaktadır.

1. Senaryo: İstekler Apigee Edge'e erişemiyor

  • Neden

    Bu senaryoda, hatanın nedeni bir DNS çözümlemesi veya ağ bağlantısı sorunu olabilir. Bu durumda, 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ı aşağıdaki komutla doğrulayabilirsiniz:

    dig hostName

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

    telnet hostName port

2. Senaryo: İstekler Apigee Edge Yönlendiricide başarısız oluyor

  • Neden

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

    Received fatal alert: handshake_failure
    
    HTTP/1.1 400 Bad Request
    

    SSL sertifika hatası da görebilirsiniz.

  • Çözünürlük

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

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

    400 Hatalı İstek - SSL Sertifika Hatası

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

  • Neden

    Bu senaryoda Apigee Mesaj İşleyici, belirtilen sanal ana makine ve yol için API Proxy'sini bulamamaktadır. Sonuç olarak aşağıdaki hatalardan birini görebilirsiniz:

    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 Maalesef ana makine için proxy tanımlanamıyor.

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

Teşhis

Bir İleti İşleyici, Sınıflandırma Ağacı'nda bir API proxy'si bulamıyorsa söz konusu proxy'ye yapılan hiçbir API isteği, Edge kullanıcı arayüzündeki İzleme oturumlarında gösterilmez.

Böyle bir durumun 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'nın ilgili düzeltmesinin İleti İşleyici'nin ilgili ortamında 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 verir. Ö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ı büyük olasılıkla görürsünüz.

  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 işleyen için 1. ve 2. adımları tekrarlayın. Mesaj İşleyicilerin herhangi birinin Sınıflandırma Ağacı'nda belirtilen API proxy adı yoksa aşağıda verilen çözümü uygulayın.

Çözüm

Bu sorunu çözmek için lütfen aşağıdaki adımları uygulayın. Yüksek istek yükleri yaşanırken İleti İşleyicilerin yeniden başlatılması nedeniyle oluşabilecek üretim kesintilerini önlemek için gerekli önlemleri aldığınızdan emin olun.

  1. Sınıflandırma Ağacı'nda ilgili API proxy'si eksik olan İleti İşleyici ana makinelerinin her birine giriş yapın ve İleti İş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 etkin hale gelene 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 verir. Ö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ı büyük olasılıkla görürsünüz.

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

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

    Sorun devam ederse Tanılama Bilgilerinin Toplanması Zorunludur bölümüne gidin.

Teşhis Bilgilerinin Toplanması Gereken

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 Bilgisi    Komut
İzleme oturumu komutunun çıktısı
curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user
Management Server (Yönetim Sunucusu) günlüğü
/opt/apigee/var/log/edge-management-server/logs/system.log
Mesaj İşleyici günlükleri
/opt/apigee/var/log/edge-message-processor/logs/system.log
Management Server'dan İleti İşleyici'ye telnet/netcat komutları çıktısı
telnet MessageProcessor_IP 8082
nc -vz MessageProcessor_IP 8082
Mesaj İşleyicilerde netstat komutunun çıkışı
netstat -an > netstat.txt
Tüm Mesaj İşleyicilerinde belirli API Proxy'sine 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şleyenlerde Sınıflandırma Ağacı çıktısı
curl -i http://localhost:8082/v1/classification/tree