執行階段問題

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

執行 API 期間發生的任何錯誤、延遲問題或非預期的結果 要求稱為 runtime 問題

4XX/5XX 錯誤

應對手冊

本節針對一些具體程序提供了相關資訊和指引, 後來瞭解如何排解及解決執行階段 4XX5XX 錯誤。

錯誤回應/訊息 錯誤代碼 應對手冊
HTTP/1.1 500 Internal Server Error 視實際錯誤而定 500 內部伺服器錯誤

500 內部伺服器錯誤 - 已啟用串流功能

HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.ServiceUnavailable 503 服務無法使用
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets 503 Service 無法使用 - NoActiveTargets
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets

(原因在於健康狀態檢查失敗)

503 服務無法使用 - NoActiveTargets 健康狀態檢查失敗
HTTP/1.1 503 Service Unavailable

(來自後端伺服器)

messaging.adaptors.http.flow.ErrorResponseCode 503 服務無法使用 - 後端伺服器
HTTP/1.1 504 Gateway Timeout messaging.adaptors.http.flow.GatewayTimeout 504 閘道逾時
HTTP/1.1 504 Gateway Timeout

(來自後端伺服器)

messaging.adaptors.http.flow.ErrorResponseCode 504 閘道逾時 - 後端伺服器

診斷資訊

您如需 Apigee Edge 支援4XX 執行階段錯誤的任何協助 (例如 400401404499) 或 5XX (例如 500503504) 錯誤, 然後在客服案件中收集及分享下列診斷記錄和資訊:

診斷資訊 我可以在哪裡收集這項資訊? 如何收集這項資訊?
追蹤工具輸出內容可擷取失敗的 API 要求 Edge UI 如何使用追蹤工具
路由器記錄檔 路由器
tar cvzf /tmp/router_logs_ORGNAME_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*

訊息處理器記錄 訊息處理器
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

壓縮所有診斷資料
>tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*
敬上

400 錯誤的要求錯誤 - SSL 憑證錯誤

應對手冊

本節針對一些具體程序提供了相關資訊和指引, 並按照指示進行疑難排解及解決 400 Bad Request - SSL Certificate Error

錯誤訊息 應對手冊
<html>
  <head>
    <title>400 The SSL certificate error</title>
  </head>
  <body bgcolor="white">
    <center> <h1>400 Bad Request</h1>
    </center>
    <center>The SSL certificate error</center>
    <hr>
    <center>nginx</center>
  </body>
</html>

400 錯誤要求錯誤 - SSL 憑證錯誤

診斷資訊

如果您在 400 Bad Request - SSL Certificate ErrorApigee Edge 支援服務中需要協助,請收集下列診斷資訊,並在客服案件中分享:

診斷資訊 我可以在哪裡收集這項資訊? 如何收集這項資訊?
路由器記錄檔 路由器
tar cvzf /tmp/router_logs_ORGNAME_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*
敬上
Tcpdumps 路由器

在路由器機器上使用 tcpdump 指令擷取網路封包:

sudo tcpdump -s 0 -i any host CLIENT_HOST_IP_ADDRESS -w /tmp/router_tcpdump_$(hostname).pcap

壓縮 tcpdump

tar cvzf /tmp/router_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/router_tcpdump_$(hostname).pcap
敬上
Tcpdumps 用戶端機器

在用戶端電腦上使用 tcpdump 指令擷取網路封包:

sudo tcpdump -s 0 -i any host VIRTUAL_HOST_ALIAS -w /tmp/client_tcpdump_$(hostname).pcap

壓縮 tcpdump

tar cvzf /tmp/client_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/router_tcpdump_$(hostname).pcap
壓縮所有診斷資料 路由器
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router*
敬上

404 無法識別主機錯誤的 Proxy

應對手冊

本節針對一些具體程序提供了相關資訊和指引, 按照指示進行疑難排解及解決 404 Unable to identify proxy for host 問題 錯誤。

錯誤訊息或說明 錯誤代碼 應對手冊
HTTP/1.1 404 Not Found

