503 Hizmet Kullanılamıyor

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

Videolar

503 hatalarıyla ilgili daha fazla bilgi için aşağıdaki videolara bakın:

Video Açıklama
DNS sorunu nedeniyle 503 Hizmet Kullanılamıyor Hatası ile ilgili sorunları giderme ve bu hatayı çözme Aşağıdakiler hakkında bilgi edinin:
  • Apigee Edge'de DNS çözümlemesi ve ağ ile ilgili sorunlardan kaynaklanan 503 Hizmet Kullanılamıyor hatası
  • DNS çözümleme sorunundan kaynaklanan gerçek zamanlı 503 Hizmet Kullanılamıyor hatasıyla ilgili sorunları giderme ve çözme
Ağ sorunu nedeniyle 503 Hizmet Kullanılamıyor Hatası ile ilgili sorunları giderme ve bu hatayı çözme Apigee Edge'de ağ sorunundan kaynaklanan gerçek zamanlı 503 Hizmet Kullanılamıyor Hatası ile ilgili sorunları giderme ve çözme

Belirti

İstemci uygulaması, bir API proxy çağrısının ardından Hizmet Kullanılamıyor mesajıyla birlikte bir HTTP yanıt durumu 503 alır.

Hata mesajları

Şu hata mesajını görebilirsiniz:

HTTP/1.1 503 Service Unavailable
      

HTTP yanıtında aşağıdaki hata mesajını da görebilirsiniz:

Hizmet kullanılamıyor

{
   "fault": {
      "faultstring": "The Service is temporarily unavailable",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.ServiceUnavailable"
       }
    }
}
      

Olası nedenler

messaging.adaptors.http.flow.ServiceUnavailable hata koduyla 503 Service Kullanılamıyor HTTP yanıtı, Apigee Edge'in Mesaj İşleyicisi arka uç sunucusuyla iletişim kurarken bağlantı zaman aşımına, yanlış ana makine adı veya SSL el sıkışma hataları nedeniyle hatalarla karşılaşırsa oluşur.

503 Hizmet Kullanılamıyor yanıtının olası nedenleri şunlardır:

Neden Açıklama Sorun giderme adımlarını kimler uygulayabilir?
Yanlış DNS çözümlemesinden kaynaklanan bağlantı hataları Hedef sunucunun DNS çözümlemesi, bağlantı hatalarına neden olan bozuk IP adreslerine neden oldu. Edge Private Cloud kullanıcıları
Bağlantı hataları Ağ veya bağlantı sorunları, istemcinin sunucuya bağlanmasını engelliyor. Edge Private Cloud kullanıcıları
Hatalı hedef sunucu ana makine adı Belirtilen hedef sunucu ana makinesi yanlış veya istenmeyen karakterler (ör. boşluk) içeriyor. Edge Herkese Açık ve Özel Bulut kullanıcıları
SSL el sıkışma hataları İstemci ile sunucu arasındaki TLS/SSL el sıkışması başarısız oldu. (Bu sınıftaki sorun giderme işlemleri ayrı bir konuda ele alınmıştır.) Edge Herkese Açık ve Özel Bulut kullanıcıları

Yaygın teşhis adımları

Başarısız isteğin ileti kimliğini belirleme

İzleme aracı

İzleme Aracı'nı kullanarak başarısız isteğin ileti kimliğini belirlemek için:

  1. Sorun hâlâ devam ediyorsa etkilenen API için izleme oturumunu etkinleştirin.
  2. API çağrısını yapın ve sorunu yeniden oluşturun - 503 Hizmet Kullanılamıyor hata kodu: messaging.adaptors.http.flow.ServiceUnavailable.
  3. Başarısız isteklerden birini seçin.
  4. AX aşamasına gidin ve aşağıdaki şekilde gösterildiği gibi Aşama Ayrıntıları bölümünde aşağı kaydırarak isteğin mesaj kimliğini (X-Apigee.Message-ID) belirleyin.

    Aşama Ayrıntıları bölümündeki Mesaj Kimliği

