Les journaux représentent un bon moyen de résoudre les problèmes liés à votre installation d'Apigee hybride. Consultez la section Journalisation pour plus de détails.
Vous pouvez afficher les journaux du synchronisateur Apigee à l'aide de la commandekubectl logs
. Exemple :
kubectl logs -n apigee apigee-synchronizer-apigee-example-test
Entrées de journal du synchronisateur
Le tableau suivant décrit les champs que vous verrez dans les fichiers journaux du synchronisateur.
Champ | Indique |
---|---|
org: |
Nom de l'organisation |
env: |
Nom de l'environnement |
target: |
Chemin d'accès de l'entité représentée par l'entrée de journal |
action: |
Action SYNC=Action de synchronisation en amont REPLICATE=Action de réplication/téléchargement |
context-id: |
Version du contrat (le cas échéant) |
Exemple :
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
Comprendre les journaux du synchronisateur
Si vous devez résoudre un problème avec le synchronisateur, consultez les fichiers journaux. Le tableau suivant peut vous aider à résoudre les erreurs pouvant apparaître dans les journaux du synchronisateur. Consultez également la section Journalisation.
Entrée de journal | Que signifie-t-il ? |
---|---|
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 |
Le sondage amont a été lancé pour l'organisation, l'environnement et une URL du plan de gestion donnée. |
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 |
Le contrat a bien été reçu. |
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 |
Une version de contrat a été reçue. |
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 |
Indique le début de la réplication. Les champs MDC indiquent les détails de ce qui est répliqué. |
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 |
Indique la fin de la réplication. Les champs MDC indiquent les détails de ce qui est répliqué. |
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 |
Indique une erreur de réplication. |
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 |
Indique la fin d'un cycle de synchronisation et la durée de la synchronisation. |
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 |
Indique qu'il n'y avait pas de contrat plus récent disponible |
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 |
Indique que le plan de gestion n'était pas accessible |
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 |
Indique que le plan de gestion a renvoyé une réponse 404 pour le contrat. |
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 |
Indique que l'environnement faisant l'objet du sondage n'est pas compatible avec une utilisation hybride. |
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 |
Les identifiants fournis présentent des problèmes |
Dépannage des erreurs
Les journaux représentent un bon moyen de résoudre les problèmes liés à votre installation. Consultez la section Journalisation pour plus de détails.
Échec du démarrage du synchronisateur
Vous trouverez ci-dessous quelques erreurs et leur résolution. Chacun de ces messages d'erreur commence par un code d'erreur de type "sync.xxxxx". Vous trouverez ci-dessous les codes d'erreur possibles.
sync.NullOrEmptyConfig
Message : configuration nulle ou vide fournie via com.apigee.sync.config
Cause : ce message d'erreur s'affiche lorsque les propriétés de configuration de l'outil de synchronisation n'ont pas été fournies correctement.
Solution : assurez-vous que toutes les propriétés de configuration sont renseignées avec des valeurs appropriées.
sync.ConfigFileNotFound
Cause : l'outil de synchronisation a été configuré pour lire ses propriétés de configuration à partir d'un fichier, mais le fichier n'a pas pu être chargé.
Solution : assurez-vous que le fichier est disponible et accessible lors du démarrage du synchronisateur.
sync.IncorrectSettings
Cause : dans la configuration de l'outil de synchronisation, une ou plusieurs propriétés de configuration requises sont manquantes ou leurs valeurs sont en dehors de la plage admissible. L'erreur donne en général plus d'informations sur la propriété exacte à l'origine du problème. Ces vérifications sont intégrées à l'analyseur pour garantir que les erreurs de configuration sont interceptées avant le démarrage du service.
Le tableau suivant répertorie certaines erreurs de paramètres incorrects :
Erreur | Pourquoi ? |
---|---|
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/retries numeric
instance is greater than the required maximum (maximum: 3, found:
20) |
La valeur fournie dans le champ "retries" dans la section "ControlPlane" dépasse la limite autorisée. |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/connectionTimeout
numeric instance is lower than the required minimum (minimum: 10,
found: 1) |
La valeur fournie dans le champ "connectionTimeout" dans la section "controlPlane est inférieure à la valeur autorisée. |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane object has
missing required properties
([\"contractProvider\"]) |
Il manque le champ obligatoire "contractProvider" dans la section "controlPlane". |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane/contractProvider
string \"http://\\uapi.apigee.com\" is not a valid
URI |
L'URI du fournisseur de contrat n'est pas un URI valide. |
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 |
Le tableau d'environnements doit comporter au moins un environnement. |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"environmentName\"]) |
Il manque le champ obligatoire "environmentName" dans l'environnement à l'index 0. |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"organizationName\"]) |
L'environnement à l'index 0 ne contient pas le champ obligatoire "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'environnement à l'index 0 a un intervalle d'interrogation inférieur à la limite autorisée de 60. |
Solution : corrigez le paramètre pour inclure le bloc requis.
sync.ReplicationRootDoesNotExist
Cause : le synchroniseur a été fourni avec une racine de réplication qui n'existe pas.
Solution : assurez-vous que le dossier racine fourni existe et est accessible en écriture.
sync.ReadOnlyReplicationRoot
Cause : l'outil de synchronisation a été fourni avec une racine de réplication qui ne dispose pas d'autorisations en écriture
Solution : assurez-vous que le dossier racine fourni existe et est accessible en écriture.
sync.ReplicationRootNotADir
Cause : l'outil de synchronisation a été fourni avec une racine de réplication, qui peut éventuellement être un fichier
Solution : assurez-vous que le dossier racine fourni existe et est accessible en écriture.
sync.InvalidControlPlaneURL
Cause : l'outil de synchronisation a été fourni avec une URL de configuration vide.
Solution : assurez-vous que le dossier racine fourni existe et est accessible en écriture.
sync.InvalidControlPlaneSubscriptionURL
Cause : l'outil de synchronisation a fourni une URL de configuration incorrecte, incomplète ou vide pour la création de l'abonnement.
Solution : remplacez l'URL par une URL de configuration valide pour que la création d'un abonnement Pub/Sub gère les signaux à partir du plan de contrôle.
sync.InvalidControlPlaneUnsubscriptionURL
Cause : l'outil de synchronisation a été fourni avec une URL de configuration incomplète ou vide pour la suppression de l'abonnement.
Solution : remplacez l'URL par une URL de configuration valide pour la suppression des abonnements Pub/Sub afin de gérer les signaux du plan de contrôle.
sync.CannotCreateEnvironmentFolder
Cause : l'outil de synchronisation a tenté de créer un dossier pour répliquer l'environnement qa mais il n'a pas pu créer le dossier requis
Solution : assurez-vous que la racine de la réplication ne comporte pas de chemin portant le même nom en lecture seule.
sync.DuplicateEnvironmentEntries
Cause : le même environnement a été ajouté plusieurs fois dans la configuration.
Solution : un environnement ne peut être spécifié qu'une seule fois.
sync.DiskExceedsAllowedCapacity
Cause : le disque de stockage fourni a déjà une capacité seuil définie via les propriétés de configuration.
Solution : assurez-vous d'avoir suffisamment d'espace disque ou vérifiez si les paramètres de stockage peuvent être ajustés pour autoriser davantage d'espace disque.
sync.OwnershipClaimFailed
Cause : Synchroniz a tenté de demander la propriété du dossier de l'environnement, mais a échoué.
Solution : chaque outil de synchronisation tente d'abord de s'assurer qu'il est le seul rédacteur du système de fichiers. L'erreur indique le chemin d'accès et la raison de l'échec. Traitez la cause principale.
Erreurs du synchronisateur lors de l'exécution
Les erreurs du synchronisateur suivantes peuvent se produire pendant l'exécution.
sync.replicators.PollReturnedError
Le message associé inclut l'état en amont. Vous trouverez ci-dessous les différents états d'erreur.
État 0
Cause : indique un problème de connectivité. Le plan de gestion n'est pas joignable.
Solution : vérifiez que les détails du plan de gestion sont corrects et que l'API contracts est accessible.
État 404
Cause : il est très probable que le nom de l'organisation/de l'environnement ne figure pas sur le serveur.
Solution : vérifiez que les détails du plan de gestion sont corrects et que l'API contracts est accessible.
État 401
Cause : les identifiants fournis ne disposent probablement pas des droits d'administrateur d'organisation.
Solution : vérifiez que les identifiants du plan de gestion sont corrects et que l'API contracts est accessible.
État 403
Cause : indique que l'environnement faisant l'objet de l'interrogation n'est pas configuré en tant qu'environnement hybride.
Solution : assurez-vous que l'organisation dispose de l'indicateur requis "features.hybrid.enabled=true".
sync.OwnershipClaimedByOther
Cause : lors de l'opération de synchronisation, l'outil de synchronisation détecte que la racine du fichier est accessible par une autre instance du synchronisateur. (Cela peut se produire lorsqu'un système de fichiers est partagé entre plusieurs outils de synchronisation.)
Solution : corrigez le problème fondamental pour vous assurer que deux instances du synchronisateur partagent le même système de fichiers. Le synchronisateur se serait marqué comme défaillant et se trouverait dans un emplacement non récupérable ici. Il vérifierait également que l'autre service de synchronisation qui accède à la même racine de fichiers reçoit une notification le concernant via ses fichiers de propriété.
sync.DiskExceedsAllowedCapacity
Cause : pendant le fonctionnement de l'outil de synchronisation des opérations, l'occupation du disque a dépassé la limite autorisée.
Solution : à ce stade, l'outil de synchronisation annule tous les téléchargements et tente d'effectuer une opération de nettoyage de fichiers obsolètes. Toutefois, cette condition peut devenir une condition récurrente et le seul moyen de récupérer l'intégralité de la mémoire consiste à s'assurer que l'outil de synchronisation dispose de suffisamment de mémoire disque pour fonctionner.
Diagnostiquer les échecs de téléchargement des contrats
Si le message d'erreur "interrogation de contrat en amont" s'affiche, essayez d'appeler l'API et vérifiez les informations, où le nom d'utilisateur est votre nom d'utilisateur Apigee (votre adresse e-mail). Le contrat représente l'intégralité de la collection de données téléchargée par l'outil de synchronisation à partir du plan de gestion.
Sans résidence des données
curl https://apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username
Résidence des données
curl https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username