Log del sincronizzatore

I log sono un buon modo per risolvere i problemi relativi all'installazione di Apigee hybrid. Per i dettagli, consulta Logging.

Puoi visualizzare i log del sincronizzatore Apigee utilizzando il comando kubectl 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=Upstream sync action

REPLICATE=Replicate/download action

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 lo strumento di sincronizzazione, esamina i file di log. La seguente tabella può aiutarti a risolvere i problemi relativi agli errori che potresti visualizzare nei log di Synchronizer. 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 polling upstream per l'organizzazione e l'ambiente ed è 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 correttamente
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 di 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 è terminata. I campi MDC indicano i dettagli di 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 cui viene eseguito il polling non è abilitato per l'ibrido
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 relativi agli errori

I log sono un buon modo per risolvere i problemi relativi all'installazione. Per i dettagli, consulta Logging.

Impossibile avviare il sincronizzatore

Di seguito sono riportati alcuni errori e le relative correzioni. Ciascuno di questi messaggi 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:visualizzerai questo messaggio di errore quando le proprietà di configurazione di Synchronizer non sono state fornite correttamente.

Soluzione:assicurati che tutte le proprietà di configurazione siano compilate con valori appropriati.

sync.ConfigFileNotFound

Motivo: il sincronizzatore è stato impostato per leggere le proprietà di configurazione da un file, ma il file non è stato caricato

Soluzione:assicurati che il file sia disponibile e accessibile durante l'avvio di Synchronizer

sync.IncorrectSettings

Motivo:una o più proprietà di configurazione obbligatorie non sono presenti nella configurazione di Synchronizer oppure i valori non rientrano nell'intervallo previsto. L'errore dovrebbe contenere maggiori dettagli sulla proprietà esatta che causa il problema. Questi errori sono integrati nel parser per garantire che gli errori di impostazione vengano rilevati prima ancora 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 dei 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) Il valore fornito al campo connectionTimeout nella sezione controlPlane è inferiore al valore consentito
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 è un URI 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 di ambienti deve contenere 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

Soluzione:correggi l'impostazione in modo da includere il blocco richiesto

sync.ReplicationRootDoesNotExist

Motivo: a Synchronizer è stata fornita una radice di replica inesistente

Soluzione:assicurati che la cartella principale fornita esista e sia scrivibile

sync.ReadOnlyReplicationRoot

Motivo: il sincronizzatore è stato fornito con una radice di replica che non dispone di autorizzazioni di scrittura

Soluzione:assicurati che la cartella principale fornita esista e sia scrivibile

sync.ReplicationRootNotADir

Motivo: a Synchronizer è stata fornita una radice di replica che potrebbe essere un file

Soluzione:assicurati che la cartella principale fornita esista e sia scrivibile

sync.InvalidControlPlaneURL

Motivo:a Synchronizer è stato fornito un URL di configurazione vuoto

Soluzione:assicurati che la cartella principale fornita esista e sia scrivibile

sync.InvalidControlPlaneSubscriptionURL

Motivo: al sincronizzatore è stato fornito un URL di configurazione errato, incompleto o vuoto per la creazione dell'abbonamento.

Soluzione:correggi l'URL con un URL di configurazione valido per la creazione di abbonamenti Pub/Sub per gestire i segnali dal control plane.

sync.InvalidControlPlaneUnsubscriptionURL

Motivo: al sincronizzatore è stato fornito un URL di configurazione errato, incompleto o vuoto per l'eliminazione dell'abbonamento.

Soluzione:correggi l'URL con un URL di configurazione valido per l'eliminazione dell'abbonamento Pub/Sub per gestire i segnali dal control plane.

sync.CannotCreateEnvironmentFolder

Motivo: Synchronizer ha tentato di creare una cartella per la replica dell'ambiente qa, ma non è riuscito a creare la cartella richiesta

Soluzione:assicurati che la radice di replica non abbia un percorso in conflitto con lo stesso nome che sia di sola lettura di un file

sync.DuplicateEnvironmentEntries

Motivo: lo stesso ambiente è stato aggiunto più volte nella configurazione.

Rimedio:ogni ambiente può essere specificato una sola volta.

sync.DiskExceedsAllowedCapacity

Motivo: il disco di archiviazione fornito ha già raggiunto la capacità di soglia fornita tramite le proprietà di configurazione.

Soluzione:assicurati che ci sia spazio su disco sufficiente o controlla se le impostazioni di archiviazione possono essere modificate per consentire più spazio su disco.

sync.OwnershipClaimFailed

Motivo: Synchronizer ha tentato di rivendicare la proprietà della cartella dell'ambiente, ma non è riuscito

Soluzione:ogni sincronizzatore tenterà innanzitutto di assicurarsi di essere l'unico a scrivere nel file system. L'errore indica il percorso e il motivo dell'errore. Affrontare la causa principale

Errori del sincronizzatore durante l'esecuzione

Durante il runtime possono verificarsi i seguenti errori di Synchronizer.

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à. Il management plane non era raggiungibile

Soluzione: assicurati che i dettagli del management plane siano corretti e che l'API Contracts sia raggiungibile

status 404

Motivo: molto probabilmente il nome dell'organizzazione/dell'ambiente non è stato trovato sul server

Soluzione: assicurati che i dettagli del management plane siano corretti e che l'API Contracts sia raggiungibile

status 401

Motivo: molto probabilmente le credenziali fornite non dispongono dei privilegi di amministratore dell'organizzazione.

Soluzione: assicurati che le credenziali del piano di gestione siano corrette e che l'API Contracts sia raggiungibile.

status 403

Motivo: indica che l'ambiente sottoposto a polling non è configurato come ambiente ibrido

Soluzione:assicurati che l'organizzazione abbia il flag richiesto "features.hybrid.enabled=true"

sync.OwnershipClaimedByOther

Motivo: durante l'operazione, Synchronizer ha rilevato che la radice del file è accessibile a un'altra istanza di Synchronizer. Ciò può accadere quando un file system viene condiviso tra i sincronizzatori.

Soluzione:risolvi il problema principale per assicurarti che due istanze di Synchronizer non condividano lo stesso file system. Il sincronizzatore si sarebbe autoassegnato un punteggio negativo e si troverebbe in una posizione irrecuperabile. Inoltre, si assicura che l'altro sincronizzatore che accede alla stessa radice del file riceva una notifica tramite i file di proprietà

sync.DiskExceedsAllowedCapacity

Motivo: durante l'operazione, Synchronizer ha rilevato che l'occupazione del disco ha superato il limite consentito.

Soluzione:a questo punto Synchronizer interrompe i download e tenta un'operazione di pulizia dei file obsoleti. Tuttavia, questa potrebbe diventare una condizione ricorrente e l'unico modo per ripristinare completamente il sistema è assicurarsi che Synchronizer disponga di memoria su disco sufficiente per funzionare.

Diagnosticare gli errori di download dei contratti

Se in un messaggio di errore visualizzi "upstream contract poll", prova a chiamare l'API Contract e controlla i dettagli, dove il nome utente è il tuo nome utente Apigee (il tuo indirizzo email). Il contratto rappresenta l'intera raccolta di dati che Synchronizer scarica dal piano di gestione.

curl https://apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username