<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Symptom
Die Bereitstellung von API-Proxy-Versionen über die Edge-Benutzeroberfläche oder die Edge-Verwaltungs-API schlägt mit dem ZooKeeper-Fehler "Fehler beim Abrufen von untergeordneten Elementen für Pfad".
Fehlermeldungen
Error in deployment for environment prod. The revision is deployed, but traffic cannot flow. com.apigee.repository.RepositoryException{ code = repository.zookeeper.UnExpectedError, message = Unexpected error Error while fetching children for path : /organizations/myorg/environments/prod/apiproxies/tinkerbell/revisions, associated contexts = []};
Mögliche Ursachen
Die typische Ursache für diesen Fehler ist ein Problem mit der Netzwerkverbindung zwischen dem Message Processor und ZooKeeper.
Diagnose
Hinweis: Nur Edge Private Cloud-Nutzer können die folgenden Schritte ausführen. Wenn Sie die in Edge Public Cloud sind, wenden Sie sich an den Apigee Edge-Support.
- Rufen Sie mithilfe der Methode
folgenden Verwaltungs-API-Aufruf:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Beispiel für eine Ausgabe des Bereitstellungsstatus mit dem Fehler:
{ "environment" : [ { "name" : "prod", "revision" : [ { "configuration" : { "basePath" : "/", "steps" : [ ] }, "name" : "1", "server" : [ { "error" : "com.apigee.repository.RepositoryException: com.apigee.zookeeper.ZooKeeperException{ code = zookeeper.ErrorFetchingChildren, message = Error while fetching children for path : /organizations/gsc/environments/prod/apiproxies/apigee_test/revisions, associated contexts = []}", "status" : "error", "type" : [ "message-processor" ], "uUID" : "01fc5b23-8ad3-40bf-b059-2fc82cdac111" },
- Message Processor prüfen
(
/opt/apigee/var/log/edge-message-processor/system.log
)Beispielfehler aus dem Message Processor-Protokoll
2017-05-29 01:25:40,592 main ERROR KERNEL - MicroKernel.deployAll() : MicroKernel.deployAll() : Error in deploying the deployment : WebService com.apigee.zookeeper.ZooKeeperException: Error while checking path existence for path : /regions/dc-2/pods/gateway/servers/099c2603-93a4-4b73-ae03-a55d130adb80/reachable at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:410) ~[zookeeper-1.0.0.jar:na] at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:394) ~[zookeeper-1.0.0.jar:na] at com.apigee.services.repository.zookeeper.ZKRepository.exists(ZKRepository.java:280) ~[repository-impl-1.0.0.jar:na] at com.apigee.services.repository.RepositoryServiceImpl.exists(RepositoryServiceImpl.java:234) ~[repository-impl-1.0.0.jar:na] at com.apigee.registration.info.StatusBuilder.build(StatusBuilder.java:26) ~[registration-1.0.0.jar:na] at com.apigee.registration.ServerRegistrationServiceImpl.buildServerInfo(ServerRegistrationServiceImpl.java:856) ~[registration-1.0.0.jar:na] at com.apigee.registration.ServerRegistrationServiceImpl.start(ServerRegistrationServiceImpl.java:122) ~[registration-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.startService(ServiceDeployer.java:167) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:70) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:356) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:76) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:356) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:76) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.MicroKernel.deployAll(MicroKernel.java:178) [microkernel-1.0.0.jar:na] at com.apigee.kernel.MicroKernel.start(MicroKernel.java:139) [microkernel-1.0.0.jar:na] at com.apigee.kernel.MicroKernel.start(MicroKernel.java:135) [microkernel-1.0.0.jar:na] at com.apigee.kernel.MicroKernel.main(MicroKernel.java:84) [microkernel-1.0.0.jar:na] Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /regions/dc-2/pods/gateway/servers/099c2603-93a4-4b73-ae03-a55d130adb80/reachable at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1073) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:402) ~[zookeeper-1.0.0.jar:na] ... 16 common frames omitted
- Wenn ein ähnlicher Fehler wie im Beispiel oben auftritt, gehen Sie so vor:
Schritte:
<ph type="x-smartling-placeholder">
- </ph>
- Verbindung vom Message Processor zu ZooKeeper-Servern an Port 2181 testen
Gehen Sie dazu so vor:
<ph type="x-smartling-placeholder">
- </ph>
- Wenn Telnet verfügbar ist, verwenden Sie Telnet:
telnet <ZooKeeper-IP> 2181
- Falls Telnet nicht verfügbar ist, prüfen Sie die Verbindung mit Netcat wie folgt:
nc -vz <ZooKeeper-IP> 2181
- Wenn Sie die Antwort „Connection Refused“ erhalten oder "Zeitüberschreitung der Verbindung", für Ihr Netzwerkbetriebsteam. Gehen Sie zum Abschnitt Lösung unten.
- Wenn Telnet verfügbar ist, verwenden Sie Telnet:
- Verbindung vom Message Processor zu ZooKeeper-Servern an Port 2181 testen
Gehen Sie dazu so vor:
<ph type="x-smartling-placeholder">
- Wenden Sie sich dann an den Apigee Edge-Support.
Auflösung
Hinweis: Nur Edge Private Cloud-Nutzer können die folgenden Schritte ausführen. Wenn Sie die in Edge Public Cloud sind, wenden Sie sich an den Apigee Edge-Support.
- Arbeiten Sie mit Ihrem Netzwerkteam bei Folgendem zusammen:
<ph type="x-smartling-placeholder">
- </ph>
-
- Achten Sie darauf, dass die Verbindung zwischen dem Message Processor und allen ZooKeeper-Geräten zulässig ist an Port 2181 an.
- Entfernen Sie alle Firewallbeschränkungen oder eingerichteten Sicherheitsregeln von Message Processors, um Verbindungen zu Port 2181 auf den ZooKeeper-Servern zulassen.
- Wenn es ein Netzwerkproblem mit dem Message Processor gibt, wird der spezifische
Der Message Processor, der den Fehler (laut Bereitstellungsstatusausgabe) anzeigt, kann den Fehler
Problem. Starten Sie den spezifischen Message Processor neu:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee Edge-Support.
-