NGINX erişim günlükleri

NGINX erişim günlüklerini kullanarak başarısız isteğin ileti kimliğini belirlemek için:

503 hatalarının ileti kimliğini belirlemek için NGINX Access günlüklerine de bakabilirsiniz. Bu, özellikle sorun geçmişte oluşmuşsa veya ara sıra ortaya çıkıyorsa ve kullanıcı arayüzünde izleri yakalayamıyorsanız yararlı olur. Bu bilgileri NGINX erişim günlüklerinden belirlemek için aşağıdaki adımları uygulayın:

  1. NGINX erişim günlüklerini kontrol edin: (/opt/apigee/var/log/edge-router/nginx/ <org>~ <env>.<port#>_access_log)
  2. Belirli bir API proxy'si için 503 Hatası olup olmadığını (sorun geçmişte olduysa) veya 503 hatasıyla hata vermeye devam eden istekleri arayın.
  3. X-Apigee-fault-codeMessaging.adaptors.http.flow.ServiceAvailability ile ilgili 503 hatası varsa bu tür isteklerden birinin veya birkaçının mesaj kimliğini aşağıdaki örnekte gösterildiği gibi not edin:

    503 hatasını gösteren örnek giriş

    Durum kodu, mesaj kimliği, hata kaynağı ve hata kodunu gösteren örnek giriş

Yanlış DNS çözümlemesinden kaynaklanan bağlantı hataları

Teşhis

  1. Başarısız isteğin ileti kimliğini belirleyin.
  2. İleti İşleyici günlüğünde (/opt/apigee/var/log/edge-message-processor/logs/system.log) belirli istek mesajı kimliğini arayın. Aşağıdaki hataları görebilirsiniz:

    onConnectTimeout hatası, İleti İşleyicinin önceden ayarlanmış bağlantı zaman aşımı süresi (Varsayılan: 3 saniye) içinde arka uç sunucusuna bağlanamadığını belirtir.
    2019-08-14 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onTimeout() : ClientChannel[Connected:]@164162 useCount=1 bytesRead=0 bytesWritten=0 age=3001ms lastIO=3001ms .onConnectTimeout connectAddress=www.abc.com/11.11.11.11  resolvedAddress=www.abc.com/22.22.22.22
    
    2019-08-14 09:11:49,333 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onTimeout() : RequestWriteListener.onTimeout(HTTPRequest@6b393600)
          
  3. onConnectTimeout hatasında çözülmüş IP adresini not edin ve IP adresinin arka uç sunucunuz için geçerli olup olmadığını kontrol edin. IP adresi geçerliyse Bağlantı Hataları'na gidin.
  4. IP adresi geçersizse bunun nedeni büyük olasılıkla DNS çözümlemeyle ilgili sorunlar olabilir.
  5. Başarısız olan birkaç API isteği daha için 3. ve 4. adımı tekrarlayın ve aynı IP adresini veya başka geçersiz IP adreslerini görüp görmediğinizi doğrulayın.
  6. İleti İşleyici günlüğünde (/opt/apigee/var/log/edge-message-processor/logs/system.log) DNS Yenile anahtar sözcüğünü içeren iletileri arayın. İleti İşleyici'de DNS önbelleğine ara sıra hatalı veya geçersiz IP adreslerinin eklenip eklenmediğini kontrol edin.
    2019-08-14 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 INFO c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.reportDifferences() : DNS Refresh for host: apitarget-uat.schemeweb.co.uk:4436. Added 2 IPs [www.abc.com/22.22.22.22, www.abc.com/33.33.33.33] Removed 1 IPs [www.abc.com/11.11.11.11]
          
  7. Bu sorun, yetkili DNS sunucuları veya /etc/resolv.conf politikasında yapılandırılan alan adı sunucularıyla ilgili herhangi bir sorun oluştuğunda ortaya çıkabilir.

    Genellikle DNS çözümlemesini gerçekleştirecek şekilde yapılandırılmış bir veya daha fazla yetkili DNS sunucusu olabilir. Yetkili DNS sunucusu yoksa /etc/resolv.conf yapılandırma ayarına geri döner ve DNS çözümlemesini uygun şekilde gerçekleştirir. Örneğin: /etc/resolv.conf belirli alan adı sunucularını kullanacak şekilde yapılandırılmışsa DNS çözümlemesi için bu alan adı sunucuları kullanılır.
  8. /etc/resolv.conf politikasında belirtilen yetkili DNS sunucuları veya ad sunucularıyla ilgili herhangi bir sorun varsa arka uç sunucusunun ana makine adları hatalı/geçersiz IP adreslerine çözümlenir. Bu durumda hatalı/geçersiz IP adresleri, İleti İşleyici'nin DNS önbelleğinde depolanır.
    1. /etc/resolv.conf politikasında belirtilen yetkili DNS sunucuları veya ad sunucularıyla ilgili sorun devam ederse bozuk/geçersiz IP adresleri, İleti İşleyici'nin DNS önbelleğinde kalmaya devam eder. Hatalı IP adresleri, İleti İşleyici'nin DNS önbelleğinde depolandığı sürece, belirli bir arka uç sunucusunu kullanan tüm bu API'lere yönelik istekler 503 hatasıyla başarısız olur.
    2. /etc/resolv.conf politikasında belirtilen yetkili DNS sunucuları veya ad sunucularıyla ilgili sorun aralıklı olarak yaşanıyorsa iyi ve kötü IP adresleri aralıklı olarak DNS önbelleğinde depolanır. Bu durumda, belirli arka uç sunucusunu kullanan tüm API'ler için aralıklı olarak 503 hataları görürsünüz.
  9. DNS sunucularıyla ilgili sorun devam ediyorsa, kesintisiz hatalar görürsünüz. DNS sunucularıyla ilgili sorun aralıklı olarak oluşuyorsa, aralıklarla meydana gelen hatalar görürsünüz. Yani arka uç sunucusu ana makine adı, hatalı IP adreslerine çözümlendiğinde 503 hataları görürsünüz. Arka uç sunucusu ana makine adları iyi IP adreslerine çözümlendiğinde ise başarılı yanıtlar olduğunu görürsünüz.

Çözünürlük

Lütfen işletim sistemi yöneticinizle birlikte çalışarak DNS sunucularıyla ilgili sorunları giderin.

  1. Yetkili DNS sunucularınızla veya /etc/resolv.conf politikasında belirtilen alan adı sunucularınızla ilgili bir sorun varsa bu sorunu gidermek için sorunu ilgili sunucuyla düzeltin.
  2. İleti İşleyicileri bulunan sistemlerde /etc/resolv.conf bölümündeki yapılandırmayla ilgili sorun varsa yapılandırma sorununu düzeltin.

Bağlantı hataları

Apigee Edge Mesaj İşleyicisi bir arka uç sunucusuna bağlanmaya çalıştığında ve aşağıdaki sorunlardan biri ortaya çıktığında bağlantı hatası oluşur:

  • İleti İşleyici, önceden ayarlanmış bağlantı zaman aşımı süresi içinde bağlanamıyor. (Varsayılan: 3 saniye)
  • Arka uç sunucusu bağlantıyı reddediyor.

Teşhis

  1. Başarısız isteğin ileti kimliğini belirleyin.
  2. Mesaj İşleyici günlüğünde (/opt/apigee/var/log/edge-message-processor/logs/system.log) ilgili istek mesajı kimliğini arayın. Aşağıdaki hataları görebilirsiniz:
    1. onConnectTimeout hatası, Mesaj İşleyicinin önceden ayarlanmış bağlantı zaman aşımı süresi içinde arka uç sunucusuna bağlanamadığını belirtir.
      2016-06-23 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@2 ERROR HTTP.CLIENT - HTTPClient$Context.onTimeout() : ClientChannel[C:]@10 useCount=1 bytesRead=0 bytesWritten=0 age=3001ms lastIO=3001ms .onConnectTimeout connectAddress=www.abc.com/11.11.11.11:80 resolvedAddress=www.abc.com/11.11.11.11
      2016-06-23 09:11:49,333 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@2 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onTimeout() : RequestWriteListener.onTimeout(HTTPRequest@6b393600)
      
    2. java.net.ConnectException: Connection reddedildi (Bağlantı reddedildi) hatası, bağlantının arka uç sunucusu tarafından reddedildiğini gösterir.
      14:40:16.531 +0530
      2016-06-17 09:10:16,531 org:myorg env:prod api:www.abc.com rev:1 rrt07eadn-22739-40983870-15 NIOThread@2 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() : connect to www.abc.com:11.11.11.11:443 failed with exception {}
      java.net.ConnectException: Connection refused
      at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_75]
      at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) ~[na:1.7.0_75]
      at com.apigee.nio.ClientChannel.finishConnect(ClientChannel.java:121) ~[nio-1.0.0.jar:na]
      at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:108) ~[nio-1.0.0.jar:na]
      
  3. telnet komutunu kullanarak, Mesaj İşleyicilerin her birinden doğrudan belirli arka uç sunucusuna bağlanıp bağlanamadığınızı kontrol edin:
    1. Arka uç sunucusu tek bir IP adresine çözümlenirse aşağıdaki komutu kullanın:
      telnet BackendServer-IPaddress 443
                
    2. Arka uç sunucusu birden fazla IP adresine çözümlenirse telnet komutunda arka uç sunucunun ana makine adını aşağıda gösterildiği gibi kullanın:
      telnet BackendServer-HostName 443
                
  4. Arka uç sunucusuna bağlanabiliyorsanız Connected to backend-server gibi bir mesaj görebilirsiniz. Arka uç sunucusuna bağlanamıyorsanız bunun nedeni, Mesaj İşleyicilerin IP adreslerinin belirli bir arka uç sunucusunda izin verilenler listesine eklenmemiş olması olabilir.

