Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
Síntoma
La implementación de revisiones del proxy de API mediante la IU o la API de administración de Edge falla con el Error de ZooKeeper "Error al obtener elementos secundarios para la ruta de acceso".
Mensajes de error
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 = []};
Causas posibles
La causa típica de este error es un problema de conectividad de red entre Message Processor. y ZooKeeper.
Diagnóstico
Nota: Solo los usuarios de la nube privada perimetral pueden realizar los siguientes pasos. Si están en la nube pública de Edge, comunícate con el equipo de asistencia de Apigee Edge.
- Obtén el resultado del estado de implementación de la API específica que muestra el error mediante
siguiente llamada a la API de Management:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Ejemplo de resultado del estado de implementación que muestra el error:
{ "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" },
- Revisa el Message Processor
(
/opt/apigee/var/log/edge-message-processor/system.log
).Error de muestra del registro de Message Processor
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 observas un error similar al que se muestra en el ejemplo anterior, realiza lo siguiente:
pasos:
- Probar la conectividad del procesador de mensajes a los servidores de ZooKeeper en el puerto 2181
siguiendo estos pasos:
- Si Telnet está disponible, utilízalo:
telnet <ZooKeeper-IP> 2181
- Si Telnet no está disponible, úsalo para verificar la conectividad de la siguiente manera:
nc -vz <ZooKeeper-IP> 2181
- Si obtienes la respuesta “Connection ReArtículo”, haz lo siguiente: o “Se agotó el tiempo de espera de la conexión”, interactúa con tu de operaciones de red. Ve a la sección Resolución a continuación.
- Si Telnet está disponible, utilízalo:
- Probar la conectividad del procesador de mensajes a los servidores de ZooKeeper en el puerto 2181
siguiendo estos pasos:
- Si observas alguna otra, comunícate con el equipo de asistencia de Apigee Edge.
Solución
Nota: Solo los usuarios de la nube privada perimetral pueden realizar los siguientes pasos. Si están en la nube pública de Edge, comunícate con el equipo de asistencia de Apigee Edge.
- Trabaja con tu equipo de red para hacer lo siguiente:
-
- Asegúrate de que se permita la conectividad entre el Message Processor y todos los ZooKeeper nodos en el puerto 2181.
- Quita las restricciones de firewall o las reglas de seguridad configuradas de Message Processors para permitir la conectividad con el puerto 2181 en los servidores de ZooKeeper.
- Si hay un problema de red en el Message Processor, reinicia el procesador
El procesador de mensajes que muestra el error (según el resultado del estado de implementación) podría corregir el error.
problema. Reinicia el procesador de mensajes específico:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Si el problema persiste, comunícate con el equipo de asistencia de Apigee Edge.
-