Sie lesen gerade die Apigee Edge -Dokumentation.
Zur
Apigee X -Dokumentation. info
Symptom
Die Bereitstellung von API-Proxy-Revisionen über die Edge-Benutzeroberfläche oder die Management API schlägt mit einem Zeitüberschreitungsfehler fehl.
Fehlermeldungen
Click to change deployment status. The revision is deployed and traffic can flow, but flow may be impaired. Error: Call timed out; either server is down or server is not reachable
Mögliche Ursachen
Die typischen Ursachen für dieses Problem sind:
| Ursache | Details | Für |
| Problem mit der Netzwerkverbindung | Kommunikationsfehler zwischen Management Server und Message Processor aufgrund von Problemen mit der Netzwerk verbindung oder Firewallregeln. | Nur Nutzer der Private Cloud |
| Großes API-Proxy-Bundle | Die Aktivierung des Message Processor kann lange dauern, wenn das API-Proxy-Bundle groß ist , was zu RPC-Zeitüberschreitungen führt. | Nutzer der Private und Public Cloud |
Problem mit der Netzwerkverbindung
Hinweis:Nur Nutzer von Edge Private Cloud können die folgenden Schritte ausführen. Wenn Sie Edge Public Cloud verwenden, wenden Sie sich an den Apigee Edge-Support.
Diagnose
- Rufen Sie den Bereitstellungsstatus für die spezifische API ab, bei der der Fehler aufgetreten ist, indem Sie den folgenden
Management API-Aufruf verwenden:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Beispielausgabe mit dem Fehler:
{ "error": "Call timed out; either server is down or server is not reachable", "status": "error", "type": [ "message-processor" ], "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" }, { "status": "deployed", "type": [ "message-processor" ], "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" }, { "status": "deployed", "type": [ "router" ], "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" }, { "status": "deployed", "type": [ "router" ], "state" : "error" }
Die obige Beispielausgabe zeigt, dass der Fehler bei einem der Message Processors mit der UUID "
ebbc1078-cbde-4a00-a7db-66a3c1b2b748" aufgetreten ist. - Melden Sie sich anhand der Ausgabe des Bereitstellungsstatus für Ihren API-Proxy bei jedem der Message
Processors mit der entsprechenden UUID an, bei dem der Fehler aufgetreten ist, und führen Sie die folgenden Schritte aus:
- Prüfen Sie, ob der Message Processor den Port 4528 überwacht:
netstat -an | grep LISTEN | grep 4528
Wenn der Message Processor den Port 4528 nicht überwacht, starten Sie ihn neu:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Prüfen Sie den Bereitstellungsstatus des API-Proxys noch einmal mit dem Management API-Aufruf in Schritt 1 oben. Wenn keine Fehler auftreten, ist das Problem behoben.
- Prüfen Sie, ob der Message Processor den Port 4528 überwacht:
- Wenn das Problem weiterhin besteht, testen Sie die Verbindung vom Management Server zum Message
Processor an Port 4528. Gehen Sie dazu so vor:
- Wenn Telnet verfügbar ist, verwenden Sie es:
telnet <MessageProcessor_IP> 4528
- Wenn Telnet nicht verfügbar ist, prüfen Sie die Verbindung mit Netcat so:
nc -vz <MessageProcessor_IP> 4528
- Wenn Sie die Antwort „Connection Refused“ (Verbindung abgelehnt) oder „Connection timed out“ (Zeitüberschreitung bei Verbindung) erhalten, wenden Sie sich an Ihr Netzwerkbetriebsteam.
- Wenn Telnet verfügbar ist, verwenden Sie es:
- Testen Sie die Verbindung vom Message Processor zum Management Server an Port 4526
Gehen Sie dazu so vor:
- Wenn Telnet verfügbar ist, verwenden Sie es:
telnet <management-server-IP> 4526
- Wenn Telnet nicht verfügbar ist, prüfen Sie die Verbindung mit Netcat so:
nc -vz <management-server-IP> 4526
- Wenn Sie die Antwort „Connection Refused“ (Verbindung abgelehnt) oder „Connection timed out“ (Zeitüberschreitung bei Verbindung) erhalten, wenden Sie sich an Ihr Netzwerkbetriebsteam.
- Wenn Telnet verfügbar ist, verwenden Sie es:
- Arbeiten Sie mit Ihrem Netzwerkbetriebsteam zusammen und führen Sie die folgenden Schritte aus:
- Achten Sie darauf, dass das RPC-Protokoll sowohl auf dem Management Server als auch auf dem Message Processor zulässig ist.
- Entfernen Sie alle Firewallbeschränkungen oder Sicherheitsregeln, die zwischen den Management Servern und Message Processors eingerichtet sind, um Verbindungen zu Port 4526 auf dem Management Server und Verbindungen vom Management Server zu Message Processors an Port 4528 zuzulassen.
- Prüfen Sie den Bereitstellungsstatus noch einmal (siehe Schritt 1 oben). Wenn keine Fehler auftreten, ist das Problem behoben.
- Wenn das Problem weiterhin besteht, prüfen Sie, ob ein Netzwerkproblem auf dem Message Processor vorliegt. Wenn ein Netzwerkproblem vorliegt, kann das Problem möglicherweise durch einen Neustart des Message Processor behoben werden, bei dem der Zeitüberschreitungsfehler aufgetreten ist (siehe Ausgabe des Bereitstellungsstatus):
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Wenn das Problem weiterhin besteht, prüfen Sie die Management Server-Protokolle unter:
(
/opt/apigee/var/log/edge-management-server/logs/system.log).Beispiel für einen Zeitüberschreitungsfehler im Management Server-Protokoll
2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true com.apigee.rpc.RPCException: Call timed out at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79]
Wenn ein ähnlicher Fehler wie im obigen Beispiel auftritt, erhöhen Sie die RPC Zeitüberschreitung auf dem Management Server. So hat der Management Server bei einer Verlangsamung des Netzwerks genügend Zeit, eine Verbindung zum Message Processor herzustellen.
Auflösung
Hinweis:Nur Nutzer von Edge Private Cloud können die folgenden Schritte ausführen. Wenn Sie Edge Public Cloud verwenden, wenden Sie sich an den Apigee Edge-Support.
- Führen Sie die folgenden Schritte aus, um die RPC-Zeitüberschreitung zu erhöhen:
- Erstellen Sie auf dem Management Server die Datei
/opt/apigee/customer/application/management-server.properties, falls sie noch nicht vorhanden ist. - Fügen Sie dieser Datei die folgende Zeile hinzu:
conf_cluster_rpc.connect.timeout=<time in seconds>
Der Standardwert für die RPC-Zeitüberschreitung ist 10. Es wird empfohlen, ihn auf 40 Sekunden zu erhöhen. Legen Sie ihn so fest:
conf_cluster_rpc.connect.timeout=40
- Achten Sie darauf, dass der Eigentümer dieser Datei „apigee“ ist:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Starten Sie den Management Server neu:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Wenn Sie mehr als einen Management Server haben, wiederholen Sie die obigen Schritte auf allen den Management Servern.
- Stellen Sie den API-Proxy in der Edge-Benutzeroberfläche oder mit dem Edge Management API-Aufruf bereit. Wenn der API-Proxy ohne Probleme bereitgestellt wird, ist das Problem behoben.
- Erstellen Sie auf dem Management Server die Datei
- Wenn das Problem weiterhin besteht, erfassen Sie den
tcpdump-Befehl vom Management Server und Message Processor. Aktivieren Sie den tcpdump
Befehl auf jedem der Server und starten Sie dann die Bereitstellung des API-Proxys über die Benutzeroberfläche
oder die Management API:
- Führen Sie den folgenden tcpdump-Befehl auf dem Management Server aus:
tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
- Führen Sie den folgenden tcpdump-Befehl auf dem Message Processor aus:
tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
- Wenden Sie sich an den Apigee Edge-Support, um Unterstützung bei der Analyse der tcpdumps und der weiteren Fehlerbehebung zu erhalten.
- Führen Sie den folgenden tcpdump-Befehl auf dem Management Server aus:
Großes API-Proxy-Bundle
Diagnose
- Prüfen Sie die Größe des API-Proxy-Bundles, bei dem der Bereitstellungsfehler auftritt.
- Wenn die Größe relativ groß ist (10 MB oder mehr), benötigt der Message Processor wahrscheinlich mehr Zeit, um den API-Proxy zu aktivieren.
- Wenn die Größe des API-Proxy-Bundles mehr als 15 MB beträgt, fahren Sie mit API-Proxy-Bundle größer als 15 MB fort.
Auflösung
Hinweis:Nur Nutzer von Edge Private Cloud können die folgenden Schritte ausführen. Wenn Sie Edge Public Cloud verwenden, wenden Sie sich an den Apigee Edge-Support.
Erhöhen Sie die RPC-Zeitüberschreitung auf dem Management Server, damit der Message Processor genügend Zeit hat, große API-Proxy-Bundles zu aktivieren. Führen Sie die folgenden Schritte aus, um den Wert für die RPC-Zeitüberschreitung zu erhöhen:
- Erstellen Sie auf dem Management Server die Datei
/opt/apigee/customer/application/management-server.properties, falls sie noch nicht vorhanden ist. - Fügen Sie dieser Datei die folgende Zeile hinzu:
conf_cluster_rpc.connect.timeout=<time in seconds>
Der Standardwert für die RPC-Zeitüberschreitung ist 10. Es wird empfohlen, ihn auf 40 Sekunden zu erhöhen. Legen Sie ihn so fest:
conf_cluster_rpc.connect.timeout=40
- Achten Sie darauf, dass der Eigentümer dieser Datei „apigee“ ist:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Starten Sie den Management Server neu:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Wenn Sie mehr als einen Management Server haben, wiederholen Sie die obigen Schritte auf allen Management Servern.
Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee Edge-Support.