Los registros son una buena manera de solucionar problemas de la instalación híbrida de Apigee. Consulta Registros para obtener más detalles.
Puedes ver los registros del sincronizador de Apigee con el comandokubectl logs
. Por ejemplo:
kubectl logs -n APIGEE_NAMESPACE apigee-synchronizer-apigee-example-test
Entradas de registro de Synchronizer
En la siguiente tabla, se describen los campos que verás en los archivos de registro del sincronizador.
Campo | Qué 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= acción de replicación y descarga |
context-id: |
La versión del contrato siempre que corresponda |
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
Información sobre los registros de Synchronizer
Si necesitas solucionar un problema de Synchronizer, consulta los archivos de registro. La siguiente tabla puede ayudarte a solucionar problemas que pueden aparecer en los registros de Synchronizer. Consulta también Registros.
Entrada de registros | ¿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 inició el sondeo ascendente para la organización y el entorno, y se proporcionó la URL del plano de administració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 recibió 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 recibió 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 replica |
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 finalizó. Los campos de MDC indican los detalles sobre lo que se replica |
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 del ciclo de sincronización y el tiempo que tomará |
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 hay 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 pudo acceder al plano de administració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 administración mostró 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 en el que se realiza el sondeo no está habilitado para uso 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 |
Las credenciales proporcionadas tienen algunos problemas. |
Solución de errores
Los registros son una buena forma de solucionar problemas de la instalación. Consulta Registros para obtener más detalles.
El inicio de Synchronizer falla
A continuación, se explican algunos errores y su solución. Cada uno de estos errores comienza con un ErrorCode del tipo sync.xxxxx. A continuación, se indican los códigos de error posibles:
sync.NullOrEmptyConfig
Mensaje: Archivo de configuración vacío o nulo proporcionado a través de com.apigee.sync.config
Motivo: verás este mensaje de error cuando las propiedades de configuración de Synchronizer no se hayan proporcionado correctamente.
Solución: Asegúrate de que todas las propiedades de configuración estén propagadas con valores adecuados.
sync.ConfigFileNotFound
Motivo: Synchronizer se configuró para leer sus propiedades de configuración desde un archivo, pero el archivo no se pudo cargar.
Solución: Asegúrate de que el archivo esté disponible y que se pueda acceder al mismo durante el inicio de Synchronizer.
sync.IncorrectSettings
Motivo: Faltan una o más de las propiedades de configuración requeridas de la configuración del sincronizador, o tienen valores que están fuera del rango esperado. En el error, se deben incluir más detalles sobre la propiedad exacta que causa el problema. Estos errores están integrados en el analizador para garantizar que se detecten los errores de configuración, incluso antes de que se inicie el servicio.
En la siguiente tabla, se enumeran algunos errores posibles de IncorrectSettings:
Error | ¿Cuál es el problema? |
---|---|
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 en la sección controlPlane superó el 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 al campo connectionTimeout en la sección controlPlane es menor que el permitido |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/controlPlane object has
missing required properties
([\"contractProvider\"]) |
A la sección controlPlane le falta el campo obligatorio contractProvider |
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 del contrato 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 |
El arreglo 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\"]) |
Al entorno en el índice 0 le falta el campo obligatorio environmentName |
configuration.json.IncorrectSettings:
[com.apigee.sync.config.json] Error:/environments/0 object has
missing required properties
([\"organizationName\"]) |
Al entorno en el índice 0 le falta el campo obligatorio 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) |
El entorno en el índice 0 tiene un intervalo de sondeo que se encuentra por debajo del límite permitido de 60. |
Solución: Corrige la configuración para incluir el bloque requerido.
sync.ReplicationRootDoesNotExist
Motivo: A Synchronizer se le proporcionó una raíz de replicación que no existe
Solución: Asegúrate de que la carpeta raíz proporcionada exista y que se pueda escribir en ella
sync.ReadOnlyReplicationRoot
Motivo: A Synchronizer se le proporcionó 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 que se pueda escribir en ella
sync.ReplicationRootNotADir
Motivo: A Synchronizer se le proporcionó una raíz de replicación que posiblemente sea un archivo
Solución: Asegúrate de que la carpeta raíz proporcionada exista y que se pueda escribir en ella
sync.InvalidControlPlaneURL
Motivo: A Synchronizer se le proporcionó una URL de configuración que está vacía
Solución: Asegúrate de que la carpeta raíz proporcionada exista y que se pueda escribir en ella
sync.InvalidControlPlaneSubscriptionURL
Motivo: A Synchronizer se le proporcionó una URL de configuración incorrecta, incompleta o vacía para la creación de la suscripción.
Solución: Corrige la URL a una URL de configuración válida para la creación de la suscripción a Pub/Sub a fin de controlar las señales del plano de control.
sync.InvalidControlPlaneUnsubscriptionURL
Motivo: A Synchronizer se le proporcionó una URL de configuración incorrecta, incompleta o vacía para la eliminación de la suscripción.
Solución: Corrige la URL a una URL de configuración válida para la eliminación de la suscripción a Pub/Sub a fin de controlar las señales del plano de control.
sync.CannotCreateEnvironmentFolder
Motivo: Synchronizer intentó crear una carpeta para replicar el entorno qa, pero no pudo crearla
Solución: Asegúrate de que la raíz de replicación no tenga una ruta en conflicto con el mismo nombre que sea de solo lectura de un archivo.
sync.DuplicateEnvironmentEntries
Motivo: Se agregó el mismo entorno varias veces en la configuración.
Solución: Cada entorno se puede especificar solo una vez.
sync.DiskExceedsAllowedCapacity
Motivo: El disco de almacenamiento proporcionado ya está al límite de la capacidad proporcionada a través de las propiedades de configuración.
Solución: Asegúrate de que haya suficiente espacio en el disco o verifica si la configuración de almacenamiento se puede ajustar para permitir más espacio en el disco.
sync.OwnershipClaimFailed
Motivo: Synchronizer intentó reclamar la propiedad en la carpeta del entorno, pero falló
Solución: Cada sincronizador primero intentará asegurarse de que sea el único que escribe en el sistema de archivos. El error indica la ruta y el motivo de la falla. Aborda la causa raíz.
Errores de Synchronizer durante el tiempo de ejecución
Pueden producirse los siguientes errores de Synchronizer durante el tiempo de ejecución.
sync.replicators.PollReturnedError
En el mensaje asociado, se incluirá el estado ascendente. A continuación, se muestran los estados de error.
status 0
Razón: Indica un problema de conectividad. No se pudo acceder al plano de administración.
Solución: Asegúrate de que los detalles del plano de administración sean correctos y de que se pueda acceder a la API de contratos.
status 404
Motivo: Lo más probable es que no se encuentre el nombre de la organización o el entorno en el servidor
Solución: Asegúrate de que los detalles del plano de administración sean correctos y de que se pueda acceder a la API de contratos.
status 401
Motivo: La mayoría de las credenciales proporcionadas no tienen los privilegios de administrador de la organización.
Solución: Asegúrate de que las credenciales del plano de administración sean correctas y de que se pueda acceder a la API de contratos.
status 403
Motivo: Indica que el entorno en el que se realiza el sondeo no está 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, Synchronizer descubrió que otra instancia de Synchronizer accedió a la raíz del archivo (esto puede suceder cuando se comparte un sistema de archivos entre Synchronizers).
Solución: Aborda el problema raíz para asegurarte de que dos instancias de Synchronizer compartan el mismo sistema de archivos. Synchronizer se habría marcado a sí mismo y estaría en una posición irrecuperable. También se asegura de que el otro Synchronizer que acceda a la misma raíz de archivo reciba notificaciones a través de sus archivos de propiedad
sync.DiskExceedsAllowedCapacity
Motivo: Durante la operación, Synchronizer descubrió que la ocupación del disco superó el límite permitido.
Solución: En este punto, Synchronizer anularía cualquier descarga y probaría una operación de limpieza de archivos inactivos. Sin embargo, esto puede convertirse en una condición recurrente y la única manera de recuperarse por completo es asegurarte de que Synchronizer tenga suficiente memoria de disco para operar.
Diagnostica fallas en la descarga de contratos
Si ves “sondeo de contrato ascendente” en un mensaje de error, llama a la API de contrato y verifica los detalles, en los que el nombre de usuario es tu nombre de usuario de Apigee (tu dirección de correo electrónico). El contrato representa la colección completa de datos que descarga Synchronizer desde el plano de administración.
Sin residencia de datos
curl https://apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username
Residencia de los datos
curl https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/org/environments/env/contracts/1.0 -u username