I log sono un ottimo modo per risolvere i problemi relativi all'installazione ibrida di Apigee. Per maggiori dettagli, consulta Registrazione.
Puoi visualizzare i log delle sincronizzazioni Apigee utilizzando il comandokubectl logs
. Ad esempio:
kubectl logs -n apigee apigee-synchronizer-apigee-example-test
Voci di log del sincronizzatore
La tabella seguente descrive i campi visualizzati nei file di log di Synchronizer.
Campo | Indica |
---|---|
org: |
Nome dell'organizzazione |
env: |
Nome ambiente |
target: |
Percorso dell'entità rappresentata dalla voce di log |
action: |
Azione SYNC=Azione di sincronizzazione upstream
REPLICATE=Azione di replica/download |
context-id: |
La versione del contratto, ove applicabile |
Ad esempio:
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
Informazioni sui log del sincronizzatore
Se devi risolvere un problema con il sincronizzatore, esamina i file di log. La tabella seguente può aiutarti risolvere gli errori che possono essere visualizzati nei log del Sincronizzatore. Vedi anche Logging.
Voce di log | Che cosa significa |
---|---|
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 |
È stato avviato il sondaggio upstream per l'organizzazione e l'ambiente e è stato fornito l'URL del piano di gestione |
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 |
Il contratto è stato ricevuto |
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 |
È stata ricevuta una versione del contratto |
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 |
Indica l'inizio della replica. I campi MDC indicano i dettagli su ciò che viene replicato |
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 |
Indica che la replica è stata completata. I campi MDC indicano i dettagli su ciò che viene replicato |
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 |
Indica un errore di replica |
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 |
Indica la fine di un ciclo di sincronizzazione e fornisce anche il tempo impiegato per la sincronizzazione |
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 |
Indica che non era disponibile un contratto più recente |
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 |
Indica che il piano di gestione non era raggiungibile |
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 |
Indica che il piano di gestione ha restituito una risposta 404 per il contratto |
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 |
Indica che l'ambiente per il polling non è abilitato per ambienti ibridi |
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 |
Le credenziali fornite presentano alcuni problemi |
Risoluzione dei problemi
I log sono un buon modo per risolvere i problemi relativi all'installazione. Per maggiori dettagli, consulta Registrazione.
Impossibile avviare il programma di sincronizzazione
Di seguito sono riportati alcuni errori e la relativa correzione. Ogni messaggio di errore inizia con un ErrorCode di tipo sync.xxxxx. Di seguito sono riportati i possibili codici di errore
sync.NullOrEmptyConfig
Messaggio: configurazione nulla o vuota fornita tramite com.apigee.sync.config
Motivo: questo messaggio di errore viene visualizzato quando le proprietà di configurazione di Synchronizer non sono state fornite correttamente.
Correzione: assicurati che tutte le proprietà di configurazione siano completate con valori appropriati.
sync.ConfigFileNotFound
Motivo: il sincronizzatore è stato impostato per leggere le sue proprietà di configurazione da un file, ma non è stato possibile caricare il file
Soluzione:assicurati che il file sia disponibile e accessibile durante l'avvio del sincronizzatore
sync.IncorrectSettings
Motivo: nella configurazione di Synchronizer mancano una o più proprietà di configurazione obbligatorie o i relativi valori non rientrano nell'intervallo previsto. L'errore deve avere ulteriori dettagli sulla proprietà esatta che causa il problema. Questi errori sono integrati nel parser per garantire che, e gli errori di impostazione vengono rilevati anche prima dell'avvio del servizio.
La seguente tabella elenca alcuni possibili errori IncorrectSettings:
Errore | Qual è il problema |
---|---|
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/retries numeric
instance is greater than the required maximum (maximum: 3, found:
20) |
Il valore fornito al campo Nuovi tentativi nella sezione ControlPlane è ha superato il limite consentito |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/connectionTimeout
numeric instance is lower than the required minimum (minimum: 10,
found: 1) |
Valore fornito al campo connectionTimeout in controlPlane la sezione è inferiore a quella consentita |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane object has
missing required properties
([\"contractProvider\"]) |
Nella sezione controlPlane manca il campo obbligatorio contractProvider |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/contractProvider
string \"http://\\uapi.apigee.com\" is not a valid
URI |
L'URI del fornitore del contratto non è valido |
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 |
L'array environments deve avere almeno un ambiente |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"environmentName\"]) |
Nell'ambiente all'indice 0 manca il campo obbligatorio environmentName |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"organizationName\"]) |
Nell'ambiente all'indice 0 manca il campo obbligatorio 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) |
L'ambiente all'indice 0 ha un intervallo di polling inferiore al limite consentito di 60 |
Rimedio:correggi l'impostazione in modo da includere i valori richiesti. blocca
sync.ReplicationRootDoesNotExist
Motivo: al sincronizzatore è stato fornito un elemento radice di replica che non esiste
Soluzione:assicurati che la cartella principale fornita esiste ed è scrivibile
sync.ReadOnlyReplicationRoot
Motivo: a Synchronizer è stato fornito un directory principale di replica che non dispone delle autorizzazioni di scrittura
Correzione: assicurati che la cartella principale fornita esista e sia scrivibile
sync.ReplicationRootNotADir
Motivo: a Synchronizer è stato fornito un directory principale di replica che potrebbe essere un file
Soluzione:assicurati che la cartella principale fornita esiste ed è scrivibile
sync.InvalidControlPlaneURL
Motivo: a Synchronizer è stato fornito un URL di configurazione vuoto
Correzione: assicurati che la cartella principale fornita esista e sia scrivibile
sync.InvalidControlPlaneSubscriptionURL
Motivo: il sincronizzatore è stato fornito con un URL di configurazione errato, incompleto o vuoto per la creazione dell'abbonamento.
Soluzione:correggi l'URL inserendo un URL di configurazione valido per Creazione di abbonamenti Pub/Sub per gestire gli indicatori dal piano di controllo.
sync.InvalidControlPlaneUnsubscriptionURL
Motivo: a Synchronizer è stato fornito un URL di configurazione errato, incompleto o vuoto per l'eliminazione dell'abbonamento.
Correzione: correggi l'URL in modo che sia un URL di configurazione valido per l'eliminazione dell'abbonamento Pub/Sub per gestire gli indicatori dal piano di controllo.
sync.CannotCreateEnvironmentFolder
Motivo: lo strumento di sincronizzazione ha provato a creare una cartella per la replica dell'ambiente di QA, ma non è riuscito a creare la cartella richiesta
Correzione: assicurati che la radice della replica non abbia un percorso in conflitto con lo stesso nome che sia di sola lettura di un file
sync.DuplicateEnvironmentEntries
Motivo: nello stesso ambiente sono stati aggiunti più elementi volte nella configurazione.
Rimedio: ogni ambiente può essere specificato solo una volta sola.
sync.DiskExceedsAllowedCapacity
Motivo: il disco di archiviazione fornito si trova già nella posizione soglia fornita tramite le proprietà di configurazione.
Soluzione:assicurati che lo spazio su disco o controlla se le impostazioni di archiviazione possono essere modificate per consentire spazio.
sync.OwnershipClaimFailed
Motivo: lo strumento di sincronizzazione ha provato a rivendicare la proprietà della cartella dell'ambiente, ma non ci è riuscito
Rimedio: ogni sincronizzatore proverà prima a verifica che sia l'unico autore del file system. Errore indica il percorso e il motivo dell'errore. Risolvi la causa di fondo
Errori del sincronizzatore durante il runtime
Durante il runtime possono verificarsi i seguenti errori del sincronizzatore.
sync.replicators.PollReturnedError
Il messaggio associato includerà lo stato upstream. Di seguito sono riportati gli stati di errore
status 0
Motivo: indica un problema di connettività. La il piano di gestione non era raggiungibile
Soluzione:assicurati che i dettagli del piano di gestione siano corretti e che l'API Contratti raggiungibile
stato 404
Motivo: molto probabilmente il nome dell'organizzazione o dell'ambiente non è trovato sul server
Correzione: assicurati che i dettagli del piano di gestione siano corretti e che l'API contracts sia raggiungibile
stato 401
Motivo: molto probabilmente le credenziali fornite non dispongono dei privilegi di amministratore dell'organizzazione.
Soluzione:assicurati che il piano di gestione le credenziali siano corrette e l'APIcontracts raggiungibile
status 403
Motivo: indica che l'ambiente per cui viene eseguito il polling non è configurato come ambiente ibrido
Correzione: assicurati che l'organizzazione abbia il flag obbligatorio "features.hybrid.enabled=true"
sync.OwnershipClaimedByOther
Motivo: durante l'operazione, Synchronizer ha rilevato che è in corso l'accesso alla radice del file da parte di un'altra istanza di Synchronizer. Ciò può accadere quando un file system è condiviso tra i sincronizzatori.
Correzione: risolvi il problema alla radice per assicurarti che nessuna delle due istanze di Synchronizer condivida lo stesso file system. Il Synchronizer si sarebbe contrassegnato come inattivo e si troverebbe in una posizione non recuperabile. Si assicura anche che l'altro Il sincronizzatore che accede alla stessa radice del file riceve una notifica tramite i file di proprietà.
sync.DiskExceedsAllowedCapacity
Motivo: durante l'operazione, Sincronizzatore notato che l'occupazione del disco ha superato il limite consentito limite.
Rimedio: a questo punto il sincronizzatore viene interrotto eventuali download e prova un'operazione di pulizia dei file inattivi. Tuttavia, questa situazione potrebbe diventare ricorrente e l'unico modo per recuperare completamente è assicurarsi che Synchronizer disponga di memoria di disco sufficiente per funzionare.
Diagnostica i problemi di download dei contratti
Se visualizzi "sondaggio sul contratto upstream" in un messaggio di errore, prova la chiamata all'API contratto e controllare i dettagli, dove Username il tuo nome utente Apigee (il tuo indirizzo email). Il contratto rappresenta l'intera raccolta di dati da cui il sincronizzatore scarica il piano di gestione.
curl https://apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username