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 Edge Management API schlägt mit dem ZooKeeper-Fehler "Error while fetching children for path" fehl.
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 Edge Public Cloud verwenden, wenden Sie sich an den Apigee Edge-Support.
- Rufen Sie mit dem
folgenden Management API-Aufruf die Ausgabe des Bereitstellungsstatus für die spezifische API ab, die den Fehler enthält:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Beispiel für die 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" },
- Prüfen Sie den Message Processor
(
/opt/apigee/var/log/edge-message-processor/system.log).Beispielfehler aus dem Message Processor-Log
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 obigen Beispiel auftritt, führen Sie die folgenden
Schritte aus:
- Testen Sie die Verbindung vom Message Processor zu den ZooKeeper-Servern auf Port 2181
Gehen Sie dazu so vor:
- Wenn Telnet verfügbar ist, verwenden Sie es:
telnet <ZooKeeper-IP> 2181
- Wenn Telnet nicht verfügbar ist, prüfen Sie die Verbindung mit Netcat so:
nc -vz <ZooKeeper-IP> 2181
- Wenn Sie die Antwort „Connection Refused“ oder „Connection timed out“ erhalten, wenden Sie sich an Ihr Netzwerkbetriebsteam. Gehen Sie zum Abschnitt Auflösung unten.
- Wenn Telnet verfügbar ist, verwenden Sie es:
- Testen Sie die Verbindung vom Message Processor zu den ZooKeeper-Servern auf Port 2181
Gehen Sie dazu so vor:
- Wenn Sie andere Fehler feststellen, wenden Sie sich an den Apigee Edge-Support.
Auflösung
Hinweis:Nur Edge Private Cloud-Nutzer können die folgenden Schritte ausführen. Wenn Sie Edge Public Cloud verwenden, wenden Sie sich an den Apigee Edge-Support.
- Wenden Sie sich an Ihr Netzwerkteam, um Folgendes zu tun:
-
- Prüfen Sie, ob die Verbindung zwischen dem Message Processor und allen ZooKeeper Knoten auf Port 2181 zulässig ist.
- Entfernen Sie alle Firewall-Beschränkungen oder Sicherheitsregeln, die für Message Processors eingerichtet wurden, um die Verbindung zu Port 2181 auf den ZooKeeper-Servern zuzulassen.
- Wenn ein Netzwerkproblem beim Message Processor vorliegt, kann es möglicherweise behoben werden, indem Sie den spezifischen
Message Processor neu starten, der den Fehler enthält (gemäß der Ausgabe des Bereitstellungsstatus). 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.
-