Resolver erros do Private Service Connect
Não foi possível se conectar ao banco de dados de destino: EOF
A execução de um teste de conectividade retorna a mensagem de erro [DATABASE] unable to connect to the destination database: EOF
.
Causa possível:o anexo de serviço está configurado incorretamente.
Coisas a tentar:verifique se enable_proxy_protocol
está definido como false
no arquivo de configuração do Terraform do anexo do serviço. O protocolo de proxy é aceito apenas para servidores HTTP, como NGINX e Apache.
Quando você usa gcloud
para criar a configuração do Private Service Connect, o protocolo de proxy é desativado por padrão.
Tempo limite de conexão, conexão recusada
A execução do teste de conectividade falha ou expira. Isso provavelmente é causado por um roteamento configurado incorretamente na configuração do Private Service Connect. Isso pode acontecer por vários motivos.
Possível causa:falta uma regra de firewall que permita que o intervalo CIDR NAT do Private Service Connect acesse a sub-rede do Private Service Connect em que o Bastion está localizado, especificamente a interface nic0
da VM Bastion.
Coisas a tentar:verifique se a política da sua organização não restringe regras de firewall internas, como a regra psc_sp_in_fw
definida no exemplo de script do Terraform para configurar o produtor do Private Service Connect.
Possível causa:o proxy está inativo. Não há um listener na porta fornecida e, portanto, a conexão trava.
Coisas a tentar:você pode tentar estabelecer uma conexão SSH com a VM de bastião e procurar o proxy usando o seguinte comando:
netstat -tunalp | grep PORT
Analise as respostas ao comando:
Se você receber uma resposta vazia, o proxy está inativo. Tente executar o seguinte comando:
sudo su; cd /
e verifique se o servidor Dante está instalado executandosudo dpkg -s dante-server
:Se o proxy estiver instalado, você vai receber a seguinte mensagem:
Status: install ok installed
Se o proxy não estiver instalado, o problema provavelmente é um roteador ausente. Adicione um roteador e verifique se é possível fazer o download do proxy executando
apt-get install dante-server
.
Se o proxy estiver em execução e estiver escutando na porta fornecida, tente abrir uma conexão com ele fazendo o seguinte:
Instale o cliente PostgreSQL:
sudo apt-get install postgresql-client
Conecte-se ao banco de dados PostgreSQL:
psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W
(você vai receber uma solicitação para inserir a senha).Substitua:
PORT
: o número da porta do banco de dados.DBUSERNAME
: o nome de usuário usado para se conectar ao banco de dados PostgreSQL.
Instale o cliente telnet:
sudo apt-get install telnet
Conecte-se ao cliente telnet:
telnet 127.0.0.1 PORT
Substitua
PORT
pelo número da porta do banco de dados.
Dependendo dos resultados dos comandos:
Se os comandos não abrirem uma conexão, tente verificar os registros do proxy para localizar a causa raiz. A causa raiz pode variar dependendo da configuração do cluster do AlloyDB para PostgreSQL.
Se a conexão for aberta usando o telnet, mas travar no cliente nativo, o problema provavelmente será o roteamento do endereço IP do Bastion. Na VM, digite
ip route
no terminal. Verifique se é possível localizar uma regra de roteamento que roteie as conexões para o endereço IP particular do cluster do AlloyDB para PostgreSQL usando onic
secundário (nic1
, o endereço IPDB_SUBNETWORK_GATEWAY
).
Causa possível:o anexo de serviço não aceita a conexão de endpoint proveniente do Database Migration Service. O anexo de serviço contém uma lista de projetos aceitos, e o projeto do Database Migration Service não está incluído na lista.
Coisas a tentar:para resolver o problema, tente uma das seguintes opções:
No console do Google Cloud , acesse Private Service Connect.
Acessar a página "Private Service Connect"
Na guia Serviços publicados, aceite a conexão do Database Migration Service para o anexo de serviço (se estiver pendente).
Adicione o projeto solicitante à lista de permissões no anexo de serviço (se ele for rejeitado).
Para mais informações sobre como adicionar um projeto na lista de permissões no Terraform, consulte a documentação do Terraform.
Para mais informações sobre como adicionar um projeto na lista de permissões em
gcloud
, consulte a documentação de referência do gcloud.
Se isso não resolver o problema, recrie o perfil de conexão.
Exclua o perfil de conexão associado à conectividade do Private Service Connect e recrie-o.