503 Dienst nicht verfügbar – NoActiveTargets

<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">
    </ph>
  • Bedeutung von Zielservern und Zustandsüberwachungen
  • Echtzeit-Fehler „503 Service Nicht verfügbar – NoActiveTargets“ beheben

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

  1. Bestimmen Sie den Namen des Zielservers, der im jeweiligen Zielendpunkt verwendet wird Konfiguration des fehlerhaften API-Proxys mit einer der folgenden Methoden:
    1. Wenn es einen einzelnen Zielendpunkt gibt, prüfen Sie diesen.
    2. Wenn es mehrere Zielendpunkte gibt und Sie nicht sicher sind, bei welchem Endpunkt der Zielserver deaktiviert wurde, gehen Sie so vor:
      1. Aktivieren Sie die Trace-Sitzung, führen Sie den API-Aufruf aus und reproduzieren Sie das Problem – „503 Service Nicht verfügbar“.
      2. Gehen Sie im Trace zu Zielanfragefluss gestartet und bestimmen Sie den Namen des Zielendpunkts, wie unten gezeigt:
      3. Name des Zielendpunkts aus Trace wird ermittelt

  2. 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.

  3. 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:

    1. Klicken Sie auf Verwaltung > Umgebungen > Zielserver.
    2. Wählen Sie die spezifische Umgebung aus, in der der Fehler auftritt.
    3. 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:

      Name des Zielservers und Status „Aktiviert/deaktiviert“

      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

  1. Klicken Sie auf Verwaltung > Umgebungen > Zielserver.
  2. Wählen Sie die spezifische Umgebung aus, in der der Fehler auftritt.
  3. Suchen Sie nach dem Namen des Zielservers, um seine Definition zu erhalten.
  4. Wählen Sie den gewünschten Zielserver aus und klicken Sie auf Bearbeiten.
  5. Klicken Sie das Kästchen Aktiviert an.
  6. 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:

  1. Wenn Sie ein Nutzer der öffentlichen Cloud sind, geben Sie die folgenden Informationen an:
    1. Name der Organisation
    2. Name der Umgebung
    3. API-Proxy-Name
    4. Führen Sie den curl-Befehl aus, um den Fehler zu reproduzieren.
    5. Ablaufverfolgungsdatei mit den Anfragen an den Dienst 503 Service Unavailable mit Fehlercode "NoActiveTargets"
  2. Wenn Sie ein Nutzer der Private Cloud sind, geben Sie die folgenden Informationen an: <ph type="x-smartling-placeholder">
      </ph>
    1. Vollständige Fehlermeldung beobachtet
    2. Name der Umgebung
    3. API-Proxy-Bundle
    4. Ablaufverfolgungsdatei mit den Anfragen an den Dienst 503 Service Unavailable mit Fehlercode "NoActiveTargets"
    5. NGINX-Zugriffslogs

      (/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log)

    6. Message Processor-Protokolle

      (/opt/apigee/var/log/edge-message-processor/logs/system.log)