Çözünürlük

Edge Mesaj İşleyicilerinden gelen trafiğin arka uç sunucunuza erişmesine izin vermek için ilgili arka uç sunucusunda Mesaj İşleyici'nin IP adreslerine erişim verin. Örneğin, Linux'ta, Mesaj İşleyicinin IP adreslerinden gelen trafiğe izin vermek için arka uç sunucudaki iptables komutunu kullanabilirsiniz.

Sorun devam ederse sorunu belirlemek ve düzeltmek için Ağ yöneticinizle birlikte çalışın. Apigee'den daha fazla yardıma ihtiyacınız olursa Apigee Desteği ile iletişime geçin.

Hedef sunucu ana makine adı yanlış

Teşhis

Hedef sunucuda belirtilen ana makine adı yanlışsa şu hata koduyla birlikte 503 Hizmet Kullanılamıyor yanıtı alabilirsiniz: messaging.adaptors.http.flow.ServiceUnavailable.

İzleme aracı

İzleme aracını kullanarak teşhis etmek için:

  1. Sorun hâlâ devam ediyorsa etkilenen API için izleme oturumunu etkinleştirin.
  2. API çağrısını yapın ve sorunu yeniden oluşturun - 503 Hizmet Kullanılamıyor hata kodu: messaging.adaptors.http.flow.ServiceUnavailable.
  3. Başarısız isteklerden birini seçin.
  4. İzin çeşitli aşamaları arasında gezinin ve hatanın nerede gerçekleştiğini bulun.
  5. Hatalı FlowInfo'yu seçin. Aşağıdaki örnekte gösterildiği gibi, hatanın nedenini size bildirebilecek error.cause alanında daha fazla bilgi bulabilirsiniz:

    İzlemede error.cause değerini gösteren örnek istek

    İzdeki error.cause değerini gösteren örnek istek
  6. error.cause dosyasında Ana makineye erişilemiyor ifadesi gösteriliyorsa hatanın olası nedeni aşağıdakilerden biridir:
    • Hedef sunucu/hedef uç nokta yapılandırmasında belirtilen ana makine adı yanlış veya istenmeyen boşluk ya da özel karakterler içeriyor.

      Örneğin, aşağıda gösterildiği gibi ana makine adında istenmeyen bir alan var:
      "demo-target.apigee.net "
                        
    • assignMessage veya JavaScript politikası kullanılarak API Proxy'sinde target.url değişkeninin üzerine yazılan ana makine adı yanlış ya da boşluk veya istenmeyen başka özel karakterler içeriyor.
  7. Hedef sunucu ana makine adının yanlış olup olmadığını veya istenmeyen boşluk ya da özel karakter içerip içermediğini görmek için hedef uç nokta yapılandırmasını ve/veya hedef sunucu tanımını kontrol edin.
  8. Hedef sunucu ana makinesi dinamik olarak oluşturuluyorsa ana makineyi oluşturmak için kullanılan uygun politikayı (ör. assignMessage/JavaScript politikası) kontrol edin. Hedef sunucu ana makine adının yanlış olup olmadığını veya istenmeyen boşluk ya da özel karakterler içerip içermediğini kontrol edin.
  9. Hedef sunucu ana makine adını belirledikten sonra, sorunun çözülüp çözülmediğini görmek için ana makine adında nslookup/dig komutunu çalıştırın.

    Örneğin, nslookup komutunu istenmeyen boşlukla ana makine adında çalıştırmak aşağıdaki çıkışı döndürür:

    nslookup "demo-target.apigee.net "
    Server:	49.205.75.2
    Address:	49.205.75.2#53
    
    ** server can't find demo-target.apigee.net\032: NXDOMAIN
    
  10. nslookup işletim sistemi komutu da ana makine adını çözümleyemiyorsa bu sorunun nedeni hedef sunucu için kullanılan yanlış ana makine adıdır.

    Çözünürlük'e gidin.

