金融和醫療照護等受監管的產業,需要監控重要基礎架構,同時將資料嚴格保留在區域範圍內。
開放原始碼軟體 (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 公開。
元件
| 元件 | 技術 | 目的 |
|---|---|---|
| 遙測收集器 | 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 進行主權觀測能力和監控」。