Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Gejala
Deployment revisi proxy API melalui UI Edge atau API pengelolaan Edge gagal dengan error ZooKeeper "Error saat mengambil turunan untuk jalur".
Pesan 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 = []};
Kemungkinan Penyebab
Penyebab umum error ini adalah masalah konektivitas jaringan antara Message Processor dan ZooKeeper.
Diagnosis
Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee Edge.
- Dapatkan output status deployment untuk API tertentu yang menunjukkan error menggunakan
panggilan Management API berikut:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Contoh output status deployment yang menunjukkan 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" },
- Periksa Pemroses Pesan (
/opt/apigee/var/log/edge-message-processor/system.log
).Contoh error dari log 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
- Jika Anda melihat error serupa seperti yang ditunjukkan dalam contoh di atas, lakukan langkah-langkah
berikut:
- Uji konektivitas dari Pemroses Pesan ke server ZooKeeper pada port 2181
menggunakan langkah-langkah berikut:
- Jika telnet tersedia, gunakan telnet:
telnet <ZooKeeper-IP> 2181
- Jika telnet tidak tersedia, gunakan netcat untuk memeriksa konektivitas sebagai berikut:
nc -vz <ZooKeeper-IP> 2181
- Jika Anda mendapatkan respons "Koneksi Ditolak" atau "Waktu tunggu koneksi habis", libatkan tim operasi jaringan Anda. Buka bagian Resolusi di bawah.
- Jika telnet tersedia, gunakan telnet:
- Uji konektivitas dari Pemroses Pesan ke server ZooKeeper pada port 2181
menggunakan langkah-langkah berikut:
- Jika Anda menemukan hal lain, hubungi Dukungan Apigee Edge.
Resolusi
Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee Edge.
- Bekerja samalah dengan tim jaringan Anda untuk:
-
- Pastikan konektivitas antara Pemroses Pesan dan semua node ZooKeeper diizinkan pada port 2181.
- Hapus semua pembatasan firewall atau penyiapan aturan keamanan dari Pemroses Pesan untuk memungkinkan konektivitas ke port 2181 di server ZooKeeper.
- Jika ada masalah jaringan pada Pemroses Pesan, memulai ulang Pemroses Pesan tertentu yang menunjukkan error (sesuai dengan output status deployment) mungkin dapat memperbaiki masalah tersebut. Mulai ulang Pemroses Pesan tertentu:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Jika masalah berlanjut, hubungi Dukungan Apigee Edge.
-