Mesaj işlemci günlükleri

İleti işlemci günlüklerini kullanarak teşhis etmek için:

  1. Başarısız isteğin ileti kimliğini belirleyin.
  2. İleti İşleyici günlüğünde ileti kimliğini arayın. (/opt/apigee/var/log/edge-message-processor/logs/system.log)
  3. Aşağıdaki uyarı/hata mesajlarını görüyorsanız Mesaj İşleyici ana makine adını çözümleyemedi. İleti erteleneceğinden, tüm ileti kimlikleri/istekleri için bu uyarı mesajını göremeyebilirsiniz.
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 WARN S.HTTPCLIENTSERVICE - DNSCache$2.failed() : Failed to resolve hostname www.somehost.com . Reason mocktarget.apigee.net : Name or service not known. This log message will snooze for 2 hours
        
  4. Bunun ardından bir uyarı mesajı gösterilir. Bu mesaj İşleyici, hedef sunucu ana makinesine ulaşılamadığı için adresi DNS önbelleğinden kaldırır.
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid> NIOThread@0 WARN  c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.addressNotReachable() : The last address has been removed from Address list null refreshing
        
  5. Mesaj İşleyici'nin başarısız olduğu "Ana makineye erişilemiyor" istisnasıyla bir mesaj görebilirsiniz. Bazen hata mesajında ana makine adı gösterilir:
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to demo-target.apigee.net  failed with exception {}
    java.lang.RuntimeException: Host not reachable
    	at com.apigee.protocol.http.HTTPClient$Context.initConnect(HTTPClient.java:704)
    	at com.apigee.protocol.http.HTTPClient$Context.send(HTTPClient.java:675)
    	at com.apigee.messaging.adaptors.http.flow.data.TargetRequestSender.sendRequest(TargetRequestSender.java:234)
    	…<snipped>
        
  6. Ana makine adı aşağıda gösterildiği gibi çözümlenemediği veya erişilemediği için bazen bu alan null olarak gösterilebilir:
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to null failed with exception {}
    java.lang.RuntimeException: Host not reachable
    	at com.apigee.protocol.http.HTTPClient$Context.initConnect(HTTPClient.java:704)
    	at com.apigee.protocol.http.HTTPClient$Context.send(HTTPClient.java:675)
    	at com.apigee.messaging.adaptors.http.flow.data.TargetRequestSender.sendRequest(TargetRequestSender.java:234)
    	…<snipped>
        
  7. Host not reachable hatası genellikle aşağıdaki durumlardan birinde oluşur:
    • Hedef sunucu/hedef uç nokta yapılandırmasında belirtilen ana makine adı yanlış veya istenmeyen boşluk ya da özel karakterler içeriyor.

      Örneğin, aşağıdaki hata mesajında "demo-target.Apigee.net " ana makine adında istenmeyen bir boşluk var:
      NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to demo-target.apigee.net  failed with exception
              
    • assignMessage veya JavaScript politikası kullanılarak API Proxy'sinde target.url değişkeninin üzerine yazılan ana makine adı yanlış veya boşluk ya da istenmeyen başka özel karakterler içeriyor.
  8. Aşağıdakilerden birini kullanarak İleti İşleyici'nin iletişim kurmaya çalıştığı hedef sunucu ana makine adını belirleyin:
    1. Host not reachable öğesini içeren hata mesajını dikkatli bir şekilde inceleyin.
    2. Hata mesajında ana makine adı görünüyorsa boşluklar veya özel karakterlerle birlikte ana makine adını kopyalayın.
    3. Aşağıdaki hata mesajında görüldüğü gibi ana makine adı için hata mesajında null değeri gösteriliyorsa
      org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to null failed with exception {}
              
      1. Başarısız API Proxy'sinde kullanılan hedef sunucu tanımını kontrol ederek ana makine adını belirleyin.
      2. Hedef sunucu ana makinesi dinamik olarak oluşturuluyorsa, ana makineyi oluşturmak için kullanılan uygun politikayı (örneğin, assignMessage/JavaScript politikası) kontrol edin.
  9. Hedef sunucu ana makine adını belirledikten sonra ana makine adında nslookup/dig komutunu çalıştırın ve sorunun çözülüp çözülmediğini kontrol edin.

    Örneğin, boşluk içeren ana makine adında nslookup komutunu çalıştırın

    nslookup "demo-target.apigee.net "
    Server:	49.205.75.2
    Address:	49.205.75.2#53
    
    ** server can't find demo-target.apigee.net\032: NXDOMAIN
          
  10. nslookup işletim sistemi komutu ana makine adını da çözemiyorsa bu sorunun nedeni hedef sunucu için kullanılan yanlış ana makine adıdır.

