現在、Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください。 情報
内容
次の図は、トレース セッションの開始時に Edge UI で API リクエストがキャプチャされないことを示しています。
エラー メッセージ
この問題が発生しても、Edge UI にエラー メッセージは表示されません。
考えられる原因
次の表に、Edge UI トレースで API リクエストのキャプチャに失敗した場合に考えられる原因を示します。
原因 | 説明 | 対象となるトラブルシューティング手順 |
---|---|---|
Message Processor で処理されないリクエスト | トレースをキャプチャするには、Edge のコンポーネントである Message Processor で API リクエストを処理する必要があります。API リクエストが Apigee Edge に到達できない場合、Edge へのエントリ ポイント(Router など)か、Message Processor で処理される前に障害が発生すると、トレースはキャプチャできません。 | Edge Public Cloud ユーザーと Private Cloud ユーザー |
分類ツリーで API プロキシが見つからない | Apigee Message Processor は、「分類ツリー」というルーティング ルール定義を使用して、受信リクエストのホスト名、ベースパス、リビジョン、環境に基づいてリクエストをディスパッチします。なんらかの理由で、関連する API プロキシが分類ツリーから削除された場合、Trace トランザクションにデータが表示されないことがあります。 | Edge Private Cloud ユーザー |
原因: リクエストが Message Processor で処理されない
診断
Trace セッションで API リクエストをキャプチャするには、Edge のコンポーネントである Message Processor で API リクエストを処理する必要があります。Trace トランザクションで API リクエストがキャプチャされない場合は、いくつかの理由が考えられます。
たとえば、API リクエストが Apigee Edge に到達できない場合、Edge へのエントリ ポイント(そのトランザクションが Message Processor で処理される前に障害が発生すると、トレースはキャプチャできなくなります。これらの各シナリオについて、以下で詳しく説明します。
シナリオ 1: リクエストが Apigee Edge に到達できない
原因
このシナリオでは、DNS の解決またはネットワーク接続の問題が原因でエラーが発生している可能性があります。その場合、このコマンドを実行するとき、次のエラーが表示される場合があります。
curl https://hostName:port/apiProxyBasePath/requestPath
curl: (6) Could not resolve host: hostName
解像度
DNS 構成を確認するには、次のコマンドを使用します。
dig hostName
ネットワーク接続を確認するには、次のコマンドを使用します。
telnet hostName port
シナリオ 2: Apigee Edge Router でリクエストが失敗する
原因
このシナリオでは、TLS/SSL handshake の失敗が原因でエラーが発生している可能性があります。その場合は、次のいずれかのエラーが表示されることがあります。
Received fatal alert: handshake_failure
HTTP/1.1 400 Bad Request
SSL 証明書のエラーが表示される場合もあります。
解像度
これらの問題のトラブルシューティングと解決については、以下のハンドブックをご覧ください。
シナリオ 3: Message Processor でリクエストを処理できない
原因
このシナリオでは、Apigee Message Processor は、指定された仮想ホストとパスの API プロキシを検出できません。その結果、次のいずれかのエラーが表示されることがあります。
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" } } }
解像度
この問題のトラブルシューティングと解決については、ハンドブック「404 unavailable for proxy for host」を参照してください。
原因: 分類ツリーで API プロキシが見つからない
診断
Message Processor が分類ツリーで API プロキシを検出できない場合、そのプロキシに対する API リクエストは Edge UI の Trace セッションに表示されません。
これかどうかを判断する手順は次のとおりです。
各 Message Processor にログインし、次のコマンドを使用して、リクエストされた API の特定のリビジョンが Message Processor の関連する環境にデプロイされているかどうかを確認します。
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
出力例:
上記のコマンドは、デプロイされたリビジョンのリストを出力します。たとえば、リビジョン 12 がデプロイされている場合は、次の出力が表示されます。
[ "12" ]
断続的に HTTP 404 エラーが発生しない限り、特定のリビジョンがデプロイされていることはよくわかります。
分類ツリーを読み取り、次のコマンドを使用して API プロキシ名が存在するかどうかを確認します。
curl -i http://localhost:8082/v1/classification/tree | grep apiName
Message Processor ごとに手順 1 と 2 を繰り返します。指定した API プロキシ名がいずれかの Message Processor の分類ツリーにない場合は、以下の解決策に従ってください。
解決策
次の手順に沿って、この問題を解決してください。リクエストの負荷が高い状態で Message Processor が再起動し、サービスが停止するのを回避するために、必要な対策を講じてください。
分類ツリーに特定の API プロキシがない各 Message Processor ホストにログインし、次のコマンドを使用して Message Processor を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
再起動したら、次のコマンドを使用して、再起動するまで待ちます。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
Message Processor の準備ができたら、次のコマンドを使用して API プロキシの可用性を確認します。
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
出力例:
上記のコマンドは、デプロイされたリビジョンのリストを出力します。たとえば、リビジョン 12 がデプロイされている場合は、次の出力が表示されます。
[ "12" ]
断続的に HTTP 404 エラーが発生しない限り、特定のリビジョンがデプロイされていることはよくわかります。
分類ツリーを読み取り、次のコマンドを使用して API プロキシ名が存在することを確認します。
curl -i http://localhost:8082/v1/classification/tree | grep apiName
問題が解決しない場合は、診断情報の収集が必要な場合に進みます。
診断情報の収集が必要
上記の手順を行っても問題が解決しない場合は、次の診断情報を収集して Apigee Edge サポートと共有してください。
診断情報のタイプ | コマンド |
---|---|
トレース セッション コマンドの出力 | curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user |
Management Server ログ | /opt/apigee/var/log/edge-management-server/logs/system.log |
Message Processor のログ | /opt/apigee/var/log/edge-message-processor/logs/system.log |
Management Server から Message Processor への telnet コマンドと netcat コマンドの出力 |
telnet MessageProcessor_IP 8082 nc -vz MessageProcessor_IP 8082 |
Message Processor で netstat コマンドの出力 | netstat -an > netstat.txt |
すべての Message Processor で特定の API プロキシに対してデプロイされた出力リスト リビジョン | curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions |
すべての Message Processor の分類ツリーの出力 | curl -i http://localhost:8082/v1/classification/tree |