Registros do sincronizador

Os registros são uma boa maneira de resolver problemas com a instalação híbrida da Apigee. Consulte Geração de registros para mais detalhes.

É possível visualizar os registros de sincronização da Apigee usando o comando kubectl logs. Exemplo:
kubectl logs -n apigee apigee-synchronizer-apigee-example-test

Entradas de registro do Synchronizer

A tabela a seguir descreve os campos que você verá nos arquivos de registro do Synchronizer.

Campo Indica
org: Nome da organização
env: Nome do ambiente
target: Caminho da entidade que representa a entrada de registro
action: Ação de sincronização SYNC=Upstream

Ação REPLICATE=Replicate/download

context-id: A versão do contrato quando aplicável

Exemplo:

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

Noções básicas sobre registros do Synchronizer

Se você precisar resolver um problema com o Synchronizer, observe os arquivos de registro. A tabela a seguir pode ajudar a solucionar erros que podem aparecer nos registros do Synchronizer. Consulte também Geração de registros.

Entrada de registro O que isso 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 A pesquisa de upstream foi iniciada para a organização e o ambiente e recebeu o URL do plano de gerenciamento.
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 O contrato foi recebido
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 Uma versão do contrato foi recebida
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 o início da replicação. Os campos MDC indicam os detalhes sobre o que está sendo replicado
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 a replicação foi concluída. Os campos MDC indicam os detalhes sobre o que está sendo replicado
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 um erro de replicação
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 o fim de um ciclo de sincronização e também fornece o tempo necessário para 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 um contrato mais recente não estava disponível
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 o plano de gerenciamento não foi acessível
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 o plano de gerenciamento retornou uma resposta 404 para o 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 o ambiente que está sendo pesquisado não está ativado para 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 As credenciais fornecidas têm alguns problemas

Solução de problemas de erros

Os registros são uma boa maneira de solucionar problemas com a instalação. Consulte Geração de registros para mais detalhes.

Falha ao iniciar o Synchronizer

Veja a seguir alguns erros e as respectivas correções. Cada uma dessas mensagens de erro começa com um ErrorCode do tipo sync.xxxxx. Veja abaixo os possíveis códigos dos erros

sync.NullOrEmptyConfig

Mensagem: configuração nula ou vazia fornecida por com.apigee.sync.config

Motivo: você verá essa mensagem de erro quando as propriedades de configuração do Synchronizer não forem fornecidas corretamente.

Ação corretiva: verifique se todas as propriedades de configuração estão preenchidas com valores apropriados.

sync.ConfigFileNotFound

Motivo: o Synchronizer foi configurado para ler as propriedades de configuração de um arquivo, mas não foi possível carregar o arquivo.

Ação corretiva: verifique se o arquivo está disponível e acessível durante a inicialização do Synchronizer

sync.IncorrectSettings

Motivo: uma ou mais propriedades de configuração necessárias estão ausentes na configuração do Synchronizer ou os valores que estão fora do intervalo esperado. O erro precisa ter mais detalhes sobre a propriedade exata que está causando o problema. Esses erros são incorporados ao analisador para garantir que os erros de configuração sejam capturados antes da inicialização do serviço.

A tabela a seguir lista alguns possíveis erros de IncorrectSettings:

