Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation weitere Informationen
Videos
Weitere Informationen zu 503-Fehlern finden Sie in den folgenden Videos:
Video | Beschreibung |
---|---|
Fehlerbehebung und Behebung des Fehlers 503-Dienst nicht verfügbar – NoActiveTargets | Hier finden Sie Informationen zu folgenden Themen:
|
Symptom
Die Clientanwendung empfängt den HTTP-Antwortstatuscode 503 mit der Meldung Service Nicht verfügbar und dem Fehlercode NoActiveTargets für die API-Proxy-Anfragen.
Fehlermeldung
Sie erhalten die folgende Fehlerantwort:
HTTP/1.1 503 Service Unavailable
In der HTTP-Antwort wird die folgende Fehlermeldung angezeigt:
{ "fault": { "faultstring": "The Service is temporarily unavailable", "detail": { "errorcode": "messaging.adaptors.http.flow.NoActiveTargets" } } }
Mögliche Ursachen
Die HTTP-Antwort 503 Service Nicht verfügbar mit dem Fehlercode NoActiveTargets wird in der Regel 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 den Fehler 503 Service Nicht verfügbar mit dem Fehlercode NoActiveTargets aufgeführt:
Ursache | Beschreibung | Wer kann die Schritte zur Fehlerbehebung ausführen? |
---|---|---|
Zielserver ist deaktiviert | Der in der Zielendpunktkonfiguration angegebene Zielserver ist deaktiviert. | Nutzer von Edge Public und Private Cloud |
Verbindungsfehler aufgrund falscher DNS-Auflösung | Die DNS-Auflösung des Zielservers führte zu fehlerhaften IP-Adressen, die zu Verbindungsfehlern führten. | Edge Private Cloud-Nutzer |
Verbindungsfehler | Netzwerk- oder Verbindungsprobleme verhindern, dass der Client eine Verbindung zum Server herstellt. | Edge Private Cloud-Nutzer |
Falscher Zielhost-Alias | Der angegebene Zielserverhost ist falsch oder enthält unerwünschte Zeichen (z. B. Leerzeichen). | Nutzer von Edge Public und Private Cloud |
SSL-Handshakefehler | Der TLS/SSL-Handshake zwischen Client und Server ist fehlgeschlagen. | Nutzer von Edge Public und Private Cloud |
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 Konfiguration des Zielendpunkts angegebenen Zielserver deaktiviert sind, erhalten Sie die Antwort 503 Service Nicht verfügbar mit dem Fehlercode NoActiveTargets.
Diagnose
- Bestimmen Sie den Namen des Zielservers, der in der spezifischen Zielendpunktkonfiguration des fehlerhaften API-Proxys verwendet wird, mithilfe einer der folgenden Methoden:
- Wenn nur ein Zielendpunkt vorhanden ist, prüfen Sie diesen speziellen Zielendpunkt.
- Wenn es mehrere Zielendpunkte gibt und Sie nicht sicher sind, bei welchem 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-Dienst nicht verfügbar.
- Gehen Sie im Trace zu Zielanfragefluss gestartet und ermitteln Sie den Namen des Zielendpunkts wie unten gezeigt:
- Nachdem Sie den Zielendpunkt identifiziert haben, rufen Sie den Namen des Zielservers aus der Konfiguration des Zielendpunkts ab, 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, mithilfe der Edge-Benutzeroberfläche oder des Edge-API-Aufrufs.
Edge-Benutzeroberfläche
So rufen Sie die Definition mithilfe der Edge-Benutzeroberfläche ab:
- Gehen Sie zu Admin > Environments > Target Servers (Verwaltung > Umgebungen > Zielserver).
- Wählen Sie die Umgebung aus, in der der Fehler auftritt.
- Suchen Sie nach einem bestimmten Zielservernamen, um die Definition des Zielservers zu erhalten.
Wenn Sie beispielsweise den Zielservernamen
demo-target
eingeben, sehen Sie die entsprechende Definition:Hier sehen Sie, dass der Zielserver demo-target einen Hostalias und Port # hat und SSL aktiviert ist. Der Zielserver selbst ist jedoch deaktiviert . Dies wird daran angezeigt, dass das Element AKTIV ausgegraut ist.
Edge-API
So rufen Sie die Definition mithilfe der Edge API ab:
Verwenden Sie Get TargetServer API, um die Zielserverdefinition abzurufen.
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 das demo-target des Zielservers deaktiviert ist, da das Element IsEnabled auf „false“ gesetzt ist.
Da der Zielserver deaktiviert ist, sendet der Message Processor sofort als Antwort an den Client 503 Service Nicht verfügbar mit dem Fehlercode NoActiveTargets.
Auflösung
Achten Sie darauf, dass die spezifischen Zielserver, die in der Zielendpunktkonfiguration Ihres API-Proxys verwendet werden, immer aktiviert sind.
Edge-Benutzeroberfläche
- Gehen Sie zu Admin > Environments > Target Servers (Verwaltung > Umgebungen > Zielserver).
- Wählen Sie die Umgebung aus, in der der Fehler auftritt.
- Suchen Sie nach dem Namen des Zielservers, um dessen Definition abzurufen.
- 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
Aktualisieren Sie mit Update a Target Server API die Zielserverdefinition und achten Sie darauf, dass IsEnabled in der Nutzlast der API-Anfrage wie unten dargestellt auf true festgelegt ist:
<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, lesen Sie den Abschnitt Diagnoseinformationen müssen erfasst werden.
Probleme mithilfe des API-Monitoring diagnostizieren
Mit der API-Überwachung können Sie Problembereiche schnell isolieren, um Fehler-, Leistungs- und Latenzprobleme sowie deren Quelle zu diagnostizieren, z. B. Entwickleranwendungen, API-Proxys, Back-End-Ziele oder die API-Plattform.
Gehen Sie ein Beispielszenario durch, in dem gezeigt wird, wie Sie 5xx-Probleme mit Ihren APIs mithilfe von API Monitoring beheben können. Sie können beispielsweise eine Benachrichtigung einrichten, damit Sie informiert werden, wenn die Anzahl der Fehler vom Typ messaging.adaptors.http.flow.NoActiveTargets
einen bestimmten Grenzwert überschreitet.
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem nach Befolgen der obigen Anleitung weiterhin besteht, stellen Sie die folgenden Diagnoseinformationen zusammen. Kontaktieren Sie sie und geben Sie sie für den Apigee-Support frei:
- Wenn Sie die öffentliche Cloud nutzen, 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, bei denen der Fehler 503 „Dienst nicht verfügbar“ mit dem Fehlercode „NoActiveTargets“ ausgegeben wird
- Wenn Sie die private Cloud nutzen, geben Sie die folgenden Informationen an:
- Vollständige Fehlermeldung angezeigt
- Name der Umgebung
- API-Proxy-Bundle
- Ablaufverfolgungsdatei mit den Anfragen, bei denen der Fehler 503 „Dienst nicht verfügbar“ mit dem Fehlercode „NoActiveTargets“ ausgegeben wird
- 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
)