本頁說明如何在 系統監控執行個體。 使用資訊主頁在專案中執行監控作業,例如網路監控和伺服器監控。
Observability 平台收集 GDC 專案中部署的工作負載產生的指標後,設定會儲存相關聯的指標標籤,並彙整所有資料來源的檔案。接著,您可以在監控執行個體的使用者介面 (UI) 中,建立自訂資訊主頁來查詢及顯示特定指標。
資訊主頁是動態視覺化配置,由一或多個可自訂面板組成,可與資料來源中設定的 Prometheus 指標互動。您可以透過查詢,使用這些面板來顯示及呈現 GDC 元件的特定指標。
可觀測性平台會公開 API,讓您設定指標的視覺化排列方式。例如,建立接受門檻、顯示適當信號、標示圖表,以及選擇一致的時間解析度。
可用的資訊主頁
假設您的環境已啟動並執行,您會立即在監控執行個體的首頁看到幾個指標資訊主頁。舉例來說,您可以觀察交換器狀態和系統元件的健康狀態。
使用交換器和叢集資訊主頁監控叢集和節點指標。存取記錄和監控資訊主頁,觀察管理員叢集。
以下是最相關的平台管理員 (PA) 指標:
- Kubernetes / API 伺服器:顯示機構中每個叢集的 API 伺服器健康狀態。
- Kubernetes / 運算資源 / 多叢集:顯示整個機構的資源用量。
- 「Kubernetes」/「運算資源」/「叢集」:顯示每個叢集的資源使用率。
- Kubernetes / 永久磁碟區:顯示每個叢集中 Kubernetes 永久磁碟區的使用率。
- 節點狀態:顯示每個叢集各節點的資源用量。
- Pod 狀態:顯示每個叢集中每個 Pod 的資源消耗量。
下圖顯示 Kubernetes / 運算資源 / 多叢集資訊主頁的範例。
存取專案的監控執行個體
您必須取得授權,才能存取監控資訊主頁。如要取得登入及查看專案監控執行個體中指標所需的權限,請要求機構 IAM 管理員授予您機構 Grafana 檢視者 (organization-grafana-viewer
) 角色。機構 IAM 管理員可以建立角色繫結,授予您存取權:
kubectl --kubeconfig ADMIN_KUBECONFIG create rolebinding pa-grafana-viewer-binding -n platform-obs --user=USER_NAME --clusterrole=organization-grafana-viewer
更改下列內容:
- ADMIN_KUBECONFIG:管理員叢集的 kubeconfig 檔案路徑。
- USER_NAME:需要角色繫結的使用者帳戶名稱。
如要進一步瞭解角色指派,請參閱下列資源:
建立 Grafana 資訊主頁
本節說明如何在 Grafana 執行個體中建立及管理資訊主頁。
請按照下列步驟在 GDC 中建立資訊主頁:
事前準備
建立資訊主頁前,您必須先取得監控執行個體的存取權。詳情請參閱「取得資訊主頁的存取權」。
- 建立資訊主頁前,請先收集 GDC 專案的指標。
- 如要登入、建立資訊主頁及顯示指標,請要求專案 IAM 管理員授予您專案 Grafana 檢視者 (
project-grafana-viewer
) 角色。 將 kubeconfig 檔案的路徑設為環境變數:
export KUBECONFIG=KUBECONFIG_FILE
將 KUBECONFIG_FILE 替換為要在其中建立資訊主頁的管理員叢集 kubeconfig 檔案路徑。
監控端點
開啟下列網址,存取專案的端點:
https://GDC_URL/PROJECT_NAMESPACE/grafana
更改下列內容:
- GDC_URL:您在 GDC 中的機構網址。
- PROJECT_NAMESPACE:專案的命名空間。
為資訊主頁建立 ConfigMap
物件
請按照下列步驟建立包含資訊主頁 JSON 模型的 ConfigMap
物件:
- 前往專案的端點。
- 按一下導覽選單中的「新增」 按鈕。
- 在顯示的下拉式選單中,按一下「資訊主頁」。執行個體會建立空白資訊主頁。
在空白資訊主頁上,新增所有需要的面板。你可以自訂詳細資料和編輯面板,以提供查詢或進行其他更新。
按一下選單列中的「資訊主頁設定」
按鈕,開啟「設定」頁面。按一下導覽選單中的「JSON Model」選項。
複製資訊主頁的 JSON 模型,並貼到純文字檔案中,方便日後使用。
將最上層的
id
和uid
欄位替換為 JSON 模型中的null
值。透過指令列建立
ConfigMap
物件。在ConfigMap
物件的data
區段中,貼上您先前在.json
檔案中複製的 JSON 模型:cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f - apiVersion: v1 kind: ConfigMap metadata: namespace: PROJECT_NAMESPACE name: DASHBOARD_CONFIGMAP_NAME data: JSON_FILE_NAME.json: | { <JSON model of the dashboard> } EOF
更改下列內容:
- PROJECT_NAMESPACE:專案的命名空間。
- DASHBOARD_CONFIGMAP_NAME:您要為
ConfigMap
物件命名的名稱。 - JSON_FILE_NAME:您要為貼上資訊主頁 JSON 模型的檔案命名。
如要查看這個物件的範例,請參閱資訊主頁的
ConfigMap
範例。將資訊主頁的
ConfigMap
物件部署至管理員叢集。
資訊主頁的 ConfigMap
範例
下列 YAML 檔案範例顯示 platform-obs
命名空間中指標的資訊主頁 ConfigMap
物件:
apiVersion: v1
kind: ConfigMap
metadata:
namespace: platform-obs
name: my-project-dashboard-configmap
data:
my-project-dashboard.json: |
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"graphTooltip": 0,
"id": null,
"links": [],
"panels": [],
"schemaVersion": 27,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Sample dashboard",
"uid": null,
"version": 0
}
建立Dashboard
自訂資源
請按照下列步驟建立Dashboard
自訂資源 (CR),並在指定專案中啟用資訊主頁:
從指令列建立
Dashboard
CR,並使用您為資訊主頁ConfigMap
物件指定的名稱設定檔案:cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f - apiVersion: observability.gdc.goog/v1alpha1 kind: Dashboard metadata: namespace: PROJECT_NAMESPACE name: CUSTOM_RESOURCE_NAME spec: configMapRef: name: DASHBOARD_CONFIGMAP_NAME namespace: PROJECT_NAMESPACE key: JSON_FILE_NAME.json foldername: Default EOF
更改下列內容:
- PROJECT_NAMESPACE:專案的命名空間。
- CUSTOM_RESOURCE_NAME:您要授予
Dashboard
自訂資源的名稱。 - DASHBOARD_CONFIGMAP_NAME:您為資訊主頁的
ConfigMap
物件指定的名稱。 - JSON_FILE_NAME:您在
ConfigMap
物件中為包含資訊主頁 JSON 模型的文件指定的名稱。
將
Dashboard
CR 部署到專案命名空間。這項動作會設定 Observability 服務,將預先定義的資訊主頁匯入專案的監控執行個體。
資訊主頁會與其他專案隔離,指標和記錄也是如此。因此,如要在多個專案中使用同一個資訊主頁,請在每個專案中部署 Dashboard
CR。此外,資訊主頁存取的記錄和監控資料必須在所有這些專案中提供。
處理資訊主頁的程序會偵測 Dashboard
CR 和 ConfigMap
物件的變更。如果您修改其中一個,程式會在監控執行個體中反映變更。如要更新或刪除資訊主頁,請在 CR 中套用變更,然後重新部署。您無法儲存直接在監控 UI 中執行的任何更新。
如要在資料夾中建立資訊主頁或變更資料夾,請修改 Dashboard
CR 的 spec
區段中 foldername
的值。否則請保留 Default
。如果資料夾不存在,系統會自動建立。