Problèmes d'exécution

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.

Les erreurs, les problèmes de latence ou les résultats inattendus observés lors de l'exécution de vos requêtes d'API sont appelés problèmes runtime.

Erreurs 4XX/5XX

Playbook

Cette section fournit des informations et des conseils sur certaines procédures spécifiques qui peuvent être suivies pour résoudre les erreurs 4XX et 5XX d'exécution.

Réponse/message d'erreur Code d'erreur Playbook
HTTP/1.1 500 Internal Server Error Varie en fonction de l'erreur 500 Erreur interne du serveur

et

500 Erreur interne du serveur : streaming activé

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

(La cause est due à des échecs de vérification de l'état)

503 Service indisponible : échecs de vérification de l'état NoActiveTargets
HTTP/1.1 503 Service Unavailable

(depuis le serveur backend)

messaging.adaptors.http.flow.ErrorResponseCode 503 Service indisponible – Serveur backend
HTTP/1.1 504 Gateway Timeout messaging.adaptors.http.flow.GatewayTimeout 504 Délai avant expiration de la passerelle
HTTP/1.1 504 Gateway Timeout

(depuis le serveur backend)

messaging.adaptors.http.flow.ErrorResponseCode 504 Délai avant expiration de la passerelle – Serveur de backend

Informations de diagnostic

Si vous avez besoin de l'aide de l'assistance Apigee Edge concernant les erreurs d'exécution 4XX (telles que 400, 401, 404 et 499) ou les erreurs 5XX (telles que 500, 503 et 504), rassemblez et partagez les journaux de diagnostic et les informations suivants dans la demande d'assistance :

Informations de diagnostic Où puis-je trouver ces informations ? Comment puis-je obtenir ces informations ?
Résultat de l'outil Trace capturant les requêtes API ayant échoué Interface utilisateur Edge Utiliser l'outil Trace
Journaux du routeur Routeur
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.*

Journaux du processeur de messages Processeur de messages
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

Compresser toutes les données de diagnostic
>tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*

Erreur 400 : requête incorrecte - Erreur de certificat SSL

Playbook

Cette section fournit des informations et des conseils sur certaines procédures spécifiques qui peuvent être suivies pour résoudre les problèmes liés à 400 Bad Request - SSL Certificate Error.

Message d'erreur Playbook
<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>

Erreur 400 Bad Request : erreur de certificat SSL

Informations de diagnostic

Si vous avez besoin de l'aide de l'assistance Apigee Edge concernant 400 Bad Request - SSL Certificate Error, rassemblez les informations de diagnostic suivantes et partagez-les dans la demande d'assistance :

Informations de diagnostic Où puis-je trouver ces informations ? Comment puis-je obtenir ces informations ?
Journaux du routeur Routeur
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 Routeur

Capturez les paquets réseau à l'aide de la commande tcpdump sur la machine du routeur :

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

Compressez le tcpdump :

tar cvzf /tmp/router_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/router_tcpdump_$(hostname).pcap
Tcpdumps Machine cliente

Capturez les paquets réseau à l'aide de la commande tcpdump sur la machine cliente :

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

Compressez le tcpdump :

tar cvzf /tmp/client_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/router_tcpdump_$(hostname).pcap
Compresser toutes les données de diagnostic Routeur
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router*

Erreur 404 "Impossible d'identifier le proxy pour l'hôte"

Playbook

Cette section fournit des informations et des conseils sur certaines procédures spécifiques à suivre pour résoudre les problèmes et l'erreur 404 Unable to identify proxy for host.

Message ou description de l'erreur Code d'erreur Playbook
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 Impossible d'identifier le proxy pour l'hôte

Informations de diagnostic

Si vous avez besoin de l'aide de l'assistance Apigee Edge concernant l'erreur 404 Unable to identify proxy for host, rassemblez les informations de diagnostic suivantes et partagez-les dans la demande d'assistance :

Informations de diagnostic Où puis-je trouver ces informations ? Comment puis-je obtenir ces informations ?
Résultat de l'API Deployments Serveur de gestion
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
Sortie de l'API et de l'arbre de classification Processeur de messages

Obtenez les environnements chargés pour une organisation spécifique :

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

Obtenez les révisions déployées pour un proxy d'API spécifique :

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

Obtenez l'arbre de classification :

curl -s 0:8082/v1/classification/tree > /tmp/rmp_classification_tree_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).json
Journaux du processeur de messages Processeur de messages
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*
Empreintes de la mémoire sur les processeurs de messages Processeur de messages

