Registros del sincronizador

Los registros son una buena forma de solucionar problemas con tu instalación de Apigee hybrid. Consulta Registros para obtener más información.

Puedes ver los registros del sincronizador de Apigee con el comando kubectl logs. Por ejemplo:
kubectl logs -n APIGEE_NAMESPACE apigee-synchronizer-apigee-example-test

Entradas de registro del sincronizador

En la siguiente tabla se describen los campos que verá en los archivos de registro de Synchronizer.

Campo Indica
org: Nombre de la organización
env: Nombre del entorno
target: Ruta de la entidad a la que representa la entrada de registro
action: Acción SYNC=Acción de sincronización ascendente

REPLICATE=Replicate/download action

context-id: La versión del contrato, si procede

Por ejemplo:

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

Interpretar los registros del sincronizador

Si necesitas solucionar un problema con el sincronizador, consulta los archivos de registro. La siguiente tabla puede ayudarte a solucionar los errores que se produzcan en los registros del sincronizador. Consulta también Registro.

Entrada de registro ¿Qué 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 Se ha iniciado una comprobación upstream de la organización y el entorno, y se ha proporcionado la URL del plano de gestión.
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 El contrato se ha recibido correctamente
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 Se ha recibido una versión del contrato
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 el inicio de la replicación. Los campos de MDC indican los detalles sobre lo que se está replicando.
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 que la replicación ha finalizado. Los campos de MDC indican los detalles sobre lo que se está replicando.
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 error de replicación.
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 el final de un ciclo de sincronización y también el tiempo que se ha tardado en sincronizar.
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 que no había un contrato más reciente 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 Indica que no se ha podido acceder al plano de gestión
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 que el plano de gestión ha devuelto una respuesta 404 para el contrato.
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 que el entorno que se está consultando no tiene habilitado el modo híbrido.
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 Hay problemas con las credenciales proporcionadas

Solución de errores

Los registros son una buena forma de solucionar problemas con tu instalación. Consulta Registros para obtener más información.

El sincronizador no se inicia

A continuación, se explican algunos errores y cómo solucionarlos. Cada uno de estos mensajes de error empieza por un ErrorCode de tipo sync.xxxxx. A continuación, se indican algunos códigos de error posibles

sync.NullOrEmptyConfig

Mensaje: se ha proporcionado una configuración nula o vacía a través de com.apigee.sync.config

Motivo: este mensaje de error se muestra cuando las propiedades de configuración del sincronizador no se han proporcionado correctamente.

Solución: asegúrese de que todas las propiedades de configuración tengan los valores adecuados.

sync.ConfigFileNotFound

Motivo: Se ha configurado el sincronizador para que lea las propiedades de configuración de un archivo, pero no se ha podido cargar el archivo.

Solución: asegúrate de que el archivo esté disponible y se pueda acceder a él durante el arranque del sincronizador.

sync.IncorrectSettings

Motivo: Faltan una o varias propiedades de configuración obligatorias en la configuración del sincronizador o sus valores están fuera del intervalo esperado. El error debería incluir más detalles sobre la propiedad concreta que está causando el problema. Estos errores están integrados en el analizador para asegurarse de que los errores de configuración se detecten incluso antes de que se inicie el servicio.

En la siguiente tabla se indican algunos posibles errores de IncorrectSettings:

