持久化 Grafana 仪表板
要在重启 Grafana 实例后保存 Grafana 仪表板,请将仪表板的配置 JSON 添加到 ConfigMap 中。ConfigMap 还支持使用基于 GitOps 或 CD 的方法来部署仪表板,从而让你对仪表板进行版本控制。
创建持久化 Grafana 仪表板
先决条件:
|
1. 获取要持久化的仪表板的 JSON 模型
要创建持久化仪表板,你需要获取要持久化的仪表板的 JSON 模型。你可以使用预制仪表板或自行构建仪表板。
要使用预制仪表板,请转到 https://grafana.com/grafana/dashboards,打开详细信息页面,然后单击 Download JSON 按钮来获取下一步所需的 JSON 模型。
要使用你自己的仪表板:
-
点击链接打开 Grafana。在集群详细信息页面上,单击 Monitoring。
-
登录到 Grafana。请注意,Grafana 实例的默认 Admin 用户名和密码是
admin/prom-operator
。你还可以在部署或升级 Chart 时替换凭证。无论谁拥有密码,你都需要在部署了 Rancher Monitoring 的项目中至少具有管理服务或查看监控的权限才能访问 Grafana 实例。你还可以在部署或升级 Chart 时替换凭证。
-
使用 Grafana UI 创建仪表板。完成后,单击顶部导航菜单中的齿轮图标转到仪表板设置页面。在左侧导航菜单中,单击 JSON Model。
-
复制出现的 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:
-
在左上角,单击 ☰ > 集群管理。
-
在集群页面上,转到要可视化的集群,然后单击 Explore。
-
单击menu:更多资源[核心 > 配置映射]。
-
单击创建。
-
设置与上例类似的键值对。输入
<dashboard-name>.json
的值时,点击从文件读取并上传 JSON 数据模型。 -
单击创建。
结果:创建 ConfigMap 后,即使 Grafana pod 重启了,ConfigMap 也能显示在 Grafana UI 上并持久化。
无法在 Grafana UI 中删除或编辑使用 ConfigMap 持久化了的仪表板。
如果你在 Grafana UI 中删除仪表板,你将看到 "Dashboard cannot be deleted because it was provisioned" 的错误消息。如需删除仪表板,你需要删除 ConfigMap。