{
   "fault":{
      "faultstring":"Unable to identify proxy for host: VIRTUAL_HOST_NAME and url: PATH",
      "detail":{
         "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"
      }
   }
}

messaging.adaptors.http.flow.ApplicationNotFound 404 無法識別主機的 Proxy

診斷資訊

如果需要 Apigee Edge 支援服務針對 404 Unable to identify proxy for host 錯誤提供協助,請收集下列診斷資訊,並在 客服案件:

診斷資訊 我可以在哪裡收集這項資訊? 如何收集這項資訊?
Deployments API 輸出內容 管理伺服器
curl -s http://MANAGEMENT_SERVER_HOST:8080/v1/organizations/ORGNAME/environments/ENVNAME/apis/APINAME/deployments > /tmp/deployments_output_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).json
敬上
API 和分類樹狀結構輸出內容 訊息處理器

取得針對特定機構載入的環境:

curl -s 0:8082/v1/runtime/organizations/ORGNAME/environments > /tmp/rmp_environments_list_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).txt

取得為特定 API Proxy 部署的修訂版本:

curl -s 0:8082/v1/runtime/organizations/ORGNAME/environments/ENVNAME/apis/APINAME/revisions > /tmp/rmp_api_APINAME_revisions_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).txt

取得分類樹狀結構:

curl -s 0:8082/v1/classification/tree > /tmp/rmp_classification_tree_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).json
敬上
訊息處理器記錄 訊息處理器
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*
tar cvzf /tmp/rmp_transactionlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/transactions*
tar cvzf /tmp/rmp_configurationlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/configurations*
tar cvzf /tmp/rmp_system_monitor_config_mp_logs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/edge-message-processor* /opt/apigee/var/log/edge-message-processor/config* /opt/apigee/var/log/edge-message-processor/system-monitor*
訊息處理器的記憶體快照資料 訊息處理器

取得即時記憶體快照資料:

sudo -u apigee jmap -dump:live,format=b,file=/opt/apigee/var/snapshot_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).hprof $(cat /opt/apigee/var/run/edge-message-processor/edge-message-processor.pid)

壓縮記憶體快照資料:

tar cvzf /tmp/rmp_heapdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/snapshot_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).hprof
壓縮所有診斷資料 訊息處理器
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/rmp_* 
敬上

502 Bad Gateway - 連線至上游時沒有直播

應對手冊

本節針對一些具體程序提供了相關資訊和指引, 並按照指示進行疑難排解及解決 502 Bad Gateway - no live upstreams while connecting to upstream

問題 記錄中的錯誤訊息 應對手冊
HTTP/1.1 502 Bad Gateway

<html>
<head>
<title>Error</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>An error occurred.</h1>
<p>Sorry, the page you are looking for is currently unavailable.<br/>
Please try again later.</p>
</body>
</html>

您會在 NGINX 錯誤記錄中看到以下錯誤:

(/opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME._error_log)

[error] 4796#4796: *56357443 no live upstreams while connecting to upstream, client: ROUTER_IP_ADDRESS, server: HOST_ALIAS, request: "PUT BASE_PATH HTTP/1.1", upstream: "http://LISTOFMP_IP_R_MP_PORT/BASE_PATH", host: "HOST_ALIAS"
502 閘道錯誤

診斷資訊

如果需要 Apigee Edge 支援的協助 502 Bad Gateway - no live streams while connecting to upstream,然後收集 下列診斷資訊,並在客服案件中分享:

診斷資訊 我可以在哪裡收集這項資訊? 如何收集這項資訊?
路由器記錄檔 路由器
tar cvzf /tmp/router_logs_ORGNAME_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*
敬上
訊息處理器記錄 訊息處理器
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

最高輸出內容、記憶體快照資料和執行緒傾印 訊息處理器

取得頂層指令輸出內容:

top -H -bn5 > /tmp/rmp_top_output_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).txt

取得記憶體快照資料:

sudo -u apigee jcmd $(cat /opt/apigee/var/run/edge-message-processor/edge-message-processor.pid) GC.heap_dump /opt/apigee/var/rmp_heapdump_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).hprof

取得執行緒傾印檔:

