排解南向連線問題

本頁說明如何排解 Looker (Google Cloud Core) 執行個體的南向 (輸出) 連線問題。這些執行個體使用 Private Service Connect 搭配私人 IP 設定。

如果南向 Private Service Connect 連線發生故障,請使用下列決策樹開始排解問題。

詳情請參閱「使用 Private Service Connect 從 Looker (Google Cloud Core) 執行個體存取外部服務」說明文件。

排解連線錯誤

即使 Private Service Connect 連線狀態為 Accepted,Looker (Google Cloud Core) 嘗試連線至服務時,仍可能發生連線錯誤。

主機名稱解析問題

在測試資料庫連線時,如果 Looker (Google Cloud Core) 使用者介面顯示「Unknown host」錯誤,或 Looker (Google Cloud Core) 嘗試連線至您的服務時發生錯誤,可能表示您為南向 Private Service Connect 連線設定的主機名稱 DNS 解析失敗。

在這種情況下,請按照下列疑難排解步驟操作:

  • 確認在 Looker (Google Cloud Core) 中為服務設定的主機名稱正確無誤,且與應有 DNS 記錄的主機名稱相符。
  • 確認負載平衡器和後端服務的健康狀態良好。
  • 從供應商虛擬私有雲內的 VM 測試連線,確保後端服務可透過負載平衡器的轉送規則連線。您可以在與負載平衡器相同的虛擬私有雲和區域中建立臨時 VM,並使用 curltelnet 等工具,測試與服務 IP 位址和通訊埠的連線。

如果主機名稱解析問題仍未解決,請與 Cloud Customer Care 團隊聯絡。

連線逾時

如果從 Looker (Google Cloud Core) 連線至服務時發生逾時問題,可能是因為供應商虛擬私有雲的防火牆規則封鎖了來自 Private Service Connect NAT 子網路的流量,或是其他網路問題所致。

驗證南向 Private Service Connect 設定

如要確認 Looker (Google Cloud Core) 執行個體與網路之間的連線是否已正確建立,請按照下列步驟操作:

檢查 Looker (Google Cloud Core) 執行個體的 Private Service Connect 端點狀態

如要從 Looker (Google Cloud Core) 執行個體的設定中,驗證南向服務連結連線的狀態,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Looker」頁面。
  2. 按一下要檢查連線的執行個體名稱。
  3. 在「Networking」(網路) 區段的「Service attachment」(服務附件) 下方,找出要進行疑難排解的端點。
  4. 確認「狀態」Accepted

如果狀態為 Pending,可能原因如下:

  • 服務附件的連線偏好設定未設為「自動接受所有連線」,且連線未經手動核准。
  • Looker (Google Cloud Core) 執行個體的專案不在服務附件的允許清單中。

如要解決 Pending 狀態,請檢查服務附件設定,並確認連線偏好設定為 Automatically accept all connections,或已明確允許 Looker (Google Cloud Core) 專案。

如果網域或附件 URI 不正確,請使用正確的值再次執行 gcloud looker instances update 指令。這項指令會覆寫所有現有附件,因此必須包含所有選取的附件。詳情請參閱「編輯 Looker (Google Cloud Core) 執行個體設定」。

驗證生產者的服務連結設定

您也應檢查生產者專案中的服務連結設定,確保設定正確無誤,可接收來自 Looker (Google Cloud Core) 的連線。

在 Google Cloud 控制台中,依序前往「Network Services」(網路服務) >「Private Service Connect」(Private Service Connect),然後點選「Published Services」(發布的服務) 分頁標籤。按一下用於連線的服務附件,即可查看詳細資料。

確認符合下列規定:

  • 服務連結已設定有效的目標轉送規則和專屬的 Private Service Connect NAT 子網路。
  • 「連線偏好設定」設為 Accept automatically。如果連線偏好為 Accept for selected networksAccept for selected projects,請確認 Looker (Google Cloud Core) 專案的連線已獲准。
  • 目標服務指向正確的轉送規則。
  • NAT 子網路已正確設定,且有足夠的 IP 空間。
  • 提供給 Looker (Google Cloud Core) 執行個體的服務連結 URI 正確無誤。

您可以使用 Google Cloud 控制台或執行 gcloud compute service-attachments update 指令,更新服務附件設定。

確認防火牆規則

Looker (Google Cloud Core) 的流量會透過 Private Service Connect NAT 子網路進入 VPC。您必須設定防火牆規則,允許這類流量傳送至負載平衡器的後端。

如要驗證防火牆規則,請按照下列步驟操作:

  1. 找出服務連結上設定的 Private Service Connect NAT 子網路 IP 範圍。
  2. 在 Google Cloud 控制台中,前往生產者 VPC 的「Firewall」(防火牆) 頁面。
  3. 確認有允許輸入的防火牆規則,允許 TCP 流量從 Private Service Connect NAT 子網路傳送至負載平衡器的後端,並使用服務所用的通訊埠。規則應符合下列條件:
    • 來源篩選器:來源 IP 範圍包含 Private Service Connect NAT 子網路範圍。
    • 目標:規則會套用至內部負載平衡器後端 (例如透過網路標記)。
    • 通訊協定和通訊埠:這項規則允許目標服務通訊埠的 TCP 流量。

如果沒有這類規則,或是優先順序較高的規則拒絕這類流量,請建立輸入防火牆規則,允許來自 Private Service Connect NAT 子網路的流量。

驗證負載平衡器和網路端點群組設定

您的服務會透過內部負載平衡器和指向服務的網路端點群組 (NEG),向 Looker (Google Cloud Core) 公開。確認這些元件運作正常且設定正確無誤。

