Log adalah cara yang baik untuk memecahkan masalah terkait Apigee Hybrid penginstalan. Lihat Logging untuk mengetahui detailnya.
Anda dapat melihat log sinkronisasi Apigee menggunakan perintahkubectl logs
. Contoh:
kubectl logs -n apigee apigee-synchronizer-apigee-example-test
Entri log penyinkron
Tabel berikut menjelaskan {i>field<i} yang akan Anda lihat di File log penyinkron.
Kolom | Menunjukkan |
---|---|
org: |
Nama organisasi |
env: |
Nama lingkungan |
target: |
Jalur entity yang diwakili oleh entri log |
action: |
Tindakan SYNC=Tindakan sinkronisasi upstream
replikasi=Tindakan mereplikasi/mendownload |
context-id: |
Versi kontrak jika berlaku |
Contoh:
2019-02-05 00:00:59,098 org:hybrid env:test target: action:SYNC context-id: mode: Apigee-Timer-5 INFO CONFIG-CHANGE - SyncContext.syncUpStream() : Upstream sync started with https://apigee.googleapis.com
Memahami Log Sinkronisasi
Jika Anda perlu memecahkan masalah dengan Synchronizer, melihat file log. Tabel berikut dapat membantu Anda yang dapat dilihat di log Synchronizer. Lihat juga Logging.
Entri log | Apa maksudnya |
---|---|
org:test env:dev target: action:SYNC context-id: mode:
Apigee-Timer-0 INFO CONFIG-CHANGE - SyncContext.syncUpStream() :
Upstream sync
started with http://localhost:8080 |
Polling upstream dimulai untuk organisasi dan lingkungan tersebut, lalu diberikan URL bidang pengelolaan |
2019-01-21 16:58:02,275 org:test env:qa target:
action:SYNC context-id: mode: Apigee-Timer-1 INFO CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract poll returned 200 |
Kontrak berhasil diterima |
2019-01-21 16:58:02,536 org:test env:dev target:
action:SYNC context-id: mode: Apigee-Timer-0 INFO CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Received a new
contract version 20190121.090851.339 |
Versi kontrak diterima |
2019-01-21 17:58:56,530 org:test env:qa
target:/organizations/test/environments/qa action:REPLICATE
context-id:20190121.090859.699 mode: Apigee-Timer-1 INFO
CONFIG-CHANGE - ConfigReplicator.startReplication() :
Replication
started |
Menunjukkan awal Replikasi. Kolom MDC menunjukkan detail tentang hal yang direplikasi |
2019-01-21 17:58:56,654 org:test env:qa
target:/organizations/test/environments/qa/resourcefiles/js/JavaScriptCallout.js
action:REPLICATE context-id:20190121.090859.699 mode:
Apigee-Timer-1 INFO CONFIG-CHANGE -
ConfigReplicator.startReplication() : Replication
complete |
Menunjukkan Replikasi selesai. Kolom MDC menunjukkan detail tentang hal yang direplikasi |
2019-01-21 17:58:56,654 org:test env:qa
target:/organizations/test/environments/qa action:REPLICATE
context-id:20190121.090859.699 mode: Apigee-Timer-1
ERROR
CONFIG-CHANGE - ConfigReplicator.startReplication() : Replication
failed |
Menunjukkan error replikasi |
2019-01-21 17:59:00,246 org:test env:qa target:
action:SYNC context-id: mode: Apigee-Timer-1 INFO CONFIG-CHANGE -
SyncContext.syncUpStream() : Upstream sync finished in 4
seconds |
Menunjukkan akhir siklus sinkronisasi dan juga memberikan waktu yang dibutuhkan untuk sinkronisasi |
2019-01-21 18:00:00,249 org:test env:dev target:
action:SYNC context-id: mode: Apigee-Timer-1 INFO CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned 304 |
Menunjukkan bahwa kontrak yang lebih baru tidak tersedia |
2019-01-21 18:21:39,128 org:test env:qa target:
action:SYNC context-id: mode: Apigee-Timer-1 ERROR CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned error 0 |
Menunjukkan bahwa bidang pengelolaan tidak dapat dijangkau |
2019-01-21 18:21:39,128 org:test env:qa target:
action:SYNC context-id: mode: Apigee-Timer-1 ERROR CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned error 404 |
Menunjukkan bahwa bidang pengelolaan menampilkan respons 404 untuk kontrak |
2019-01-21 18:22:39,217 org:test1 env:dev target:
action:SYNC context-id: mode: Apigee-Timer-2 ERROR CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned error 403 |
Menunjukkan bahwa lingkungan yang disurvei tidak mendukung hybrid |
2019-01-21 18:22:39,217 org:test1 env:dev target:
action:SYNC context-id: mode: Apigee-Timer-2 ERROR CONFIG-CHANGE -
ManagementServerBasedReplicationContext.getContract() :
Upstream contract
poll returned error 401 |
Kredensial yang diberikan memiliki beberapa masalah |
Pemecahan masalah error
Log adalah cara yang baik untuk memecahkan masalah terkait penginstalan. Lihat Logging untuk mengetahui detailnya.
Sinkronisasi gagal dimulai
Berikut adalah beberapa kesalahan dan cara perbaikannya dijelaskan. Masing-masing pesan error ini dimulai dengan ErrorCode jenis sync.xxxxx. Di bawah ini adalah kemungkinan kode error
sync.NullOrEmptyConfig
Pesan: Null atau konfigurasi kosong yang disediakan melalui com.apigee.sync.config
Alasan: Anda akan melihat pesan error ini saat properti konfigurasi Sinkronkanr tidak disediakan mereka dapat terus berjalan dengan baik.
Solusi: Pastikan semua properti konfigurasi diisi dengan nilai yang sesuai.
sync.ConfigFileNotFound
Alasan: Synchronizer disetel untuk membaca properti konfigurasi dari sebuah file, tetapi file tersebut tidak dapat dimuat
Upaya Hukum: pastikan file tersedia dan dapat diakses selama booting Sinkronisasir
sync.IncorrectSettings
Alasan: Satu atau beberapa konfigurasi yang diperlukan hilang dari konfigurasi Sinkronisasi atau properti nilai yang berada di luar rentang yang diharapkan. Error seharusnya memiliki detail lebih lanjut tentang properti yang menyebabkan masalah. Kesalahan ini sudah dimasukkan ke dalam parser untuk memastikan bahwa dan kesalahan setelan akan ditangkap bahkan sebelum layanan dimulai.
Tabel berikut mencantumkan beberapa kemungkinan Setelan Salah error:
Error | Apa yang salah |
---|---|
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/retries numeric
instance is greater than the required maximum (maximum: 3, found:
20) |
Nilai yang dimasukkan ke kolom percobaan ulang di bagian controlPlane memiliki melebihi batas yang diizinkan |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/connectionTimeout
numeric instance is lower than the required minimum (minimum: 10,
found: 1) |
Nilai yang diberikan ke kolom connectionTimeout di controlPlane lebih rendah dari yang diizinkan |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane object has
missing required properties
([\"contractProvider\"]) |
bagian controlPlane tidak memiliki kolom wajib contractProvider |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/contractProvider
string \"http://\\uapi.apigee.com\" is not a valid
URI |
URI penyedia kontrak bukan URI yang valid |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments array is too
short: must have at least 1 elements but instance has 0
elements |
Array lingkungan harus memiliki setidaknya satu lingkungan |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"environmentName\"]) |
Lingkungan di indeks 0 tidak memiliki bidang wajib environmentName |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"organizationName\"]) |
Lingkungan di indeks 0 tidak memiliki bidang wajib organizationName |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0/pollInterval
numeric instance is lower than the required minimum (minimum: 60,
found: 6) |
Lingkungan pada indeks 0 memiliki interval polling yang berada di bawah batas yang diizinkan sebesar 60 |
Upaya Hukum: Perbaiki setelan untuk menyertakan hal yang diperlukan blokir
sync.ReplicationRootDoesNotExist
Alasan: Sinkronisasir dilengkapi dengan root replikasi yang tidak ada
Upaya hukum: pastikan folder root yang disediakan ada dan dapat ditulis
sync.ReadOnlyReplicationRoot
Alasan: Sinkronisasir dilengkapi dengan root replikasi yang tidak memiliki izin tulis
Upaya hukum: pastikan folder root yang disediakan ada dan dapat ditulis
sync.ReplicationRootNotADir
Alasan: Sinkronisasir dilengkapi dengan {i>root<i} replikasi yang mungkin berupa file
Upaya hukum: pastikan folder root yang disediakan ada dan dapat ditulis
sync.InvalidControlPlaneURL
Alasan: Sinkronisasir dilengkapi dengan URL konfigurasi yang kosong
Solusi: Pastikan folder root yang disediakan ada dan dapat ditulis
sync.InvalidControlPlaneSubscriptionURL
Alasan: Sinkronisasir dilengkapi dengan URL konfigurasi untuk pembuatan langganan salah, tidak lengkap, atau kosong.
Upaya Hukum: Koreksi URL menjadi URL konfigurasi yang valid untuk pembuatan langganan pub/sub untuk menangani sinyal dari bidang kontrol.
sync.InvalidControlPlaneUnsubscriptionURL
Alasan: Sinkronisasir dilengkapi dengan URL konfigurasi untuk penghapusan langganan salah, tidak lengkap, atau kosong.
Upaya Hukum: Koreksi URL menjadi URL konfigurasi yang valid untuk penghapusan langganan pub/sub untuk menangani sinyal dari bidang kontrol.
sync.CannotCreateEnvironmentFolder
Alasan: Sinkronisasir mencoba membuat folder untuk mereplikasi qa lingkungan tetapi tidak dapat membuat folder yang diperlukan
Upaya hukum: memastikan root replikasi tidak memiliki jalur yang bertentangan dengan nama yang sama yang file hanya-baca
sync.DuplicateEnvironmentEntries
Alasan: Lingkungan yang sama telah ditambahkan ke beberapa dalam konfigurasi.
Upaya Hukum: Setiap lingkungan hanya dapat ditentukan sekali.
sync.DiskExceedsAllowedCapacity
Alasan: Disk penyimpanan yang disediakan sudah berada kapasitas minimum yang disediakan melalui properti konfigurasi.
Solusi: Pastikan ada kapasitas disk yang cukup atau periksa apakah pengaturan penyimpanan dapat diatur untuk memungkinkan lebih banyak {i>disk<i} spasi.
sync.OwnershipClaimFailed
Alasan: Sinkronisasir mencoba mengklaim kepemilikan di folder lingkungan tetapi gagal
Upaya Hukum: setiap Sinkronisasi akan terlebih dahulu mencoba memastikan bahwa itu adalah satu-satunya penulis di sistem file. Error menunjukkan jalur dan alasan kegagalan. Mengatasi root penyebab
Error sinkronisasi selama runtime
Error Sinkronisasi berikut dapat terjadi selama runtime.
sync.replicators.PollReturnedError
Pesan terkait akan menyertakan status upstream. Berikut adalah status error
status 0
Alasan: Menunjukkan masalah konektivitas. Tujuan bidang manajemen tidak dapat dijangkau
Solusi: Pastikan detail bidang pengelolaan sudah benar dan contracts API dapat dijangkau
status 404
Alasan: Kemungkinan besar nama org/env bukan yang ditemukan di server
Solusi: Pastikan detail bidang pengelolaan sudah benar dan contracts API dapat dijangkau
status 401
Alasan: Kemungkinan besar kredensial yang diberikan tidak memiliki hak istimewa admin org.
Solusi: Pastikan bidang pengelolaan sudah benar dan contracts API dapat dijangkau
status 403
Alasan: Menunjukkan lingkungan yang sedang disurvei tidak disiapkan sebagai lingkungan hybrid
Upaya Hukum: Pastikan organisasi memiliki tanda yang diperlukan "features.hybrid.enabled=true"
sync.OwnershipClaimedByOther
Alasan: Selama operasi berlangsung, Synchronizer ditemukan bahwa {i>root file<i} sedang diakses oleh instance lain dari Penyinkron. (Ini dapat terjadi ketika sistem file digunakan secara bersamaan di antara Synchronizers.)
Solusi: Atasi akar masalah untuk memastikan tidak ada dua instance Sinkronkanr yang memiliki sistem file yang sama. Tujuan Sinkronisasi akan turun dengan sendirinya dan akan berada dalam yang tidak dapat dipulihkan di sini. Hal ini juga akan memastikan bahwa pihak lain Sinkronisasi yang mengakses root file yang sama akan diberi tahu melalui file kepemilikan mereka
sync.DiskExceedsAllowedCapacity
Alasan: Selama operasi Sinkronisasir menyadari bahwa kapasitas disk telah melampaui batas yang diizinkan batas tersebut.
Solusi: Pada tahap ini, Synchronizer akan dibatalkan unduhan apa pun dan cobalah operasi pembersihan file yang sudah basi. Namun, dapat menjadi kondisi berulang dan satu-satunya cara untuk memulihkan untuk memastikan bahwa Sinkronkanr memiliki memori {i>disk<i} yang cukup beroperasi.
Mendiagnosis kegagalan download kontrak
Jika Anda melihat "polling kontrak upstream" dalam pesan error, coba memanggil Contract API dan memeriksa detailnya, di mana nama pengguna nama pengguna Apigee (alamat email Anda). Kontrak mewakili seluruh koleksi data yang diunduh oleh Sinkronisasir dari dalam bidang manajemen.
Tidak ada residensi data
curl https://apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username
Residensi Data
curl https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username