sudo -u apigee jcmd $(cat /opt/apigee/var/run/edge-message-processor/edge-message-processor.pid) Thread.print > /tmp/rmp_thread_print_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).tdump
敬上
壓縮所有診斷資料
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_* /opt/apigee/var/rmp_heapdump_*
敬上

502 無效閘道 - 達標意外事件

應對手冊

本節針對一些具體程序提供了相關資訊和指引, 按照下列指示排解問題及解決 502 Bad Gateway - Unexpected EOF At Target

錯誤回應/訊息 錯誤代碼 應對手冊
HTTP/1.1 502 Bad Gateway

{
   "fault": {
      "faultstring": "Unexpected EOF at target",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.UnexpectedEOFAtTarget"
       }
    }
}

messaging.adaptors.http.flow.UnexpectedEOFAtTarget 502 Bad Gateway Unexpected EOF (502 錯誤的閘道未預期的 EOF)

診斷資訊

如需 502 Bad Gateway - Unexpected EOF At TargetApigee Edge 支援服務相關協助, 然後收集下列診斷資訊,並在客服案件中分享:

診斷資訊 我可以在哪裡收集這項資訊? 如何收集這項資訊?
追蹤工具輸出內容可擷取失敗的 API 要求 Edge UI 如何使用追蹤工具
路由器記錄檔 路由器
tar cvzf /tmp/router_logs_ORGNAME_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*

訊息處理器記錄 訊息處理器
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

Tcpdumps 訊息處理器
sudo tcpdump -s 0 -i any host BACKENDSERVER_HOSTNAME -w /tmp/rmp_tcpdump_$(hostname).pcap
tar cvzf /tmp/rmp_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/$(hostname).pcap
敬上
壓縮所有診斷資料 路由器/訊息處理器
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*
敬上

TLS 握手失敗

應對手冊

本節針對一些具體程序提供了相關資訊和指引, 遵循以下指示,以排解及解決 TLS/SSL 握手失敗的問題:

錯誤訊息 應對手冊
Received fatal alert: handshake_failure TLS/SSL 握手失敗
Received fatal alert: bad_certificate SSL 握手失敗 - 用戶端憑證錯誤

診斷資訊

如果在 TLS/SSL 握手失敗方面需要 Apigee Edge 支援服務的協助,請收集 下列診斷資訊,並在客服案件中分享:

診斷資訊 我可以在哪裡收集這項資訊? 如何收集這項資訊?
追蹤工具輸出內容可擷取失敗的 API 要求 Edge UI 如何使用追蹤工具
路由器記錄檔 路由器
tar cvzf /tmp/router_logs_ORGNAME>_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*
敬上
訊息處理器記錄 訊息處理器
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

OpenSSL 指令輸出 訊息處理器

未啟用 SNI 的後端伺服器:

openssl s_client -connect BACKEND_SERVER_HOSTNAME:PORT -showcerts | tee /tmp/rmp_openssl_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).txt

已啟用 SNI 的後端伺服器:

openssl s_client -connect BACKEND_SERVER_HOSTNAME:PORT -server BACKEND_SERVER_HOSTNAME -showcerts | tee /tmp/rmp_openssl_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).txt
Tcpdumps 訊息處理器
sudo tcpdump -s 0 -i any host BACKEND_SERVER_HOSTNAME -w /tmp/$(hostname).pcap
tar cvzf /tmp/rmp_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/$(hostname).pcap
敬上
來自訊息處理器 KeyStore 和信任存放區的憑證 管理伺服器

從 KeyStore 取得憑證詳細資料:

curl -v http://MANAGEMENT_SERVER_HOST:PORT/v1/organizations/ORGNAME/environments/ENVNAME/keystores/KEYSTORENAME/certs/CERTNAME -u USERNAME

從 Truststore 取得憑證詳細資料:

curl -v http://MANAGEMENT_SERVER_HOSTPORT/v1/organizations/ORGNAME/environments/ENVNAME/keystores/TRUSTSTORENAME/certs/CERTNAME -u USERNAME
壓縮所有診斷資料 訊息處理器
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*
敬上