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:
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.
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:
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.
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
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.
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
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
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.
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 |