以開放原始碼軟體 (OSS) 為基礎的監控

金融和醫療照護等受監管的產業,需要監控重要基礎架構,同時將資料嚴格保留在區域範圍內。

開放原始碼軟體 (OSS) 可輔助及擴充 Cloud de Confiance by S3NS目前提供的 Cloud Monitoring 和 Cloud Logging 功能。這個範例說明如何在Cloud de Confiance by S3NS 上新增廣泛使用的開放原始碼工具,建立完整的自主可觀測性解決方案。

這個架構使用 OpenTelemetry、Grafana Mimir 和 Grafana Loki (由 Cloud Storage 支援)、Grafana 和 Fluent Bit,為 Google Kubernetes Engine (GKE) 和 Compute Engine 產生指標、記錄、視覺化內容和快訊。所有資料都會保留在主權區域內,且不需支付第三方軟體式服務 (SaaS) 費用。

建議您訂閱相關版本資訊,以便日後掌握 Cloud de Confiance by S3NS 觀測能力的更新資訊。

您可以按照隨附的 參考實作,使用 Terraform 部署這項解決方案。

目標對象

這項解決方案適用於需要在主權Cloud de Confiance by S3NS 環境中監控工作負載的公司。服務對象包括:

  • 網站可靠性工程師 (SRE) 和 DevOps 領導者:佈建自動化且可擴充的指標儲存空間和記錄管道,監控應用程式健康狀態及追蹤系統服務等級協議 (SLA),無須手動維護匯出工具。
  • 法規遵循和資安人員:確保機密應用程式記錄、指標和作業信號保留在主權邊界內,避免非主權 SaaS 資料外流。
  • 企業雲端架構師:建立標準化的 OpenTelemetry 基礎,立即解除雲端遷移限制,並提供順暢的遷移路徑,以便轉換至第一方雲端監控。

核心功能

  • 主權可觀測性和本機資料保留:使用 Cloud Storage bucket,在當地主權基礎架構中收集、處理及儲存 Compute Engine 的應用程式指標和 GKE 記錄。
  • OpenTelemetry 標準擷取:使用 OpenTelemetry 收集器,以提取式 Prometheus 抓取和推送式 OpenTelemetry Protocol (OTLP) 指標擷取資料。這種做法可確保日後與第一方 Cloud Monitoring 相容。
  • 可擴充的 Cloud Storage 支援指標儲存空間:設定 Grafana Mimir 和 Grafana Loki,將 Cloud Storage 做為可用性高、符合成本效益的 Prometheus 指標區塊後端。
  • 統一遙測資料視覺化:查看預先設定的 Grafana 資訊主頁,顯示即時應用程式指標、Grafana Loki 記錄串流、Compute Engine VM stdout 記錄,以及整合 Cloud Logging 資料來源。
  • Compute Engine VM 記錄管道:在 Compute Engine VM 上自動安裝 Fluent Bit 和 OpenTelemetry Collector Contrib,將 systemd-journald 和 stdout 記錄串流至 Grafana Loki、Cloud Logging 或兩者。您也可以收集 VM 主機指標和合成 OTLP 應用程式指標,透過 mTLS 轉送至 Mimir。
  • 彈性自動化部署:使用 Terraform 的基礎架構即程式碼 (IaC) 方法,以及 Helm 的 Kubernetes 套件管理,以一致的方式設定及拆除環境。

架構

這個架構使用 OpenTelemetry 收集器、Grafana Mimir、Grafana Loki、 kube-state-metrics、Fluent Bit、cert-manager 和 Grafana,透過 Cloud Storage 儲存指標,並透過 Cloud Logging 儲存記錄,監控 Compute Engine 和 GKE 工作負載。虛擬私有雲 (VPC) 內的 Mimir 和 Loki 透過 mTLS 使用內部應用程式負載平衡器,讓 Compute Engine VM 推送指標和記錄。Grafana 透過區域性 GKE Gateway,在外部以 HTTPS 公開。

Compute Engine VM 和 GKE 叢集使用開放原始碼監控工具,將資料儲存在 Cloud Storage,並與 Cloud Logging 和 Cloud Monitoring 整合。

元件

元件 技術 目的
遙測收集器 OpenTelemetry 收集器 集中式遙測管道,可處理 OpenTelemetry Protocol (OTLP) HTTP/gRPC 指標、擷取 Prometheus 端點,並轉送至 Mimir。
指標資料庫 Grafana Mimir 可用性高、長期保存的 Prometheus 指標儲存資料庫,在 Cloud Storage 中具有永久區塊。
記錄資料庫 Grafana Loki 可水平擴充的多租戶記錄匯總資料庫,可將區塊和 TSDB 索引永久儲存在 Cloud Storage。
物件 儲存空間 Cloud Storage 佈建 Mimir 指標、Loki 記錄和共用監控構件的專用 bucket。
叢集狀態指標 kube-state-metrics 監聽 Kubernetes API 伺服器,並產生叢集物件 (例如 Deployment、節點或 Pod) 狀態的指標。由 OpenTelemetry Collector 使用 ServiceMonitor 擷取。
PKI 和憑證 cert-manager & PKI 簽發者 啟動內部根 CA 和 ClusterIssuer,為叢集內元件和獨立的 Compute Engine VM 核發 TLS/mTLS 憑證。
Google Kubernetes Engine 記錄收集器 Fluent Bit (DaemonSet) 收集 GKE 節點的容器 stdout 記錄,並加入 Kubernetes 中繼資料,然後使用 OTLP mTLS 轉送至 GKE OTel 收集器。
VM 記錄收集器 Fluent Bit 和 OpenTelemetry Contrib 使用 systemd-journald 收集獨立 Compute Engine VM 的 OS 和應用程式 stdout 記錄,並串流至 Cloud Logging。
集中記錄 Cloud Logging Compute Engine VM 和平台記錄檔的集中式記錄檔接收器。
視覺化和快訊 Grafana 資訊主頁視覺化層,預先設定 Mimir、Grafana Loki、Cloud Monitoring 和 Cloud Logging 的資料來源。
推送試用版應用程式 Python (信標應用程式) 示範微服務,每 5 秒將合成 OTLP 指標推送至 OpenTelemetry 收集器。
提取試用版應用程式 Python (感應器應用程式) 示範微服務,用於公開 OpenTelemetry 收集器擷取的標準 /metrics Prometheus 端點。
示範應用程式 Python 在 Compute Engine VM 上執行的示範應用程式,會將結構化 JSON 記錄產生至標準輸出。
部署作業 Terraform 和 Helm 自動部署虛擬私有雲、GKE 叢集、Cloud Storage bucket、Identity and Access Management (IAM) 角色、Compute Engine VM 和 Helm 圖表。

參考實作

GitHub 提供這項解決方案的參考實作,並搭配 Terraform。請注意,這是為展示目的而建構的概念驗證原型,實作方式未經過稽核或安全防護,不適用於實際工作環境。

如需瞭解必要條件和部署操作說明,請參閱「使用 Grafana 和 OpenTelemetry 進行主權觀測能力和監控」。