Error ¿Qué pasa?
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/controlPlane/retries numeric instance is greater than the required maximum (maximum: 3, found: 20) El valor proporcionado al campo de reintentos de la sección controlPlane ha superado el valor permitido
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/controlPlane/connectionTimeout numeric instance is lower than the required minimum (minimum: 10, found: 1) El valor proporcionado en el campo connectionTimeout de la sección controlPlane es inferior al permitido
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/controlPlane object has missing required properties ([\"contractProvider\"]) Falta el campo obligatorio contractProvider en la sección controlPlane.
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/controlPlane/contractProvider string \"http://\\uapi.apigee.com\" is not a valid URI El URI del proveedor de contratos no es válido
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 La matriz de entornos debe tener al menos un entorno
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/environments/0 object has missing required properties ([\"environmentName\"]) Falta el campo obligatorio environmentName en el entorno del índice 0
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/environments/0 object has missing required properties ([\"organizationName\"]) Falta el campo obligatorio organizationName en el entorno del índice 0
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/environments/0/pollInterval numeric instance is lower than the required minimum (minimum: 60, found: 6) El entorno del índice 0 tiene un intervalo de sondeo inferior al límite permitido de 60.

Solución: corrija el ajuste para incluir el bloque obligatorio

sync.ReplicationRootDoesNotExist

Motivo: se ha proporcionado al sincronizador una raíz de replicación que no existe.

Solución: asegúrate de que la carpeta raíz proporcionada exista y se pueda escribir en ella.

sync.ReadOnlyReplicationRoot

Motivo: se ha proporcionado al sincronizador una raíz de replicación que no tiene permisos de escritura.

Solución: asegúrate de que la carpeta raíz proporcionada exista y se pueda escribir en ella.

sync.ReplicationRootNotADir

Motivo: Se ha proporcionado al sincronizador una raíz de replicación que posiblemente sea un archivo.

Solución: asegúrate de que la carpeta raíz proporcionada exista y se pueda escribir en ella.

sync.InvalidControlPlaneURL

Motivo: se ha proporcionado al sincronizador una URL de configuración vacía.

Solución: Asegúrate de que la carpeta raíz proporcionada exista y se pueda escribir en ella.

sync.InvalidControlPlaneSubscriptionURL

Motivo: Se ha proporcionado al sincronizador una URL de configuración incorrecta, incompleta o vacía para crear la suscripción.

Solución: corrija la URL para que sea una URL de configuración válida para la creación de suscripciones de Pub/Sub con el fin de gestionar las señales del plano de control.

sync.InvalidControlPlaneUnsubscriptionURL

Motivo: se ha proporcionado al sincronizador una URL de configuración incorrecta, incompleta o vacía para eliminar la suscripción.

Solución: corrija la URL para que sea una URL de configuración válida para la eliminación de la suscripción de Pub/Sub y así gestionar las señales del plano de control.

sync.CannotCreateEnvironmentFolder

Motivo: el sincronizador ha intentado crear una carpeta para replicar el entorno de control de calidad, pero no ha podido crear la carpeta necesaria.

Solución: asegúrate de que la raíz de replicación no tenga una ruta conflictiva con el mismo nombre que sea de solo lectura de un archivo

sync.DuplicateEnvironmentEntries

Motivo: El mismo entorno se ha añadido varias veces en la configuración.

Solución: Cada entorno solo se puede especificar una vez.

sync.DiskExceedsAllowedCapacity

Motivo: El disco de almacenamiento proporcionado ya ha alcanzado el umbral de capacidad indicado en las propiedades de configuración.

Solución: Asegúrate de que haya suficiente espacio en disco o comprueba si se pueden modificar los ajustes de almacenamiento para permitir más espacio en disco.

sync.OwnershipClaimFailed

Motivo: el sincronizador ha intentado reclamar la propiedad de la carpeta del entorno, pero no lo ha conseguido.

Solución: cada sincronizador intentará primero asegurarse de que es el único que escribe en el sistema de archivos. El error indica la ruta y el motivo del fallo. Abordar la causa raíz

Errores del sincronizador durante el tiempo de ejecución

Los siguientes errores de Synchronizer se pueden producir durante el tiempo de ejecución.

sync.replicators.PollReturnedError

El mensaje asociado incluirá el estado de la solicitud upstream. A continuación, se indican los estados de error

estado 0

Motivo: indica un problema de conectividad. No se ha podido acceder al plano de gestión

Solución: comprueba que los detalles del plano de gestión sean correctos y que se pueda acceder a la API Contracts.

estado 404

Motivo: lo más probable es que el nombre de la organización o del entorno no se encuentre en el servidor.

Solución: comprueba que los detalles del plano de gestión sean correctos y que se pueda acceder a la API Contracts.

estado 401

Motivo: lo más probable es que las credenciales proporcionadas no tengan privilegios de administrador de la organización.

Solución: Asegúrate de que las credenciales del plano de gestión sean correctas y de que se pueda acceder a la API Contracts.

Estado 403

Motivo: indica que el entorno que se está consultando no se ha configurado como entorno híbrido.

Solución: Asegúrate de que la organización tenga la marca necesaria: "features.hybrid.enabled=true".

sync.OwnershipClaimedByOther

Motivo: durante la operación, el sincronizador ha detectado que otra instancia del sincronizador está accediendo a la raíz del archivo. Esto puede ocurrir cuando se comparte un sistema de archivos entre sincronizadores.

Solución: aborda el problema de raíz para asegurarte de que no haya dos instancias de Synchronizer que compartan el mismo sistema de archivos. El sincronizador se habría marcado como inactivo y estaría en una posición irrecuperable. También se aseguraría de que el otro sincronizador que accede a la misma raíz de archivo reciba una notificación al respecto a través de sus archivos de propiedad.

sync.DiskExceedsAllowedCapacity

Motivo: Durante la operación, el sincronizador se ha dado cuenta de que la ocupación del disco ha superado el límite permitido.

Solución: en este punto, Synchronizer abortaría cualquier descarga e intentaría limpiar los archivos obsoletos. Sin embargo, esta situación puede volverse recurrente y la única forma de recuperarse por completo es asegurarse de que el sincronizador tenga suficiente memoria de disco para funcionar.

Diagnosticar fallos de descarga de contratos

Si ves "upstream contract poll" en un mensaje de error, prueba a llamar a la API de contratos y consulta los detalles, donde username es tu nombre de usuario de Apigee (tu dirección de correo electrónico). El contrato representa todo el conjunto de datos que el sincronizador descarga del plano de gestión.

Sin residencia de datos

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

Residencia de datos

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