Journaux du synchronisateur

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 commande kubectl 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.

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