跳至主要内容

持久化 Grafana 儀表板

為了讓 Grafana 儀表板在 Grafana 實例重新啟動後能夠持久化,請將儀表板設定 JSON 新增到 ConfigMap 中。ConfigMap 還允許使用 GitOps 或 CD 基礎方法部署儀表板。這允許將儀表板置於版本控制之下。

建立持久化 Grafana 儀表板​

先決條件:
  • 需要安裝監控應用程式。
  • 若要建立持久化儀表板,您必須在包含 Grafana 儀表板的專案或命名空間中至少被指派 Manage Config Maps Rancher RBAC 權限。這對應於監控圖表公開的 monitoring-dashboard-edit 或 monitoring-dashboard-admin Kubernetes 原生 RBAC 角色。
  • 若要查看外部監控 UI 的連結(包括 Grafana 儀表板),您至少需要專案成員角色。

1. 取得您想要持久化的儀表板的 JSON 模型​

若要建立持久化儀表板,您需要取得要持久化的儀表板的 JSON 模型。您可以使用預製的儀表板或建立自己的儀表板。

若要使用預製的儀表板,請前往 https://grafana.com/grafana/dashboards,開啟其詳細資訊頁面,然後點擊 Download JSON 按鈕以取得下一步所需的 JSON 模型。

若要使用您自己的儀表板:

  1. 點擊連結以開啟 Grafana。在叢集詳細資訊頁面上,點擊 Monitoring。

  2. 登入 Grafana。注意:Grafana 實例的預設管理員使用者名稱和密碼為 admin/prom-operator。也可以在部署或升級圖表時提供替代憑證。

    備註

    無論誰擁有密碼,為了存取 Grafana 實例,您仍然需要在部署 Rancher Monitoring 的專案中至少具有 Manage Services 或 View Monitoring 權限。也可以在部署或升級圖表時提供替代憑證。

  3. 使用 Grafana 的 UI 建立儀表板。完成後,透過點擊頂部導航選單中的齒輪圖示進入儀表板的設定。在左側導航選單中,點擊 JSON Model。

  4. 複製出現的 JSON 資料結構。

2. 使用 Grafana JSON 模型建立 ConfigMap​

在包含 Grafana 儀表板的命名空間中建立 ConfigMap(例如,預設為 cattle-dashboards)。

ConfigMap 應該如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
labels:
grafana_dashboard: "1"
name: <dashboard-name>
namespace: cattle-dashboards # 如果使用非預設命名空間,請更改
data:
<dashboard-name>.json: |-
<copied-json>

預設情況下,Grafana 設定為監視 cattle-dashboards 命名空間中所有帶有 grafana_dashboard 標籤的 ConfigMap。

若要指定您希望 Grafana 監視所有命名空間中的 ConfigMap,請參閱此部分。

若要透過 Rancher UI 建立 ConfigMap,首先確保您目前已登入 Grafana UI,以確保儀表板匯入時不會遇到權限問題。然後,返回 Rancher UI 並執行以下步驟:

  1. 在左上角,點擊 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,前往您要查看視覺化效果的叢集並點擊 Explore。
  3. 點擊 More Resources > Core > ConfigMaps。
  4. 點擊 Create。
  5. 在 Data 標籤上,設定類似上面範例的鍵值對。輸入 <dashboard-name>.json 的值時,點擊 Read from File 以將 JSON 資料模型作為值上傳。
  6. 在 Labels & Annotations 標籤上,點擊 Add Label 並輸入 grafana_dashboard 作為鍵,1 作為值。
  7. 點擊 Create。

結果: 建立 ConfigMap 後,它應該會顯示在 Grafana UI 上,即使 Grafana Pod 重新啟動也會持久化。

備註

如果您修改了 Helm 圖表以監視不同的儀表板標籤和值,實際的鍵值對可能會有所不同。

使用 ConfigMap 持久化的儀表板無法從 Grafana UI 中刪除或編輯。

如果您嘗試在 Grafana UI 中刪除儀表板,您將看到錯誤訊息「Dashboard cannot be deleted because it was provisioned.」。要刪除儀表板,您需要刪除 ConfigMap。

為 Grafana 儀表板 ConfigMap 設定命名空間​

若要指定您希望 Grafana 監視所有命名空間中的 ConfigMap,請在 rancher-monitoring Helm 圖表中設定此值:

grafana.sidecar.dashboards.searchNamespace=ALL

請注意,監控圖表公開的 RBAC 角色(用於新增 Grafana 儀表板)仍然限制為為使用者提供在 grafana.dashboards.namespace 中定義的命名空間中新增儀表板的權限,預設為 cattle-dashboards。

已知問題​

對於使用 Monitoring V2 v9.4.203 或更早版本的使用者,解除安裝監控圖表將刪除 cattle-dashboards 命名空間,這將刪除所有持久化儀表板,除非命名空間標記有註解 helm.sh/resource-policy: "keep"。

此註解將在 Rancher v2.5.8 發布的新監控圖表中預設新增,但對於較早 Rancher 版本的使用者,仍需手動應用。