Erro Qual é o problema?
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/controlPlane/retries numeric instance is greater than the required maximum (maximum: 3, found: 20) O valor fornecido para o campo de novas tentativas na seção controlPlane excedeu o limite permitido
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/controlPlane/connectionTimeout numeric instance is lower than the required minimum (minimum: 10, found: 1) O valor fornecido para o campo connectionTimeout na seção controlPlane é menor que o permitido
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/controlPlane object has missing required properties ([\"contractProvider\"]) controlPlane não tem o campo obrigatório contractProvider.
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/controlPlane/contractProvider string \"http://\\uapi.apigee.com\" is not a valid URI O URI do provedor de contrato não é um URI 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 A matriz de ambientes precisa ter pelo menos um ambiente
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/environments/0 object has missing required properties ([\"environmentName\"]) O ambiente no índice 0 não tem o campo obrigatório environmentName.
configuration.json.IncorrectSettings: [com.apigee.sync.config.json] Error:/environments/0 object has missing required properties ([\"organizationName\"]) O ambiente no índice 0 não tem o campo obrigatório 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) O ambiente no índice 0 tem um intervalo de pesquisa abaixo do limite permitido de 60

Ação corretiva: corrija a configuração para incluir o bloqueio necessário

sync.ReplicationRootDoesNotExist

Motivo: o Synchronizer foi fornecido com uma raiz de replicação que não existe.

Ação corretiva: verifique se a pasta raiz fornecida existe e pode ser gravada.

sync.ReadOnlyReplicationRoot

Motivo: o Synchronizer foi fornecido com uma raiz de replicação que não tem permissões de gravação

Ação corretiva: verifique se a pasta raiz fornecida existe e pode ser gravada.

sync.ReplicationRootNotADir

Motivo: o Synchronizer foi fornecido com uma raiz de replicação que pode ser um arquivo

Ação corretiva: verifique se a pasta raiz fornecida existe e pode ser gravada.

sync.InvalidControlPlaneURL

Motivo: o Synchronizer foi fornecido com um URL de configuração vazio

Ação corretiva: verifique se a pasta raiz fornecida existe e pode ser gravada.

sync.InvalidControlPlaneSubscriptionURL

Motivo: o Synchronizer foi fornecido com um URL de configuração incorreto, incompleto ou vazio para criação de assinatura.

Ação corretiva: corrija o URL para um URL de configuração válido para a criação da assinatura do Pub/Sub para lidar com sinais do plano de controle.

sync.InvalidControlPlaneUnsubscriptionURL

Motivo: o Synchronizer foi fornecido com um URL de configuração incorreto, incompleto ou vazio para a exclusão da assinatura.

Ação corretiva: corrija o URL para um URL de configuração válido para a exclusão da assinatura do Pub/Sub para manipular sinais do plano de controle.

sync.CannotCreateEnvironmentFolder

Motivo: o Synchronizer tentou criar uma pasta para replicar o ambiente de controle de qualidade, mas não conseguiu criar a pasta necessária

Ação corretiva: verifique se a raiz da replicação não tem um caminho conflitante com o mesmo nome, que é somente leitura de um arquivo

sync.DuplicateEnvironmentEntries

Motivo: o mesmo ambiente foi adicionado várias vezes à configuração.

Ação corretiva: cada ambiente pode ser especificado apenas uma vez.

sync.DiskExceedsAllowedCapacity

Motivo: o disco de armazenamento fornecido já tem a capacidade limite fornecida por meio das propriedades de configuração.

Ação corretiva: verifique se há espaço em disco suficiente ou verifique se as configurações de armazenamento podem ser ajustadas para permitir mais espaço em disco.

sync.OwnershipClaimFailed

Motivo: o Synchronizer tentou reivindicar a propriedade na pasta do ambiente, mas falhou.

Ação corretiva: primeiro cada Synchronizer tentará garantir que ele seja um único gravador no sistema de arquivos. O erro indica o caminho e o motivo da falha. Resolver a causa raiz

Erros do Synchronizer durante o ambiente de execução

Os seguintes erros de Synchronizer podem ocorrer durante o ambiente de execução.

sync.replicators.PollReturnedError

A mensagem associada incluirá o status upstream. Veja abaixo os status de erro

status 0

Motivo: indica um problema de conectividade. O plano de gerenciamento não estava acessível

Ação corretiva: verifique se os detalhes do plano de gerenciamento estão corretos e se a API de contratos está acessível

status 404

Motivo: é mais provável que o nome da organização/ambiente não seja encontrado no servidor.

Ação corretiva: verifique se os detalhes do plano de gerenciamento estão corretos e se a API de contratos está acessível

status 401

Motivo: as credenciais mais prováveis fornecidas não têm os privilégios de administrador da organização.

Ação corretiva: verifique se as credenciais do plano de gerenciamento estão corretas e se a API de contratos está acessível.

status 403

Motivo: indica o ambiente que está sendo pesquisado não é configurado como ambiente híbrido.

Ação corretiva: verifique se a organização tem a sinalização necessária "features.hybrid.enabled=true".

sync.OwnershipClaimedByOther

Motivo: durante a operação, Synchronizer descobriu que a raiz do arquivo está sendo acessada por outra instância do Synchronizer. Isso pode acontecer quando um sistema de arquivos é compartilhado entre Synchronizers.

Ação corretiva: resolva o problema da raiz para garantir que não haja duas instâncias Synchronizer compartilhadas no mesmo sistema de arquivos. O Synchronizer teria se marcado e ficaria em uma posição irrecuperável aqui. Ele também garante que o outro Synchronizer, que acessa a mesma raiz de arquivo, seja notificado sobre ele por meio dos arquivos de propriedade.

sync.DiskExceedsAllowedCapacity

Motivo: durante a operação do Synchronizer, o número de ocupação do disco foi excedido.

Ação corretiva: neste momento, o Synchronizer abortaria todos os downloads e tentaria uma operação de limpeza de arquivo desatualizada. No entanto, isso pode se tornar uma condição recorrente e a única maneira de se recuperar completamente é garantir que o Synchronizer tenha memória de disco suficiente para funcionar.

Diagnóstico de falhas no download do contrato

Se você vir "pesquisa de contrato upstream" em uma mensagem de erro, tente chamar a API do contrato e verifique os detalhes, em que o nome de usuário é seu nome de usuário da Apigee (seu endereço de e-mail). O contrato representa toda a coleção de dados que o Synchronizer faz o download do plano de gerenciamento.

Sem residência de dados

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

Residência dos dados

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