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 comandokubectl logs
. Por exemplo:
kubectl logs -n APIGEE_NAMESPACE 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 |
Por 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