<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Videos
Weitere Informationen zu 503-Fehlern finden Sie in den folgenden Videos:
Video | Beschreibung |
---|---|
<ph type="x-smartling-placeholder"></ph> Fehlerbehebung und Behebung des Problems „503 Service Unavailable – NoActiveTargets“ | Hier finden Sie Informationen zu folgenden Themen:
<ph type="x-smartling-placeholder">
|
Symptom
Die Clientanwendung empfängt den HTTP-Antwortstatuscode 503 mit dem Parameter Service Nicht verfügbar und der Fehlercode NoActiveTargets für die API-Proxy-Anfragen.
Fehlermeldung
Sie sehen die folgende Fehlermeldung:
HTTP/1.1 503 Service Unavailable
Die HTTP-Antwort enthält die folgende Fehlermeldung:
{ "fault": { "faultstring": "The Service is temporarily unavailable", "detail": { "errorcode": "messaging.adaptors.http.flow.NoActiveTargets" } } }
Mögliche Ursachen
Die HTTP-Antwort 503 Service Unavailable mit dem Fehlercode NoActiveTargets wird normalerweise beobachtet wenn Sie einen oder mehrere Zielserver in der Zielendpunktkonfiguration in Ihrem API-Proxy verwenden.
In der folgenden Tabelle sind die möglichen Ursachen für die Antwort 503 Service Unavailable mit dem Fehlercode NoActiveTargets aufgeführt:
Ursache | Beschreibung | Wer die Schritte zur Fehlerbehebung durchführen kann |
---|---|---|
Zielserver ist deaktiviert | Der in der Zielendpunktkonfiguration angegebene Zielserver ist deaktiviert. | Edge-Nutzer von öffentlichen und privaten Clouds |
Verbindungsfehler aufgrund falscher DNS-Auflösung | Die DNS-Auflösung des Zielservers führte zu fehlerhaften IP-Adressen, die zu Verbindungsfehlern führen. | Edge Private Cloud-Nutzer |
Verbindungsfehler | Netzwerk- oder Verbindungsprobleme verhindern, dass der Client eine Verbindung zum Server herstellen kann. | Edge Private Cloud-Nutzer |
Falscher Alias für Zielhost | Der angegebene Zielserverhost ist falsch oder enthält unerwünschte Zeichen (z. B. Leerzeichen). | Edge-Nutzer von öffentlichen und privaten Clouds |
SSL-Handshake-Fehler | Der TLS/SSL-Handshake zwischen dem Client und dem Server ist fehlgeschlagen. | Edge-Nutzer von öffentlichen und privaten Clouds |
Fehler bei der Systemdiagnose | Systemdiagnosen, die zur Überprüfung des Zielservers konfiguriert sind, können aus irgendeinem Grund fehlschlagen. | Edge Private Cloud-Nutzer |
Ursache: Zielserver ist deaktiviert
Wenn alle in der Zielendpunktkonfiguration angegebenen Zielserver deaktiviert sind, erhalten Sie die Antwort 503 Service Unavailable mit dem Fehlercode NoActiveTargets.
Diagnose
- Bestimmen Sie den Namen des Zielservers, der im jeweiligen Zielendpunkt verwendet wird Konfiguration des fehlerhaften API-Proxys mit einer der folgenden Methoden:
- Wenn es einen einzelnen Zielendpunkt gibt, prüfen Sie diesen.
- Wenn es mehrere Zielendpunkte gibt und Sie nicht sicher sind, bei welchem Endpunkt der Zielserver deaktiviert wurde, gehen Sie so vor:
- Aktivieren Sie die Trace-Sitzung, führen Sie den API-Aufruf aus und reproduzieren Sie das Problem – „503 Service Nicht verfügbar“.
- Gehen Sie im Trace zu Zielanfragefluss gestartet und bestimmen Sie den Namen des Zielendpunkts, wie unten gezeigt:
- Nachdem Sie den Zielendpunkt identifiziert haben, rufen Sie den Namen des Zielservers ab, der aus der Zielendpunktkonfiguration verwendet wird, wie im folgenden Beispiel gezeigt:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
Im Beispiel oben gibt es einen einzelnen Zielserver mit dem Namen demo-target.
- Rufen Sie die Definition für jeden der Zielserver ab, die im Zielendpunkt verwendet werden, indem Sie die Edge-Benutzeroberfläche oder den Edge API-Aufruf verwenden.
Edge-Benutzeroberfläche
So rufen Sie die Definition mithilfe der Edge-Benutzeroberfläche ab:
- Klicken Sie auf Verwaltung > Umgebungen > Zielserver.
- Wählen Sie die spezifische Umgebung aus, in der der Fehler auftritt.
- Suchen Sie nach dem Namen des Zielservers, um die Zielserverdefinition zu erhalten.
Wenn Sie beispielsweise den Zielservernamen
demo-target
eingeben, wird Ihnen die Definition so angezeigt:Wie Sie sehen, hat der Zielserver demo-target einen Hostalias, Port # und SSL ist aktiviert. Der Zielserver selbst ist jedoch deaktiviert . Dies erkennen Sie daran, dass das Element AKTIVIERT ausgegraut ist.
Edge-API
So rufen Sie die Definition mithilfe der Edge API ab:
Verwenden Sie die Methode Rufen Sie die TargetServer API ab, um die Zielserverdefinition zu erhalten.
Ausgabe der Zielserverdefinition
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Die Apigee API-Ausgabe zeigt, dass der Zielserver demo-target deaktiviert ist. da das Element IsEnabled auf „false“ gesetzt ist.
Da der Zielserver deaktiviert ist, sendet der Message Processor 503 Service Nicht verfügbar mit dem Fehlercode NoActiveTargets sofort als Antwort an den Client.
Auflösung
Achten Sie darauf, dass die spezifischen Zielserver, die in der Zielendpunktkonfiguration Ihrer API verwendet werden, verwendet werden. Proxy sind immer aktiviert.
Edge-Benutzeroberfläche
- Klicken Sie auf Verwaltung > Umgebungen > Zielserver.
- Wählen Sie die spezifische Umgebung aus, in der der Fehler auftritt.
- Suchen Sie nach dem Namen des Zielservers, um seine Definition zu erhalten.
- Wählen Sie den gewünschten Zielserver aus und klicken Sie auf Bearbeiten.
- Klicken Sie das Kästchen Aktiviert an.
- Klicken Sie auf Aktualisieren.
Edge-API
Verwenden Sie die Methode Aktualisieren Sie eine Zielserver-API, um die Zielserverdefinition zu aktualisieren, und achten Sie darauf, dass IsEnabled ist in der Anfragenutzlast der API auf true gesetzt, wie unten gezeigt:
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Wenn das Problem weiterhin besteht, gehe zu Es müssen Diagnoseinformationen erfasst werden.
Probleme mithilfe von API-Monitoring diagnostizieren
Mit der API-Überwachung können Sie Probleme Fehler-, Leistungs- und Latenzprobleme sowie deren Quelle schnell diagnostizieren, z. B. Entwickler Anwendungen, API-Proxys, Back-End-Zielen oder die API-Plattform.
Schritt durch ein Beispielszenario
zeigt, wie Sie 5xx-Probleme mit Ihren APIs mithilfe von API-Monitoring beheben können. Beispiel:
können Sie eine Benachrichtigung einrichten, damit Sie informiert werden, sobald die Anzahl der messaging.adaptors.http.flow.NoActiveTargets
Fehler einen bestimmten Schwellenwert überschreiten.
Erfassen von Diagnoseinformationen erforderlich
Falls das Problem auch nach Befolgen der obigen Anleitung weiterhin besteht, stellen Sie folgende Daten zusammen: Diagnosedaten. Teilen Sie sie dem Apigee-Support mit:
- Wenn Sie ein Nutzer der öffentlichen Cloud sind, geben Sie die folgenden Informationen an:
- Name der Organisation
- Name der Umgebung
- API-Proxy-Name
- Führen Sie den curl-Befehl aus, um den Fehler zu reproduzieren.
- Ablaufverfolgungsdatei mit den Anfragen an den Dienst 503 Service Unavailable mit Fehlercode "NoActiveTargets"
- Wenn Sie ein Nutzer der Private Cloud sind, geben Sie die folgenden Informationen an:
<ph type="x-smartling-placeholder">
- </ph>
- Vollständige Fehlermeldung beobachtet
- Name der Umgebung
- API-Proxy-Bundle
- Ablaufverfolgungsdatei mit den Anfragen an den Dienst 503 Service Unavailable mit Fehlercode "NoActiveTargets"
- NGINX-Zugriffslogs
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
) - Message Processor-Protokolle
(
/opt/apigee/var/log/edge-message-processor/logs/system.log
)