Anda melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Gejala
Deployment revisi proxy API melalui UI Edge atau management API gagal dengan error waktu tunggu habis.
Pesan Error
Click to change deployment status. The revision is deployed and traffic can flow, but flow may be impaired. Error: Call timed out; either server is down or server is not reachable
Kemungkinan Penyebab
Penyebab umum masalah ini adalah:
| Penyebab | Detail | Untuk |
| Masalah Konektivitas Jaringan | Kegagalan komunikasi antara Server Pengelolaan dan Pemroses Pesan karena masalah konektivitas jaringan atau aturan firewall. | Hanya Pengguna Cloud Pribadi |
| Paket Proxy API Besar | Pemroses Pesan mungkin memerlukan waktu lama untuk diaktifkan jika paket proxy API berukuran besar, sehingga menyebabkan waktu tunggu RPC habis. | Pengguna Cloud Pribadi dan Publik |
Masalah Konektivitas Jaringan
Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee Edge.
Diagnosis
- Dapatkan status deployment untuk API tertentu yang menampilkan error menggunakan panggilan API pengelolaan berikut:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Contoh output yang menampilkan error:
{ "error": "Call timed out; either server is down or server is not reachable", "status": "error", "type": [ "message-processor" ], "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" }, { "status": "deployed", "type": [ "message-processor" ], "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" }, { "status": "deployed", "type": [ "router" ], "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" }, { "status": "deployed", "type": [ "router" ], "state" : "error" }
Contoh output di atas menunjukkan bahwa error terjadi pada salah satu Pemroses Pesan yang memiliki UUID "
ebbc1078-cbde-4a00-a7db-66a3c1b2b748". - Berdasarkan output status deployment untuk proxy API Anda, login ke setiap Pemroses Pesan dengan UUID yang sesuai yang menampilkan error dan lakukan langkah-langkah berikut:
- Periksa apakah Pemroses Pesan memproses port 4528:
netstat -an | grep LISTEN | grep 4528
Jika Pemroses Pesan tidak memproses port 4528, mulai ulang Pemroses Pesan:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Periksa kembali status deployment proxy API menggunakan panggilan management API yang ditampilkan di langkah #1 di atas. Jika tidak ada error, berarti masalah telah teratasi.
- Periksa apakah Pemroses Pesan memproses port 4528:
- Jika masalah berlanjut, uji konektivitas dari Server Pengelolaan ke Pemroses Pesan di port 4528 menggunakan langkah-langkah berikut:
- Jika telnet tersedia, gunakan telnet:
telnet <MessageProcessor_IP> 4528
- Jika telnet tidak tersedia, gunakan netcat untuk memeriksa konektivitas sebagai berikut:
nc -vz <MessageProcessor_IP> 4528
- Jika Anda mendapatkan respons "Connection Refused" atau "Connection timed out", hubungi tim operasi jaringan Anda.
- Jika telnet tersedia, gunakan telnet:
- Uji konektivitas dari Pemroses Pesan ke Server Pengelolaan di port 4526
menggunakan langkah-langkah berikut:
- Jika telnet tersedia, gunakan telnet:
telnet <management-server-IP> 4526
- Jika telnet tidak tersedia, gunakan netcat untuk memeriksa konektivitas sebagai berikut:
nc -vz <management-server-IP> 4526
- Jika Anda mendapatkan respons "Connection Refused" atau "Connection timed out", hubungi tim operasi jaringan Anda.
- Jika telnet tersedia, gunakan telnet:
- Bekerja samalah dengan tim operasi jaringan Anda dan lakukan hal berikut:
- Pastikan protokol RPC diizinkan di Server Pengelolaan dan Pemroses Pesan.
- Hapus batasan firewall atau penyiapan aturan keamanan antara Server Pengelolaan dan Pemroses Pesan untuk mengizinkan konektivitas ke port 4526 di server pengelolaan, dan konektivitas dari Server Pengelolaan ke Pemroses Pesan di port 4528.
- Periksa kembali status deployment (lihat langkah #1 di atas). Jika Anda tidak melihat error, berarti error telah teratasi.
- Jika masalah berlanjut, periksa apakah ada masalah jaringan di Pemroses Pesan. Jika ada
masalah jaringan, memulai ulang Pemroses Pesan tertentu yang menampilkan error waktu tunggu habis (sesuai
output status deployment) dapat memperbaiki masalah:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jika masalah masih berlanjut, periksa log Server Pengelolaan di:
(
/opt/apigee/var/log/edge-management-server/logs/system.log).Contoh Error Waktu Tunggu Habis Panggilan dari Log Server Pengelolaan
2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true com.apigee.rpc.RPCException: Call timed out at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79]
Jika Anda melihat error serupa seperti yang ditunjukkan dalam contoh di atas, tingkatkan waktu tunggu RPC di Server Pengelolaan sehingga jika ada perlambatan jaringan, Server Pengelolaan akan memiliki waktu untuk terhubung ke Pemroses Pesan.
Resolusi
Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee Edge.
- Lakukan langkah-langkah berikut untuk meningkatkan waktu tunggu RPC:
- Buat file
/opt/apigee/customer/application/management-server.propertiesdi mesin Server Pengelolaan, jika belum ada. - Tambahkan baris berikut ke dalam file ini:
conf_cluster_rpc.connect.timeout=<time in seconds>
Nilai waktu tunggu RPC default adalah 10 dan sebaiknya ditingkatkan menjadi 40 detik. Tetapkan sebagai berikut:
conf_cluster_rpc.connect.timeout=40
- Pastikan file ini dimiliki oleh apigee:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Mulai ulang Server Pengelolaan:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Jika Anda memiliki lebih dari satu Server Pengelolaan, ulangi langkah-langkah di atas di semua Server Pengelolaan.
- Deploy proxy API di UI Edge atau menggunakan panggilan API pengelolaan Edge. Jika proxy API di-deploy tanpa masalah, berarti masalah telah teratasi.
- Buat file
- Jika masalah berlanjut, kumpulkan
tcpdump perintah dari Server Pengelolaan dan Pemroses Pesan. Aktifkan perintah tcpdump
di setiap server, lalu mulai deployment Proxy API dari UI
atau menggunakan management API:
- Jalankan perintah tcpdump di bawah dari Server Pengelolaan:
tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
- Jalankan perintah tcpdump di bawah dari Pemroses Pesan:
tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
- Hubungi Dukungan Apigee Edge untuk mendapatkan bantuan dalam menganalisis tcpdump dan memecahkan masalah lebih lanjut.
- Jalankan perintah tcpdump di bawah dari Server Pengelolaan:
Paket Proxy API Besar
Diagnosis
- Periksa ukuran paket proxy API yang mengalami error deployment.
- Jika ukurannya cukup besar (10 MB atau lebih tinggi), kemungkinan besar Pemroses Pesan memerlukan lebih banyak waktu untuk mengaktifkan proxy API.
- Jika ukuran paket Proxy API lebih besar dari 15 MB, lanjutkan ke Paket Proxy API lebih besar dari 15 MB.
Resolusi
Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee Edge.
Tingkatkan waktu tunggu RPC di Server Pengelolaan sehingga Pemroses Pesan memiliki cukup waktu untuk mengaktifkan paket proxy API besar. Lakukan langkah-langkah berikut untuk meningkatkan nilai waktu tunggu RPC:
- Buat file
/opt/apigee/customer/application/management-server.propertiesdi mesin Server Pengelolaan, jika belum ada. - Tambahkan baris berikut ke dalam file ini:
conf_cluster_rpc.connect.timeout=<time in seconds>
Nilai waktu tunggu RPC default adalah 10 dan sebaiknya ditingkatkan menjadi 40 detik. Tetapkan sebagai berikut:
conf_cluster_rpc.connect.timeout=40
- Pastikan file ini dimiliki oleh apigee:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Mulai ulang Server Pengelolaan:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Jika Anda memiliki lebih dari satu Server Pengelolaan, ulangi langkah-langkah di atas di semua Server Pengelolaan.
Jika masalah berlanjut, hubungi Dukungan Apigee Edge untuk mendapatkan bantuan lebih lanjut.