Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Sintomo
Il deployment delle revisioni del proxy API tramite la UI di Edge o l'API di gestione perimetrale non va a buon fine Errore ZooKeeper "Errore durante il recupero dei percorsi secondari".
Messaggi di errore
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 = []};
Possibili cause
La causa tipica di questo errore è un problema di connettività di rete tra il processore di messaggi e ZooKeeper.
Diagnosi
Nota: solo gli utenti Edge Private Cloud possono eseguire i seguenti passaggi. Se sono su Edge Public Cloud, contatta l'assistenza Apigee Edge.
- Ottieni l'output dello stato del deployment per l'API specifica che mostra l'errore utilizzando
seguente chiamata all'API di gestione:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Esempio di output dello stato del deployment che mostra l'errore:
{ "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" },
- Controllare il processore di messaggi
(
/opt/apigee/var/log/edge-message-processor/system.log
)Esempio di errore nel log del processore di messaggi
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
- Se noti un errore simile a quello mostrato nell'esempio precedente, procedi nel seguente modo:
passaggi:
- Verifica la connettività dal processore di messaggi ai server ZooKeeper sulla porta 2181
seguendo questi passaggi:
- Se telnet è disponibile, utilizza telnet:
telnet <ZooKeeper-IP> 2181
- Se telnet non è disponibile, utilizza netcat per controllare la connettività come segue:
nc -vz <ZooKeeper-IP> 2181
- Se ricevi la risposta "Connessione rifiutata" o "Sessione di connessione scaduta", del team delle operazioni di rete. Vai alla sezione Risoluzione di seguito.
- Se telnet è disponibile, utilizza telnet:
- Verifica la connettività dal processore di messaggi ai server ZooKeeper sulla porta 2181
seguendo questi passaggi:
- Se noti altre anomalie, contatta l'assistenza Apigee Edge.
Risoluzione
Nota: solo gli utenti Edge Private Cloud possono eseguire i seguenti passaggi. Se sono su Edge Public Cloud, contatta l'assistenza Apigee Edge.
- Collabora con il tuo team di rete per:
-
- Assicurati che la connettività sia consentita tra il processore di messaggi e tutti gli ZooKeeper sulla porta 2181.
- Rimuovi eventuali restrizioni del firewall o regole di sicurezza configurate dai processori di messaggi per consenti la connettività alla porta 2181 sui server di ZooKeeper.
- Se si verifica un problema di rete sul processore di messaggi, il riavvio dello specifico
Il processore di messaggi che mostra l'errore (in base all'output dello stato del deployment) potrebbe risolvere il problema
problema. Riavvia il processore di messaggi specifico:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Se il problema persiste, contatta l'assistenza Apigee Edge.
-