建立視覺化資訊主頁

本頁說明如何在 系統監控執行個體。 使用資訊主頁在專案中執行監控作業,例如網路監控和伺服器監控。

Observability 平台收集 GDC 專案中部署的工作負載產生的指標後,設定會儲存相關聯的指標標籤,並彙整所有資料來源的檔案。接著,您可以在監控執行個體的使用者介面 (UI) 中,建立自訂資訊主頁來查詢及顯示特定指標。

資訊主頁是動態視覺化配置,由一或多個可自訂面板組成,可與資料來源中設定的 Prometheus 指標互動。您可以透過查詢,使用這些面板來顯示及呈現 GDC 元件的特定指標。

可觀測性平台會公開 API,讓您設定指標的視覺化排列方式。例如,建立接受門檻、顯示適當信號、標示圖表,以及選擇一致的時間解析度。

可用的資訊主頁

假設您的環境已啟動並執行,您會立即在監控執行個體的首頁看到幾個指標資訊主頁。舉例來說,您可以觀察交換器狀態和系統元件的健康狀態。

使用交換器和叢集資訊主頁監控叢集和節點指標。存取記錄和監控資訊主頁,觀察管理員叢集。

首頁會列出可用的資訊主頁和最近查看的資訊主頁

以下是最相關的平台管理員 (PA) 指標:

  • Kubernetes / API 伺服器:顯示機構中每個叢集的 API 伺服器健康狀態。
  • Kubernetes / 運算資源 / 多叢集:顯示整個機構的資源用量。
  • 「Kubernetes」/「運算資源」/「叢集」:顯示每個叢集的資源使用率。
  • Kubernetes / 永久磁碟區:顯示每個叢集中 Kubernetes 永久磁碟區的使用率。
  • 節點狀態:顯示每個叢集各節點的資源用量。
  • Pod 狀態:顯示每個叢集中每個 Pod 的資源消耗量。

下圖顯示 Kubernetes / 運算資源 / 多叢集資訊主頁的範例。

顯示 CPU 使用率的折線圖,以及顯示 CPU 配額的叢集清單

存取專案的監控執行個體

您必須取得授權,才能存取監控資訊主頁。如要取得登入及查看專案監控執行個體中指標所需的權限,請要求機構 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 中建立資訊主頁:

  1. 完成「事前準備」一節中的必備條件
  2. 開啟專案的 Grafana 端點
  3. 為資訊主頁建立 ConfigMap 物件
  4. 建立Dashboard自訂資源 (CR)

事前準備

建立資訊主頁前,您必須先取得監控執行個體的存取權。詳情請參閱「取得資訊主頁的存取權」。

  1. 建立資訊主頁前,請先收集 GDC 專案的指標
  2. 如要登入、建立資訊主頁及顯示指標,請要求專案 IAM 管理員授予您專案 Grafana 檢視者 (project-grafana-viewer) 角色。
  3. 將 kubeconfig 檔案的路徑設為環境變數:

    export KUBECONFIG=KUBECONFIG_FILE
    

    KUBECONFIG_FILE 替換為要在其中建立資訊主頁的管理員叢集 kubeconfig 檔案路徑。

監控端點

開啟下列網址,存取專案的端點:

https://GDC_URL/PROJECT_NAMESPACE/grafana

更改下列內容:

  • GDC_URL:您在 GDC 中的機構網址。
  • PROJECT_NAMESPACE:專案的命名空間。

為資訊主頁建立 ConfigMap 物件

請按照下列步驟建立包含資訊主頁 JSON 模型的 ConfigMap 物件:

  1. 前往專案的端點
  2. 按一下導覽選單中的「新增」按鈕。
  3. 在顯示的下拉式選單中,按一下「資訊主頁」。執行個體會建立空白資訊主頁。
  4. 在空白資訊主頁上,新增所有需要的面板。你可以自訂詳細資料和編輯面板,以提供查詢或進行其他更新。

  5. 按一下選單列中的「資訊主頁設定」按鈕,開啟「設定」頁面。

  6. 按一下導覽選單中的「JSON Model」選項。

  7. 複製資訊主頁的 JSON 模型,並貼到純文字檔案中,方便日後使用。

  8. 將最上層的 iduid 欄位替換為 JSON 模型中的 null 值。

  9. 透過指令列建立 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 範例

  10. 將資訊主頁的 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),並在指定專案中啟用資訊主頁:

  1. 從指令列建立 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 模型的文件指定的名稱。
  2. Dashboard CR 部署到專案命名空間。這項動作會設定 Observability 服務,將預先定義的資訊主頁匯入專案的監控執行個體。

資訊主頁會與其他專案隔離,指標和記錄也是如此。因此,如要在多個專案中使用同一個資訊主頁,請在每個專案中部署 Dashboard CR。此外,資訊主頁存取的記錄和監控資料必須在所有這些專案中提供。

處理資訊主頁的程序會偵測 Dashboard CR 和 ConfigMap 物件的變更。如果您修改其中一個,程式會在監控執行個體中反映變更。如要更新或刪除資訊主頁,請在 CR 中套用變更,然後重新部署。您無法儲存直接在監控 UI 中執行的任何更新。

如要在資料夾中建立資訊主頁或變更資料夾,請修改 Dashboard CR 的 spec 區段中 foldername 的值。否則請保留 Default。如果資料夾不存在,系統會自動建立。