Logs sind eine gute Möglichkeit, um Probleme mit Ihrer Apigee-Hybridinstallation zu beheben. Weitere Informationen finden Sie unter Logging.
Sie können Apigee-Synchronizer-Logs mit dem Befehlkubectl logs
aufrufen. Beispiel:
kubectl logs -n APIGEE_NAMESPACE apigee-synchronizer-apigee-example-test
Synchronizer-Logeinträge
In der folgenden Tabelle werden die Felder beschrieben, die Sie in Synchronizer-Logdateien sehen.
Feld | Gibt an |
---|---|
org: |
Name der Organisation |
env: |
Umgebungsname |
target: |
Pfad der Entität, für die der Logeintrag steht |
action: |
Aktion „SYNC=Upstream-Synchronisierung“ Aktion „REPLICATE=Replizieren/Herunterladen“ |
context-id: |
Die Vertragsversion, sofern zutreffend |
Beispiel:
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
Synchronizer-Logs verstehen
Wenn Sie ein Problem mit dem Synchronizer beheben müssen, sehen Sie sich die Logdateien an. Die folgende Tabelle kann beim Beheben von Fehlern in den Synchronizer-Logs hilfreich sein. Siehe auch Logging.
Logeintrag | Bedeutung |
---|---|
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 |
Upstream-Abfrage für die Organisation, Umgebung und angegebene Verwaltungsebenen-URL wurde gestartet |
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 |
Vertrag wurde erfolgreich empfangen |
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 |
Eine Vertragsversion wurde empfangen |
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 |
Gibt den Start der Replikation an. MDC-Felder geben die Details dazu an, was repliziert wird |
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 |
Zeigt an, dass die Replikation beendet wurde. MDC-Felder geben die Details dazu an, was repliziert wird |
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 |
Zeigt einen Replikationsfehler an |
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 |
Zeigt das Ende eines Synchronisierungszyklus an und gibt auch die Zeit für die Synchronisierung an |
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 |
Gibt an, dass kein neuerer Vertrag verfügbar war |
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 |
Gibt an, dass die Verwaltungsebene nicht erreichbar war |
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 |
Gibt an, dass die Verwaltungsebene für den Vertrag eine 404-Antwort zurückgegeben hat |
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 |
Gibt an, dass für die abgefragte Umgebung die Hybridfunktion nicht aktiviert ist |
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 |
Bei bereitgestellten Anmeldedaten treten Probleme auf |
Fehlerbehebung
Logs sind eine gute Möglichkeit, Probleme mit Ihrer Installation zu beheben. Weitere Informationen finden Sie unter Logging.
Synchronizer startet nicht
Im Folgenden sind einige Fehler und ihre Behebung aufgeführt. Jede dieser Fehlermeldungen beginnt mit einem ErrorCode vom Typ sync.xxxxx. Im Folgenden finden Sie mögliche Fehlercodes.
sync.NullOrEmptyConfig
Nachricht: Null oder leere Konfiguration über com.apigee.sync.config bereitgestellt
Grund: Diese Fehlermeldung wird angezeigt, wenn die Konfigurationsattribute des Synchronizers nicht ordnungsgemäß bereitgestellt wurden.
Lösung: Füllen Sie alle Konfigurationsattribute mit den entsprechenden Werten aus.
sync.ConfigFileNotFound
Grund: Der Synchronizer wurde so eingestellt, dass er seine Konfigurationsattribute aus einer Datei liest, die Datei konnte aber nicht geladen werden.
Lösung: Achten Sie darauf, dass die Datei für den Synchronizer-Startvorgang verfügbar und zugänglich ist.
sync.IncorrectSettings
Ursache: In der Synchronizer-Konfiguration fehlt ein oder mehrere erforderliche Konfigurationsattribute oder die Werte liegen außerhalb des erwarteten Bereichs. Der Fehler sollte weitere Details zum genauen Attribut enthalten, das das Problem verursacht. Diese Fehler sind in den Parser integriert, um dafür zu sorgen, dass Einstellungsfehler bereits vor Beginn des Dienstes erkannt werden.
In der folgenden Tabelle sind einige mögliche IncorrectSettings-Fehler aufgeführt:
Fehler | Wo liegt das Problem? |
---|---|
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/retries numeric
instance is greater than the required maximum (maximum: 3, found:
20) |
Der Wert im Feld „Wiederholungen“ des Abschnitts „controlPlane“ hat den zulässigen Bereich überschritten |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/connectionTimeout
numeric instance is lower than the required minimum (minimum: 10,
found: 1) |
Der Wert im Feld „connectionTimeout“ im Abschnitt „controlPlane“ ist niedriger als zulässig |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane object has
missing required properties
([\"contractProvider\"]) |
Im Abschnitt „controlPlane“ fehlt das Pflichtfeld „contractProvider“ |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/contractProvider
string \"http://\\uapi.apigee.com\" is not a valid
URI |
Der Vertragsanbieter-URI ist kein gültiger URI |
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 |
Das Umgebungs-Array muss mindestens eine Umgebung haben |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"environmentName\"]) |
In der Umgebung bei Index 0 fehlt das Pflichtfeld „environmentName“ |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"organizationName\"]) |
In der Umgebung bei Index 0 fehlt das Pflichtfeld „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) |
Die Umgebung bei Index 0 hat ein Abfrageintervall, das unter dem zulässigen Limit von 60 liegt |
Lösung: Korrigieren Sie die Einstellung so, dass sie den erforderlichen Block enthält
sync.ReplicationRootDoesNotExist
Ursache: Der Synchronizer wurde mit einem Replikationsstamm bereitgestellt, der nicht existiert
Lösung: Achten Sie darauf, dass der bereitgestellte Stammordner vorhanden und beschreibbar ist
sync.ReadOnlyReplicationRoot
Ursache: Der Synchronizer wurde mit einem Replikationsstamm bereitgestellt, der keine Schreibberechtigungen hat
Lösung: Achten Sie darauf, dass der bereitgestellte Stammordner vorhanden und beschreibbar ist
sync.ReplicationRootNotADir
Ursache: Der Synchronizer wurde mit einem Replikationsstamm bereitgestellt, der möglicherweise eine Datei ist
Lösung: Achten Sie darauf, dass der bereitgestellte Stammordner vorhanden und beschreibbar ist
sync.InvalidControlPlaneURL
Ursache: Der Synchronizer wurde mit einer Konfigurations-URL bereitgestellt, die leer ist
Lösung: Achten Sie darauf, dass der bereitgestellte Stammordner vorhanden und beschreibbar ist
sync.InvalidControlPlaneSubscriptionURL
Ursache: Der Synchronizer wurde mit einer falschen, unvollständigen oder leeren Konfigurations-URL für die Aboerstellung bereitgestellt.
Lösung: Korrigieren Sie die URL in eine gültige Konfigurations-URL für die Pub/Sub-Aboerstellung, um Signale von der Steuerungsebene zu verarbeiten.
sync.InvalidControlPlaneUnsubscriptionURL
Ursache: Der Synchronizer wurde mit einer falschen, unvollständigen oder leeren Konfigurations-URL für das Löschen des Abos bereitgestellt.
Lösung: Korrigieren Sie die URL in eine gültige Konfigurations-URL für das Löschen des Pub/Sub-Abos, um Signale von der Steuerungsebene zu verarbeiten.
sync.CannotCreateEnvironmentFolder
Ursache: Der Synchronizer hat versucht, einen Ordner zur Replikation der Umgebung „qa“ zu erstellen, konnte jedoch den erforderlichen Ordner nicht erstellen.
Lösung: Achten Sie darauf, dass der Replikationsstamm keinen in Konflikt stehenden Pfad mit dem gleichen Namen hat, der entweder schreibgeschützt oder eine Datei ist.
sync.DuplicateEnvironmentEntries
Ursache: Dieselbe Umgebung wurde in der Konfiguration mehrmals hinzugefügt.
Lösung: Jede Umgebung kann nur einmal angegeben werden.
sync.DiskExceedsAllowedCapacity
Ursache: Das bereitgestellte Speicherlaufwerk hat bereits den Grenzwert der Kapazität erreicht, der über die Konfigurationsattribute angegeben ist.
Lösung: Sorgen Sie für genügend Speicherplatz oder prüfen Sie, ob die Speichereinstellungen angepasst werden können, um mehr Speicherplatz zu ermöglichen.
sync.OwnershipClaimFailed
Ursache: Der Synchronizer hat versucht, den Anspruch auf die Eigentumsrechte im Umgebungsordner zu erheben, war aber nicht erfolgreich
Lösung: Jeder Synchronizer versucht zunächst, dafür zu sorgen, dass es sich bei ihm um den einzigen Autor im Dateisystem handelt. Der Fehler gibt den Pfad und den Grund für den Fehler an. Beheben Sie die Ursache
Synchronizer-Fehler während der Laufzeit
Die folgenden Synchronizer-Fehler können während der Laufzeit auftreten.
sync.replicators.PollReturnedError
Die verknüpfte Nachricht enthält den Upstream-Status. Im Folgenden sind die Fehlerstatus aufgeführt
Status 0
Ursache: Zeigt ein Verbindungsproblem an. Die Verwaltungsebene war nicht erreichbar
Lösung: Prüfen Sie, ob die Details der Verwaltungsebene korrekt sind und die contracts API erreichbar ist
Status 404
Ursache: Wahrscheinlich wurde der Name der Organisation bzw. der Umgebung nicht auf dem Server gefunden
Lösung: Prüfen Sie, ob die Details der Verwaltungsebene korrekt sind und die contracts API erreichbar ist
Status 401
Ursache: Die angegebenen Anmeldedaten haben wahrscheinlich nicht die Administratorberechtigungen der Organisation.
Lösung: Prüfen Sie, ob die Anmeldedaten für die Verwaltungsebene korrekt sind und die contracts API erreichbar ist
Status 403
Ursache: Gibt an, dass die abgefragte Umgebung nicht als Hybridumgebung eingerichtet ist
Lösung: Achten Sie darauf, dass die Organisation das erforderliche Flag „features.hybrid.enabled=true“ hat.
sync.OwnershipClaimedByOther
Grund: Während des Vorgangs hat der Synchronizer festgestellt, dass durch eine andere Instanz des Synchronizers auf das Dateistammverzeichnis zugegriffen wird. (Dies kann passieren, wenn ein Dateisystem von Synchronizern gemeinsam genutzt wird.)
Lösung: Beheben Sie das Root-Problem, um sicherzugehen, dass zwei Synchronizer-Instanzen nicht dasselbe Dateisystem verwenden. Der Synchronizer hätte sich in einem solchen Fall selbst als außer Betrieb gekennzeichnet und wäre zu diesem Zeitpunkt nicht mehr wiederherstellbar. Er würde außerdem dafür sorgen, dass der andere Synchronizer, der auf dasselbe Dateistammverzeichnis zugreift, über ihre Dateien zur Eigentümerschaft darüber benachrichtigt wird
sync.DiskExceedsAllowedCapacity
Ursache: Während des Vorgangs hat der Synchronizer festgestellt, dass die Belegung des Laufwerks das zulässige Limit überschritten hat.
Lösung: Der Synchronizer würde zu diesem Zeitpunkt alle Downloads abbrechen und den Versuch unternehmen, einen Bereinigungsvorgang veralteter Dateien vorzunehmen. Dies kann sich jedoch zu einem wiederkehrenden Zustand entwickeln und die einzige Möglichkeit zur vollständigen Wiederherstellung besteht darin, dafür zu sorgen, dass der Synchronizer für den Betrieb über genügend Speicherplatz auf dem Laufwerk verfügt.
Fehler beim Herunterladen von Verträgen diagnostizieren
Wenn Sie „Upstream-Vertragsabfrage“ in einer Fehlermeldung sehen, rufen Sie die contract API auf und prüfen Sie die Details, wobei der Nutzername Ihr Apigee-Nutzername (Ihre E-Mail-Adresse) ist. Der Vertrag stellt die gesamte Sammlung von Daten dar, die der Synchronizer von der Verwaltungsebene herunterlädt.
Kein Datenstandort
curl https://apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username
Datenstandort
curl https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username