Çözünürlük

  1. Hedef uç nokta yapılandırmasında veya hedef sunucu tanımında belirtilen hedef sunucu ana makine adının doğru olduğundan ve istenmeyen boşluk ya da özel karakter içermediğinden emin olun.
  2. Hedef sunucu ana makine adını dinamik olarak oluşturmak için herhangi bir assignMessage/JavaScript politikası kullanıyorsanız politika tanımını ve kodu inceleyip hedef sunucu ana makine adının doğru şekilde oluşturulduğundan emin olun.

SSL el sıkışma hataları

Sorun giderme başucu kitabının tamamı TLS/SSL el sıkışma hatalarına ayrılmıştır. SSL El Sıkışma Hataları başlıklı makaleye göz atın.

Sorunun kaynağını belirleme

Gelen (kuzey giden) veya giden (güne giden) bağlantıda belirli türlerde hatalar oluşabilir. İstemci uygulaması ile Edge arasında bir gelen (kuzine giden) hatası oluşur. Edge ile arka uç hedef sunucusu arasında giden (güne giden) bir hata oluşur. Bu tür sorunları teşhis etmek için yapmanız gereken ilk şey hatanın kuzey sınırında mı yoksa güneydeki bağlantıda mı ortaya çıktığını belirlemektir.

Kuzey ve güneye yönelik bağlantıları anlama

