É possível diagnosticar e resolver problemas comuns de conectividade de entrada e saída da sua instância do Looker (Google Cloud Core) em configurações de rede públicas, privadas e híbridas. A solução de problemas com seus domínios personalizados, o Private Service Connect, o acesso a serviços particulares e a saída controlada ajuda a restaurar o acesso do usuário à sua instância e manter as conexões com provedores de identidade, serviços externos e back-ends de banco de dados.
A verificação do domínio personalizado falha com o erro de código 9
Ao configurar um domínio personalizado para uma instância do Looker (Google Cloud Core) que
usa conexões públicas, a verificação de domínio pode falhar com um erro code: 9.
Sintomas
Quando você clica em VERIFICAR DOMÍNIO na guia DOMÍNIO PERSONALIZADO da sua instância do Looker (Google Cloud Core), a verificação falha e mostra uma mensagem de erro semelhante a esta:
DNS record is not created or not the same as public IP address (code: 9)
O status do domínio personalizado também permanece Não verificado ou aparece como Indisponível.
Causa
Embora a mensagem de erro indique que o registro A do DNS está faltando ou incorreto, esse erro geralmente ocorre por um dos seguintes motivos:
- Registros CAA restritivos: a configuração DNS do seu domínio inclui registros de autorização de autoridade certificadora (CAA) que não autorizam as autoridades certificadoras (CAs) do Google a emitir certificados SSL/TLS. Como o Looker (Google Cloud Core) usa certificados gerenciados pelo Google para instâncias públicas, o provisionamento de certificados falha.
- CDN ou proxy de terceiros: as instâncias do Looker (Google Cloud Core) com conexões públicas usam exclusivamente a autorização do balanceador de carga (LB) para certificados gerenciados pelo Google. A autorização do balanceador de carga exige que o registro A do DNS do seu domínio personalizado seja resolvido diretamente para o endereço IP público de entrada do Looker (Google Cloud Core). Se você rotear o tráfego por uma rede de fornecimento de conteúdo (CDN), um firewall de aplicativos da Web (WAF) ou um proxy reverso de terceiros (como Akamai ou Cloudflare), a autorização automática do balanceador de carga vai falhar.
Resolução
Dependendo da causa da falha, use os métodos a seguir para resolver o problema:
Autorizar as autoridades certificadoras do Google em registros CAA
Se o seu domínio usa registros CAA, verifique e atualize os registros DNS para permitir os provedores de certificados do Google:
Verifique os registros CAA atuais do seu domínio usando uma ferramenta de busca DNS, como
dig:dig CAA DOMAIN_NAME +shortSubstitua
DOMAIN_NAMEpelo nome de domínio personalizado (por exemplo,example.comoulooker.example.com).Adicione registros CAA para autorizar
pki.googeletsencrypt.org:DOMAIN_NAME. IN CAA 0 issue "pki.goog" DOMAIN_NAME. IN CAA 0 issue "letsencrypt.org"Permitir as duas CAs garante o provisionamento e a renovação automáticos confiáveis.
Depois de atualizar os registros CAA, aguarde a propagação do DNS e clique em VERIFICAR DOMÍNIO novamente no console do Google Cloud .
Usar o Private Service Connect para CDNs e proxies de terceiros
CDNs e proxies inversos de terceiros não podem ser colocados diretamente na frente de uma instância pública do Looker (Google Cloud Core) porque a autorização automatizada do balanceador de carga exige resolução de DNS direta para o endereço IP público da instância.
Para rotear o tráfego de entrada por uma CDN ou um WAF de terceiros, implante o Looker (Google Cloud Core) usando uma arquitetura do Private Service Connect em vez de conexões públicas:
- Implante uma instância do Looker (Google Cloud Core) com o Private Service Connect ativado.
- Configure um balanceador de carga de aplicativo externo com um back-end do Private Service Connect na sua rede VPC.
- Provisione e anexe seu próprio certificado SSL autogerenciado ou gerenciado pelo Google ao balanceador de carga de aplicativo externo. Essa arquitetura oferece controle sobre o término de TLS e permite rotear o tráfego pela CDN ou pelo WAF.
Falha na autenticação do OpenID Connect com saída controlada
Quando você configura a autenticação do OpenID Connect em uma instância do Looker (Google Cloud Core) configurada com o Private Service Connect e com a saída controlada ativada, a autenticação pode falhar.
Sintomas
Se a autenticação falhar, você poderá ter um dos seguintes sintomas:
- O endpoint
/openidconnectdo Looker fica suspenso por aproximadamente 60 segundos no navegador antes de mostrar um erro ou atingir o tempo limite com um erro504 Upstream Request Timeoutou504 Gateway Timeout. Seu provedor de identidade mostra uma mensagem de erro indicando que o URI de redirecionamento não corresponde, como:
AADSTS50011: The redirect URI specified in the request does not match the redirect URIs configured for the applicationEssa mensagem de erro é enganosa porque o URI de redirecionamento configurado no provedor de identidade pode estar correto. A falha real ocorre quando o Looker (Google Cloud Core) não consegue entrar em contato com o endpoint de token do provedor de identidade durante a troca de back-end.
Causa
O fluxo de trabalho de provisionamento automatizado para saída controlada às vezes não cria a rota de rede do Secure Web Proxy (looker-swp-route) necessária no projeto de locatário do Looker (Google Cloud Core).
Quando essa rota está ausente, as solicitações de back-end do Looker (Google Cloud Core) para o endpoint de token do provedor de identidade atingem o tempo limite porque a instância não pode encaminhar o tráfego de saída para a Internet pública pelo Secure Web Proxy.
Resolução
Para resolver esse problema, siga estas etapas para redefinir a configuração de saída controlada e forçar o sistema a recriar a rota de rede ausente:
No console do Google Cloud , acesse a página Looker:
Clique no nome da instância que você quer atualizar.
Clique em Editar.
Abra a seção Conexões e acesse Configurar conexões de saída.
Registre todos os nomes de domínio totalmente qualificados (FQDNs) listados na seção FQDN global, como os endpoints do seu provedor de identidade.
Exclua todos os FQDNs listados na seção FQDN global.
Desmarque a caixa de seleção Ativar o Looker para se conectar a serviços externos para desativar a saída controlada.
Clique em Salvar.
Aguarde a conclusão da atualização da instância e a remoção das mudanças de configuração.
Clique em Editar novamente.
Expanda a seção Conexões e marque a caixa de seleção Ativar o Looker para se conectar a serviços externos.
Na seção FQDN global, adicione novamente os FQDNs necessários para seu provedor de identidade e outros serviços externos.
Clique em Salvar.
A redefinição do controle de saída aciona o processo de provisionamento automático para
recriar a rota de rede looker-swp-route ausente. Depois que a rota é criada, as solicitações de back-end de saída para o provedor de identidade podem ser concluídas.
Erro 504: tempo limite da solicitação upstream
Quando você faz chamadas de API, executa consultas de longa duração ou se autentica com um serviço externo em uma instância do Looker (Google Cloud Core), a solicitação pode falhar com um erro de tempo limite HTTP 504.
Sintomas
Você pode receber um erro 504 Upstream Request Timeout ou 504 Gateway Timeout em um dos seguintes cenários:
- Consultas ou chamadas de API de entrada: as chamadas de API para endpoints do Looker, como
/result_format, ou consultas de longa duração na interface do Looker falham com um erro504após aproximadamente 30 segundos em uma instância que é front-end por um balanceador de carga. - Autenticação de saída ou conexões de serviços externos: você recebe um
erro
504no navegador depois de voltar da página de login de um provedor de identidade ou ao se conectar a um serviço externo em uma instância com saída controlada ativada.
Causa
Um erro de tempo limite 504 geralmente ocorre por um dos seguintes motivos:
- Tempo limite do serviço de back-end do balanceador de carga para solicitações de entrada: quando a instância do Looker (Google Cloud Core) é acessada por um balanceador de carga do Cloud Load Balancing, o serviço de back-end do balanceador de carga tem um tempo limite padrão de 30 segundos. Se o tempo combinado de execução da consulta de banco de dados e de renderização do payload do Looker exceder esse limite de tempo limite, o balanceador de carga vai fechar a conexão e retornar um erro HTTP
504. - Domínio de saída bloqueado com saída controlada: a instância do Looker (Google Cloud Core) não pode acessar um domínio externo por uma saída controlada. Ao contrário dos erros de rota ausente, um erro
504durante solicitações de saída geralmente significa que o caminho de rede existe, mas um domínio necessário está ausente da lista de permissões FQDN global e está sendo bloqueado, ou a solicitação está atingindo o tempo limite no gateway.
Resolução
Dependendo da causa do erro, siga as etapas nas seções a seguir para resolver o problema.
Resolver tempos limite do balanceador de carga em chamadas ou consultas de API
Para resolver erros 504 causados pelo tempo limite do serviço de back-end do balanceador de carga,
use um ou ambos os métodos a seguir:
Aumente o tempo limite do serviço de back-end do balanceador de carga:
No console do Google Cloud , acesse a página Balanceamento de carga:
Clique em Back-ends e no nome do serviço de back-end associado à sua instância do Looker (Google Cloud Core).
Clique em Editar.
No campo Tempo limite, aumente o valor, por exemplo, de 30 segundos para 300 segundos, para acomodar as consultas e solicitações de API mais longas.
Clique em Salvar.
Use um fluxo de trabalho de API assíncrono: se você estiver chamando a API Looker para buscar dados de consulta e não puder modificar o tempo limite do balanceador de carga, use endpoints assíncronos em vez de solicitações síncronas. Chame
create_query_taskpara iniciar a consulta de forma assíncrona e, em seguida, faça uma pesquisaquery_task_resultspara recuperar os resultados depois que a consulta terminar.
Resolver tempos limite de saída controlada
Para resolver erros de 504 que ocorrem quando o Looker (Google Cloud Core) não consegue se conectar a um serviço externo ou a um provedor de identidade
com saída controlada ativada, siga estas etapas:
- Verificar os FQDNs necessários: no console Google Cloud , verifique se todos os domínios exigidos pelo serviço externo ou provedor de identidade foram adicionados à lista FQDN global. Os fluxos de autenticação do OIDC geralmente exigem vários endpoints (como autorização, token e informações do usuário endpoints) que podem usar domínios diferentes.
- Capture um rastreamento de rede: se o erro persistir, capture um rastreamento de rede do navegador (arquivo HAR) ao reproduzir o problema. Pesquise o rastreamento em busca de códigos de status
504ou solicitações HTTP com falha para identificar domínios que foram contatados durante o fluxo, mas não estão incluídos na sua lista FQDN global. - Redefinir configuração: se os FQDNs necessários estiverem presentes, mas as solicitações continuarem atingindo o tempo limite, siga as etapas na Resolução para falhas de autenticação do OpenID Connect e redefina a configuração de saída controlada.
HttpClient:ConnectTimeoutError execution expired
Ao testar uma conexão do OpenID Connect ou outras conexões de rede externas no painel de administração do Looker, o teste de conexão pode falhar com um erro de tempo limite.
Sintomas
Ao executar um teste de conexão no painel de administrador do Looker (como na página Autenticação do OpenID Connect), o Looker retorna o seguinte erro:
HttpClient:ConnectTimeoutError execution expired
Causa
Esse erro indica que a instância do Looker (Google Cloud Core) não tem o caminho de rede necessário para se comunicar com o serviço externo ou o provedor de identidade. Esse problema geralmente ocorre quando uma das seguintes condições é atendida:
- Propagação de rota ausente: o Cloud Router está usando as configurações padrão e não está propagando rotas de rede VPC (como rotas divulgadas personalizadas) para a instância do Looker (Google Cloud Core).
- NEG da Internet ausente: um grupo de endpoints de rede (NEG) da Internet não está configurado na sua rede VPC para rotear o tráfego para o serviço externo.
Resolução
Para resolver o problema, siga estas etapas:
- Configure a propagação de rotas do Cloud Router: verifique se o Cloud Router está configurado para propagar as rotas necessárias da rede VPC para sua instância do Looker (Google Cloud Core) configurando rotas divulgadas personalizadas.
- Configure um NEG da Internet: configure um NEG da Internet na sua rede VPC para permitir que a instância do Looker (Google Cloud Core) roteie o tráfego de saída para o provedor ou serviço de identidade externa.
- Verifique o acesso privado a serviços: para instâncias que usam o acesso privado a serviços, verifique se a rede VPC está corretamente em peering com os serviços do Google. Para mais informações, consulte Acessar serviços externos usando o acesso a serviços particulares.
Problemas de conexão do Private Service Connect na direção sul
Para instâncias do Looker (Google Cloud Core) que usam o Private Service Connect para conexões de saída com back-ends de banco de dados ou serviços publicados, é possível encontrar erros de conexão mesmo quando o status do endpoint é Accepted.
Confira alguns problemas comuns:
- Erros de resolução de nome do host: se o Looker (Google Cloud Core) mostrar um erro
Unknown hostao testar uma conexão, verifique se o nome do host configurado corresponde ao registro DNS na sua rede particular e se o balanceador de carga de back-end está íntegro. - Tempos limite de conexão: se as conexões expirarem, verifique as regras de firewall da VPC para verificar se o tráfego de entrada é permitido da sub-rede NAT do Private Service Connect para os back-ends do balanceador de carga.
- Status pendente ou fechado: se o status do anexo de serviço for
PendingouClosed, verifique se o projeto do consumidor está na lista de permissões do anexo de serviço e se as verificações de integridade TCP obrigatórias estão configuradas. - Falhas de atualização com erro interno 13: ao atualizar anexos de serviço de saída usando o Terraform ou a API, a atualização pode falhar com um
Internal error 13se a configuração de entrada estiver em um estado de erro. Para mais informações, consulte Erro interno 13 ao atualizar anexos de serviço de saída.
Para fluxos de trabalho de diagnóstico detalhados e uma árvore de decisão, consulte Solução de problemas de conexões do Private Service Connect no sentido sul.
Erro interno 13 ao atualizar anexos de serviço de saída
Quando você usa o Terraform ou a API Looker (Google Cloud Core) para adicionar, atualizar ou remover anexos de serviço de saída (egresso) do Private Service Connect em uma instância do Looker (Google Cloud Core), a atualização pode falhar com um erro interno.
Sintomas
Você pode observar os seguintes sintomas:
O Terraform ou a atualização da API falham com um erro semelhante a este:
Error: Error waiting for Updating Instance: Error code 13, message: an internal error has occurredA instância do Looker (Google Cloud Core) não consegue estabelecer conexões com os serviços de destino, mesmo que o anexo de serviço na rede VPC do produtor mostre um status de conexão
Accepted.
Causa
Esse erro ocorre quando a configuração de entrada do Private Service Connect
da instância (allowed_vpcs) entra em um estado de erro no back-end.
Ao usar o Terraform ou um cliente de API para atualizar anexos de serviço de saída (psc_service_attachments), o payload da solicitação geralmente inclui todo o bloco psc_config, que contém o parâmetro allowed_vpcs.
A API Looker (Google Cloud Core) tenta validar a configuração de entrada durante a atualização. Como allowed_vpcs está em um estado de erro, a validação falha, fazendo com que toda a atualização da instância falhe com o código do erro 13 e impedindo que as mudanças de anexo de serviço de saída sejam aplicadas.
Resolução
Para ignorar o erro de validação da configuração de entrada e aplicar as atualizações do anexo de serviço de saída, siga esta solução alternativa:
- Na configuração do Terraform ou no payload da API, comente ou
remova temporariamente o parâmetro
allowed_vpcsdo blocopsc_config. Aplique a configuração do Terraform ou reenvie a solicitação de API para atualizar seus anexos de serviço de saída (
psc_service_attachments).Como o payload da solicitação omite
allowed_vpcs, a API ignora a validação da configuração de entrada e aplica as mudanças de vinculação do serviço de saída.Depois que os anexos de serviço de saída forem implantados e as conexões forem estabelecidas, restaure o parâmetro
allowed_vpcsna configuração do Terraform ou no payload da API.Aplique novamente a configuração do Terraform.
Problemas de conectividade e rota de acesso a serviços particulares
Para instâncias do Looker (Google Cloud Core) que usam o acesso a serviços particulares, a comunicação de saída com serviços externos exige a propagação de rotas e a infraestrutura de rede adequadas:
- Propagação de rotas: verifique se o Cloud Router está configurado para propagar rotas de rede VPC para a instância do Looker (Google Cloud Core), como rotas divulgadas personalizadas.
- Grupos de endpoints de rede da Internet: se a instância precisar alcançar endpoints externos pelo acesso a serviços particulares, verifique se um grupo de endpoints de rede da Internet (NEG) está configurado na sua rede VPC.
Se essas rotas ou grupos de endpoints estiverem faltando, os testes de conexão com endpoints externos vão falhar com um erro HttpClient:ConnectTimeoutError execution expired.
Para mais informações, consulte Acessar serviços externos usando o acesso a serviços particulares.
Ferramentas e registros de diagnóstico
Use as ferramentas e os registros a seguir para diagnosticar problemas de rede:
- Cloud Logging: veja os registros no nível da instância no Cloud Logging para identificar falhas de conexão e eventos do sistema. Para mais informações, consulte Ver registros da instância.
- Atividade do sistema do Looker: se você puder fazer login como administrador, analise o painel Atividade do usuário em "Atividade do sistema". Esse painel mostra falhas de login recentes, o método de autenticação usado e mensagens de erro. Para mais informações, consulte Painel de atividade do usuário.
- Registros de fluxo de VPC: marque Registros de fluxo de VPC para determinar se o tráfego de rede do Looker (Google Cloud Core) chega à sub-rede de destino ou é bloqueado por regras de firewall.
- Cloud Customer Care: se você concluiu as etapas de solução de problemas e o problema persistir, entre em contato com o Cloud Customer Care para receber ajuda.