如要檢查 NEG 設定,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,依序前往「網路服務」>「負載平衡」
  2. 按一下負載平衡器,然後按一下後端服務,即可查看詳細資料。
  3. 在後端服務詳細資料中,按一下網路端點群組的名稱。
  4. 確認「網路端點群組類型」
    • 如要透過 Cloud VPN 或 Cloud Interconnect 存取內部部署或多雲端服務,類型應為混合式連線 NEG (NON_GCP_PRIVATE_IP_PORT)。
    • 如果是 Git 供應商等公開網際網路服務,類型應為「網際網路 NEG」 (INTERNET_FQDN_PORT)。
  5. 在「網路端點」部分,確認 IP 位址和通訊埠 (適用於混合式 NEG) 或 FQDN 和通訊埠 (適用於網際網路 NEG) 與目標服務正確相符。

如果 NEG 設定有誤,您可能需要更新或建立新的 NEG。

驗證 DNS 解析和路由

如果無法從 Looker (Google Cloud Core) 連線,但其他疑難排解步驟顯示沒有問題,請從生產者 VPC 內部測試連線,以找出問題:

  1. 在與內部負載平衡器相同的供應商虛擬私有雲和子網路中,建立暫時的 Compute Engine VM。
  2. 從該 VM 使用 telnetnc 等工具,測試服務通訊埠上負載平衡器轉送規則 IP 位址的連線能力,例如:telnet LOAD_BALANCER_IP TARGET_PORT

如果可以從 VM 成功連線,問題可能出在從 Looker (Google Cloud 核心) 到 VPC 的路徑。請重新檢查服務附件和 Looker (Google Cloud Core) 執行個體設定。

如果無法從 VM 連線,問題可能出在供應商虛擬私有雲。檢查負載平衡器的轉送規則、後端服務狀態,以及虛擬私有雲中的防火牆規則。

調查特定服務連線問題

透過 Private Service Connect 連線時,特定目標服務有獨特的需求或依附元件。

Snowflake:次要儲存端點

Snowflake JDBC 驅動程式通常會從中繼雲端儲存空間位置 (例如 Amazon S3 或 Azure Blob 儲存空間) 下載結果集或中繼資料,而不是從主要資料庫主機下載。如果 Looker (Google Cloud Core) 無法連上這些次要端點,連線或查詢可能會失敗,尤其是大型結果集。

解決方法:

  1. 檢查 Looker (Google Cloud Core) 記錄,找出參照外部儲存空間網域 (例如 s3.amazonaws.comblob.core.windows.net) 的逾時錯誤。
  2. 找出 Snowflake 執行個體所需的儲存端點完整 FQDN。您可以在 Snowflake 記錄中找到這項資訊,或與 Snowflake 支援團隊聯絡。
  3. 每個外部 FQDN 都必須設定為個別的南向連線。為儲存空間端點的 FQDN 建立新的 Private Service Connect 設定 (網際網路 NEG、負載平衡器和服務連結)。
  4. 將新的服務附件新增至 Looker (Google Cloud Core) 執行個體的設定。

公開 Git 供應商:輸出至網際網路

採用私人 IP 設定的 Looker (Google Cloud Core) 執行個體沒有前往公開網際網路的預設路徑。如要連線至 GitHub 或 GitLab 等公開 Git 供應商,您必須明確設定輸出路徑。

解決方法:

  1. 確認您是否嘗試從私人 IP 執行個體連線至公開 Git 供應商。連線失敗通常會顯示一般逾時或 SSL 交握錯誤。
  2. 使用網際網路 NEG 建立南向 Private Service Connect 連線。
  3. 確認網際網路 NEG 已設定正確的通訊埠 (例如,SSH 的通訊埠 22 或 HTTPS 的通訊埠 443)。
  4. 如果虛擬私有雲中有 DNS 覆寫政策,會使用以 FQDN 為基礎的網際網路 NEG 建立轉送迴圈,請考慮改用以 IP 為基礎的網際網路 NEG (INTERNET_IP_PORT)。

Action Hub 和 Marketplace

根據預設,Google 代管的 Looker (Google Cloud Core) Marketplace 和 Action Hub 是公開網際網路服務,無法從私人 IP 執行個體存取。

  • 動作中心:如要搭配私人 IP 執行個體使用動作中心,您必須部署自架的私人動作中心伺服器,並使用南向 Private Service Connect 連線連線至該伺服器。
  • Marketplace:如要連線至 Looker Marketplace,請在執行個體的輸出連線設定中啟用 Marketplace 連線。啟用後,Looker (Google Cloud Core) 會使用 Secure Web Proxy 直接連線至 Marketplace 和 github.com。詳情請參閱「連線至 Looker Marketplace」。如果未啟用這項連線,您必須從 Git 存放區手動下載擴充功能或積木,並以本機專案的形式安裝。

檢查記錄

虛擬私有雲流量記錄和負載平衡器記錄 (例如內部應用程式負載平衡器記錄內部直通式網路負載平衡器記錄) 可提供更多連線問題的深入分析。

在負載平衡器使用的子網路上啟用虛擬私有雲端流程記錄,並在內部負載平衡器的後端服務上啟用記錄功能,然後嘗試從 Looker (Google Cloud Core) 連線,重現錯誤。

在 Cloud Logging 中查詢虛擬私有雲流量記錄,並篩選從 Private Service Connect NAT 子網路 IP 範圍到負載平衡器 IP 位址的流量。如果流量已抵達負載平衡器,請查詢負載平衡記錄,瞭解後端的連線狀態。