Obtenez l'empreinte de la mémoire en direct :

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)

Compressez l'empreinte de la mémoire :

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
Compresser toutes les données de diagnostic Processeur de messages
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/rmp_* 

502 : passerelle incorrecte – aucun flux en direct en amont lors de la connexion à l'amont

Playbook

Cette section fournit des informations et des conseils sur certaines procédures spécifiques qui peuvent être suivies pour résoudre les problèmes liés à 502 Bad Gateway - no live upstreams while connecting to upstream.

Problème Message d'erreur dans les journaux Playbook
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>

L'erreur suivante s'affiche dans les journaux d'erreurs 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 Passerelle incorrecte

Informations de diagnostic

Si vous avez besoin de l'aide de l'assistance Apigee Edge concernant 502 Bad Gateway - no live streams while connecting to upstream, rassemblez les informations de diagnostic suivantes et partagez-les dans la demande d'assistance :

Informations de diagnostic Où puis-je trouver ces informations ? Comment puis-je obtenir ces informations ?
Journaux du routeur Routeur
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.*
Journaux du processeur de messages Processeur de messages
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

Sortie "top", vidage du tas et vidages de thread Processeur de messages

Obtenez le résultat de la commande top :

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

Obtenez le fichier de vidage du tas :

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

Obtenez le vidage du thread :

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
Compresser toutes les données de diagnostic
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_* /opt/apigee/var/rmp_heapdump_*

502 Passerelle incorrecte – EOF inattendu au niveau de la cible

Playbook

Cette section fournit des informations et des conseils sur certaines procédures spécifiques qui peuvent être suivies pour dépanner et résoudre les problèmes liés à 502 Bad Gateway - Unexpected EOF At Target :

Réponse/message d'erreur Code d'erreur Playbook
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 Passerelle incorrecte : EOF inattendu

Informations de diagnostic

Si vous avez besoin de l'aide de l'assistance Apigee Edge concernant 502 Bad Gateway - Unexpected EOF At Target, rassemblez les informations de diagnostic suivantes et partagez-les dans la demande d'assistance :

Informations de diagnostic Où puis-je trouver ces informations ? Comment puis-je obtenir ces informations ?
Résultat de l'outil Trace capturant les requêtes API ayant échoué Interface utilisateur Edge Utiliser l'outil Trace
Journaux du routeur Routeur
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.*

Journaux du processeur de messages Processeur de messages
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 Processeur de messages
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
Compresser toutes les données de diagnostic Routeur/Processeur de messages
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*

Échecs du handshake TLS

Playbook

Cette section fournit des informations et des conseils sur certaines procédures spécifiques qui peuvent être suivies pour résoudre les échecs d'établissement de liaison TLS/SSL :

Message d'erreur Playbook
Received fatal alert: handshake_failure Échecs du handshake TLS/SSL
Received fatal alert: bad_certificate Échecs du handshake SSL : certificat client incorrect

Informations de diagnostic

Si vous avez besoin de l'aide de l'assistance Apigee Edge pour résoudre les échecs d'établissement de liaison TLS/SSL, rassemblez les informations de diagnostic suivantes et partagez-les dans la demande d'assistance :

Informations de diagnostic Où puis-je trouver ces informations ? Comment puis-je obtenir ces informations ?
Résultat de l'outil Trace capturant les requêtes API ayant échoué Interface utilisateur Edge Utiliser l'outil Trace
Journaux du routeur Routeur
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.*
Journaux du processeur de messages Processeur de messages
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

Résultat de la commande OpenSSL Processeur de messages

Serveur backend sans SNI :

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

Serveur backend avec SNI activé :

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 Processeur de messages
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
Certificats du keystore et du truststore du processeur de messages Serveur de gestion

Obtenez les détails du certificat à partir du keystore :

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

Obtenez les détails du certificat à partir du Truststore :

curl -v http://MANAGEMENT_SERVER_HOSTPORT/v1/organizations/ORGNAME/environments/ENVNAME/keystores/TRUSTSTORENAME/certs/CERTNAME -u USERNAME
Compresser toutes les données de diagnostic Processeur de messages
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*