<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Symptôme
Le déploiement des révisions de proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec Erreur ZooKeeper "Erreur lors de la récupération des enfants pour le chemin".
Messages d'erreur
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 = []};
Causes possibles :
La cause typique de cette erreur est un problème de connectivité réseau entre le processeur de messages et ZooKeeper.
Diagnostic
Remarque:Seuls les utilisateurs de cloud privé Edge peuvent effectuer les étapes suivantes. Si vous sont sur Edge Public Cloud, contactez l'assistance Apigee Edge.
- Obtenez le résultat de l'état du déploiement pour l'API spécifique qui affiche l'erreur à l'aide de la méthode
l'appel d'API de gestion suivant:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Exemple de résultat d'un état de déploiement indiquant l'erreur:
{ "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" },
- Vérifier le processeur de messages
(
/opt/apigee/var/log/edge-message-processor/system.log
).Exemple d'erreur dans le journal du processeur de messages
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
- Si vous constatez une erreur semblable à celle illustrée dans l'exemple ci-dessus, procédez comme suit :
étapes:
<ph type="x-smartling-placeholder">
- </ph>
- Tester la connectivité entre le processeur de messages et les serveurs ZooKeeper sur le port 2181
en procédant comme suit:
<ph type="x-smartling-placeholder">
- </ph>
- Si telnet est disponible, utilisez Telnet:
telnet <ZooKeeper-IP> 2181
- Si telnet n'est pas disponible, utilisez netcat pour vérifier la connectivité comme suit:
nc -vz <ZooKeeper-IP> 2181
- Si vous obtenez la réponse "Connexion refusée" ou "Connection timed out" (Expiration de la connexion), déclenchez votre de l'équipe des opérations réseau. Accédez à la section Résolution ci-dessous.
- Si telnet est disponible, utilisez Telnet:
- Tester la connectivité entre le processeur de messages et les serveurs ZooKeeper sur le port 2181
en procédant comme suit:
<ph type="x-smartling-placeholder">
- Si c'est le cas, contactez l'assistance Apigee Edge.
Solution
Remarque:Seuls les utilisateurs de cloud privé Edge peuvent effectuer les étapes suivantes. Si vous sont sur Edge Public Cloud, contactez l'assistance Apigee Edge.
- Collaborez avec l'équipe chargée de votre réseau pour:
<ph type="x-smartling-placeholder">
- </ph>
-
- Assurez-vous que la connectivité est autorisée entre le processeur de messages et tous les ZooKeeper nœuds sur le port 2181.
- Supprimez toutes les restrictions de pare-feu ou les règles de sécurité configurées des processeurs de messages pour permettent la connectivité au port 2181 sur les serveurs ZooKeeper.
- S'il y a un problème de réseau sur le processeur de messages, redémarrer le
Le processeur de messages qui affiche l'erreur (selon la sortie d'état du déploiement) peut résoudre le
problème. Redémarrez le processeur de messages spécifique:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Si le problème persiste, contactez l'assistance Apigee Edge.
-