Debug della connettività

Risolvere i problemi di Private Service Connect

Impossibile connettersi al database di destinazione: EOF

L'esecuzione di un test di connettività restituisce il messaggio di errore [DATABASE] unable to connect to the destination database: EOF.

Possibile causa: l'allegato del servizio non è configurato correttamente.

Cosa provare: assicurati che enable_proxy_protocol sia impostato su false nel file di configurazione Terraform dell'attacco del servizio. Il protocollo proxy è supportato solo per i server HTTP come NGINX e Apache.

Quando utilizzi gcloud per creare la configurazione di Private Service Connect, il protocollo proxy è disabilitato per impostazione predefinita.

Timeout della connessione, connessione rifiutata

L'esecuzione del test di connettività non riesce o scade il tempo di attesa. Il problema è molto probabilmente causato da un routing configurato in modo errato nella configurazione di Private Service Connect. I motivi possono essere diversi.

Possibile causa: manca una regola firewall che consenta all'intervallo CIDR NAT di Private Service Connect di accedere alla subnet di Private Service Connect in cui si trova il bastion, in particolare all'interfaccia della VM bastion nic0.

Cosa provare: assicurati che i criteri della tua organizzazione non limitino le regole firewall interne, ad esempio la regola firewall psc_sp_in_fw definita nello script Terraform di esempio per la configurazione del produttore Private Service Connect.

Possibile causa: il proxy non è attivo. Non è presente alcun listener sulla porta specificata e, di conseguenza, la connessione si blocca.

Cosa provare: puoi provare a stabilire una connessione SSH alla VM bastion e cercare il proxy utilizzando il seguente comando:

  • netstat -tunalp | grep PORT

Analizza le risposte al comando:

  • Se ricevi una risposta vuota, il proxy non è attivo. Prova a eseguire il seguente comando:

    sudo su; cd / e controlla se il server Dante è installato eseguendo sudo dpkg -s dante-server:

    • Se il proxy è installato, viene visualizzato il seguente messaggio:

      Status: install ok installed

    • Se il proxy non è installato, il probabile problema è che manca il router. Aggiungi un router e controlla se riesci a scaricare il proxy eseguendo apt-get install dante-server.

  • Se il proxy è in esecuzione e in ascolto sulla porta specificata, prova ad aprire una connessione seguendo questa procedura:

    1. Installa il client PostgreSQL:

      sudo apt-get install postgresql-client.

    2. Connettiti al database PostgreSQL:

      psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W (ti verrà chiesto di inserire la password).

      Sostituisci quanto segue:

      • PORT: il numero di porta del database.
      • DBUSERNAME: il nome utente utilizzato per connettersi al database PostgreSQL.
    3. Installa il client telnet:

      sudo apt-get install telnet

    4. Connettiti al client telnet:

      telnet 127.0.0.1 PORT

      Sostituisci PORT con il numero di porta del database.

    A seconda dei risultati dei comandi:

    • Se i comandi non riescono ad aprire una connessione, prova a esaminare i log del proxy per individuare la causa principale. La causa principale può variare a seconda della configurazione del cluster AlloyDB per PostgreSQL.

    • Se la connessione viene aperta utilizzando telnet, ma si blocca nel client nativo, il probabile problema è il routing dell'indirizzo IP del bastion host. Nella VM, digita ip route nel terminale. Cerca di individuare una regola di routing che indirizzi le connessioni all'indirizzo IP privato del cluster AlloyDB per PostgreSQL utilizzando nic secondario (nic1, l'indirizzo IP DB_SUBNETWORK_GATEWAY).

Possibile causa: l'attacco del servizio non accetta la connessione dell'endpoint proveniente da Database Migration Service. Il collegamento del servizio contiene un elenco di progetti accettati e il progetto Database Migration Service non è incluso nell'elenco.

Cosa provare:per risolvere il problema, prova una delle seguenti opzioni:

  • Nella console Google Cloud , vai a Private Service Connect.

    Vai a Private Service Connect

    Nella scheda Servizi pubblicati, accetta la connessione da Database Migration Service per l'allegato del servizio (se è in attesa).

  • Aggiungi il progetto che richiede l'accesso alla lista consentita dei progetti nel collegamento del servizio (se viene rifiutato).

    Se il problema persiste, ricrea il profilo di connessione.

  • Elimina il profilo di connessione associato alla connettività Private Service Connect e ricrealo.