Edge'de, gelen veya giden bağlantıda 503 Service Kullanılamıyor hatasıyla karşılaşabilirsiniz:

  • Gelen (veya kuzeye giden) bağlantı: İstemci uygulaması ile Uç Yönlendirici arasındaki bağlantı. Yönlendirici, Apigee Edge'in sisteme gelen istekleri işleyen bileşenidir.
  • Giden (veya güneye giden) bağlantı: Edge Mesaj İşleyici ile arka uç sunucusu arasındaki bağlantı. Mesaj İşleyici, API isteklerini arka uç hedef sunuculara proxy olarak yönlendiren bir Apigee Edge bileşenidir.

Edge Herkese Açık Bulut kullanıcısıysanız muhtemelen Yönlendirici veya Mesaj İşleyici gibi dahili bileşenlerden haberdar değilsinizdir. Bu dahili bileşenler, Herkese Açık Bulut kullanıcıları tarafından görülemez veya bunlara erişilemez. Mümkün olduğu durumlarda, sorunu incelemek için bu bileşenlere doğrudan erişim gerektirmeyen alternatif yollar sunarız.

Aşağıdaki şekilde Apigee Edge'in kuzeye ve güneye bağlantıları gösterilmektedir.

İstemci uygulamasının Uçtan arka uç sunucusuna akışı (kuzey giden bağlantı) (güneye giden bağlantı)

