本文件說明如何設定 Google Kubernetes Engine 部署作業,以便使用 Google Cloud Managed Service for Prometheus 收集 HAProxy 的指標。本文件說明如何執行下列操作:
- 設定 HAProxy 回報指標。
- 為 Managed Service for Prometheus 設定 PodMonitoring 資源,以便收集匯出的指標。
- 在 Cloud Monitoring 中存取資訊主頁,查看指標。
- 設定快訊規則來監控指標。
只有在您將 代管收集作業與 Managed Service for Prometheus 搭配使用時,才適用這些操作說明。如果您使用的是自行部署的收集,請參閱 HAProxy 說明文件,瞭解安裝資訊。
這些操作說明僅供參考,應可在大多數 Kubernetes 環境中運作。如果您因安全性限制或機構政策而無法順利安裝應用程式或匯出程式,建議您參閱開放原始碼文件尋求支援。
如要瞭解 HAProxy,請參閱 HAProxy。
事前準備
如要使用 Managed Service for Prometheus 和代管收集作業,從 HAProxy 的 PROMETHEUS 服務收集指標,您的部署作業必須符合下列規定:
- 您的叢集必須執行 Google Kubernetes Engine 1.21.4-gke.300 以上版本。
- 您必須在啟用代管收集作業的情況下,執行 Managed Service for Prometheus。詳情請參閱「 開始使用代管集合」。
- 如要使用 Cloud Monitoring 提供的資訊主頁,以便整合 HAProxy,您必須使用
haproxy_promex
2.4 以上版本。如要進一步瞭解可用的資訊主頁,請參閱「查看資訊主頁」。
frontend
時,HAProxy 才會公開 Prometheus 格式指標。
大多數版本為 2.4 以上版本的官方 Docker 映像檔,都是在啟用這項服務的情況下建構而成。
下列設定範例是參考 HAProxy Enterprise 說明文件所建構。這項工具可搭配社群版使用,並可視特定需求進行修改:
修改 HAProxy 設定
修改 HAProxy 設定,如以下範例所示:
您必須在設定中加入任何前面有 +
符號的行。
如要套用本機檔案中的設定變更,請執行下列指令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您也可以使用 Terraform 管理設定。
如要驗證 HAProxy 的 PROMEX 服務是否會在預期的端點上發出指標,請執行下列操作:
- 使用下列指令設定通訊埠轉送:
kubectl -n NAMESPACE_NAME port-forward POD_NAME 8404
- 在其他終端機工作階段中,使用瀏覽器或
curl
公用程式存取端點localhost:8404/metrics
。
定義 PodMonitoring 資源
針對目標探索,Managed Service for Prometheus Operator 需要 PodMonitoring 資源,該資源必須對應至相同命名空間中 HAProxy 的 PROMETHEUS 服務。
您可以使用下列 PodMonitoring 設定:
請確認port
和 matchLabels
欄位的值與要監控的 HAProxy Pod 相符。
HAProxy 會公開 bind
設定選項中定義的目標指標。使用者必須定義要監聽的 IP 位址和通訊埠,才能使用這個選項來抓取指標。
如要套用本機檔案中的設定變更,請執行下列指令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您也可以使用 Terraform 管理設定。
定義規則和快訊
您可以使用下列 Rules
設定,針對 HAProxy 指標定義警示:
如要套用本機檔案中的設定變更,請執行下列指令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您也可以使用 Terraform 管理設定。
如要進一步瞭解如何將規則套用至叢集,請參閱「受管理的規則評估和快訊」。
驗證設定
您可以使用 Metrics Explorer 確認是否已正確設定 HAProxy 的 PROMEX 服務。Cloud Monitoring 可能需要一或兩分鐘的時間才能擷取指標。
如要確認已擷取指標,請執行下列操作:
-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在查詢建構工具窗格的工具列中,選取名稱為 code MQL 或 code PromQL 的按鈕。
- 確認「Language」切換鈕中已選取「PromQL」。語言切換鈕位於可讓您設定查詢格式的工具列中。
- 輸入並執行以下查詢:
up{job="haproxy", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
查看資訊主頁
Cloud Monitoring 整合功能包含 HAProxy Prometheus 總覽資訊主頁。設定整合後,系統會自動安裝資訊主頁。您也可以不必安裝整合功能,直接查看資訊主頁的靜態預覽畫面。
如要查看已安裝的資訊主頁,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Dashboards」(資訊主頁)
頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 選取「資訊主頁清單」分頁標籤。
- 選擇「整合」類別。
- 按一下資訊主頁名稱,例如「HAProxy Prometheus 總覽」。
如要查看資訊主頁的靜態預覽畫面,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Integrations」(整合) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 按一下「Kubernetes Engine」部署平台篩選器。
- 找出 HAProxy 整合,然後按一下「查看詳細資料」。
- 選取「資訊主頁」分頁標籤。
疑難排解
如要瞭解如何排解指標攝入問題,請參閱「 排解攝入端問題」一文中的「 從匯出工具收集資料時發生的問題」。