ランタイムに関する問題

現在、Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください
情報

API リクエストの実行中に確認されたエラー、レイテンシの問題、予期しない結果は、runtime の問題と呼ばれます。

4XX/5XX エラー

ハンドブック

このセクションでは、ランタイムの 4XX エラーと 5XX エラーのトラブルシューティングと解決に使用できる具体的な手順に関する情報とガイダンスを提供します。

エラー レスポンス/メッセージ エラーコード ハンドブック
HTTP/1.1 500 Internal Server Error 実際のエラーによって異なる 500 Internal Server Error(500 内部サーバーエラー)

このように

500 Internal Server Error - Streaming Enabled

HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.ServiceUnavailable 503 Service Unavailable
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets 503 Service Unavailable - NoActiveTargets
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets

(原因はヘルスチェックの失敗です)

503 Service Unavailable - NoActiveTargets Health Check Failures(503 サービス利用不可 - NoActiveTargets ヘルスチェック エラー)
HTTP/1.1 503 Service Unavailable

(バックエンド サーバーから)

messaging.adaptors.http.flow.ErrorResponseCode 503 Service Unavailable - Backend Server
HTTP/1.1 504 Gateway Timeout messaging.adaptors.http.flow.GatewayTimeout 504 Gateway Timeout
HTTP/1.1 504 Gateway Timeout

(バックエンド サーバーから)

messaging.adaptors.http.flow.ErrorResponseCode 504 Gateway Timeout - Backend Server

診断情報

4XX ランタイム エラー(400401404499 など)または 5XX500503504 など)エラーについて Apigee Edge サポートのサポートが必要な場合は、次の診断ログと情報をサポートケースで共有してください。

診断情報 この情報はどこで収集できますか? 情報を収集するにはどうすればよいですか?
失敗した API リクエストをキャプチャする Trace ツールの出力 Edge UI Trace ツールの使用方法
Router のログ ルーター
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.*

Message Processor のログ Message Processor
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 Bad Request エラー - 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 Bad Request Error - SSL Certificate Error(400 Bad Request エラー - SSL 証明書エラー)

診断情報

400 Bad Request - SSL Certificate Error について Apigee Edge サポートのサポートが必要な場合は、次の診断情報を収集してサポートケースで共有してください。

診断情報 この情報はどこで収集できますか? 情報を収集するにはどうすればよいですか?
Router のログ ルーター
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 ルーター

Router マシンで 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 ホストエラーのためプロキシを識別できません

ハンドブック

このセクションでは、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 unavailable: ホストのプロキシを識別できません

診断情報

404 Unable to identify proxy for host エラーについて Apigee Edge サポートのサポートが必要な場合は、次の診断情報を収集してサポートケースで共有してください。

診断情報 この情報はどこで収集できますか? 情報を収集するにはどうすればよいですか?
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 と分類ツリーの出力 Message Processor

特定の組織に対して読み込まれた環境を取得します。

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

特定の API プロキシ用にデプロイされたリビジョンを取得します。

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
Message Processor のログ Message Processor
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*
Message Processor のヒープダンプ Message Processor

ライブヒープダンプを取得します。

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
すべての診断データを圧縮する Message Processor
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 Bad Gateway

診断情報

502 Bad Gateway - no live streams while connecting to upstream について Apigee Edge サポートのサポートが必要な場合は、次の診断情報を収集してサポートケースで共有してください。

診断情報 この情報はどこで収集できますか? 情報を収集するにはどうすればよいですか?
Router のログ ルーター
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.*
Message Processor のログ Message Processor
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

上位出力、ヒープダンプ、スレッドダンプ Message Processor

最上位のコマンド出力を取得します。

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 Bad Gateway - ターゲットでの予期しない EOF

ハンドブック

このセクションでは、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 Bad Gateway - Unexpected EOF At Target について Apigee Edge サポートのサポートが必要な場合は、次の診断情報を収集してサポートケースで共有してください。

診断情報 この情報はどこで収集できますか? 情報を収集するにはどうすればよいですか?
失敗した API リクエストをキャプチャする Trace ツールの出力 Edge UI Trace ツールの使用方法
Router のログ ルーター
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.*

Message Processor のログ Message Processor
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 Message Processor
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
すべての診断データを圧縮する Router/Message Processor
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*

TLS handshake の失敗

ハンドブック

このセクションでは、TLS/SSL handshake の失敗のトラブルシューティングと解決に使用できる特定の手順に関する情報とガイダンスについて説明します。

エラー メッセージ ハンドブック
Received fatal alert: handshake_failure TLS/SSL handshake の失敗
Received fatal alert: bad_certificate SSL handshake エラー - 不正なクライアント証明書

診断情報

TLS/SSL handshake の失敗について Apigee Edge サポートのサポートが必要な場合は、次の診断情報を収集してサポートケースで共有してください。

診断情報 この情報はどこで収集できますか? 情報を収集するにはどうすればよいですか?
失敗した API リクエストをキャプチャする Trace ツールの出力 Edge UI Trace ツールの使用方法
Router のログ ルーター
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.*
Message Processor のログ Message Processor
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 コマンド出力 Message Processor

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 Message Processor
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
Message Processor のキーストアとトラストストアの証明書 管理サーバー

キーストアから証明書の詳細を取得します。

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

トラストストアから証明書の詳細を取得します。

curl -v http://MANAGEMENT_SERVER_HOSTPORT/v1/organizations/ORGNAME/environments/ENVNAME/keystores/TRUSTSTORENAME/certs/CERTNAME -u USERNAME
すべての診断データを圧縮する Message Processor
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*