503 Hizmet Kullanılamıyor hatasının nerede oluştuğunu belirleme

Kuzey sınırında mı yoksa güneye giden bağlantıda mı 503 Hizmet Kullanılamıyor hatasının oluşup oluşmadığını belirlemek için aşağıdaki prosedürlerden birini kullanın.

Kullanıcı arayüzü izleme

Kullanıcı Arayüzü İzlemeyi kullanarak hatanın nerede oluştuğunu belirlemek için:

  1. Sorun devam ediyorsa etkilenen API için kullanıcı arayüzü izlemeyi etkinleştirin.
  2. Başarısız API isteğinin kullanıcı arayüzü izlemesi, 503 Hizmet Kullanılamıyor hatasının hedef istek akışı sırasında oluştuğunu veya arka uç sunucusu tarafından gönderildiğini gösteriyorsa sorun Güney sınırda (yani Mesaj İşleyici ile arka uç sunucusu arasında) olur.
  3. Belirli bir API çağrısının izini almazsanız sorun, istemci uygulaması ve Yönlendirici arasında kuzey sınırda demektir.

API izleme

API Monitoring; hata, performans ve gecikme sorunlarını ve bunların kaynaklarını (ör. geliştirici uygulamaları, API proxy'leri, arka uç hedefleri veya API platformu) teşhis etmek için sorunlu alanları hızla izole etmenize olanak tanır.

API Monitoring'i kullanarak API'lerinizle ilgili 5xx sorunlarını nasıl gidereceğinizi gösteren örnek bir senaryoyu inceleyin. Örneğin, messaging.adaptors.http.flow.ServiceUnavailable hata sayısı belirli bir eşiği aştığında bilgilendirilecek bir uyarı ayarlamak isteyebilirsiniz.

NGINX erişim günlükleri

Kullanıcı Arayüzü İzlemeyi kullanarak hatanın nerede oluştuğunu belirlemek için:

Sorun geçmişte olduysa veya ara sıra ortaya çıkıyorsa ve izi yakalayamıyorsanız aşağıdaki adımları uygulayın:

  1. NGINX erişim günlüklerini kontrol edin (/opt/apigee/var/log/edge-router/nginx/ org-env.port_access_log).
  2. Belirli API proxy'si için 503 hatası olup olmadığını kontrol edin.
  3. Belirli bir API için belirli bir zamanda 503 Hatası tanımlayabiliyorsanız sorun, Güney sınır bağlantısında (Mesaj İşleyici ve arka uç sunucusu arasında) oluşmuş demektir.
  4. Aksi halde, sorun kuzey giden bağlantıda (istemci uygulaması ile Yönlendirici arasında) oluşmuştur.