配置仪表盘和数据源
简介
了解如何通过从版本控制的配置文件配置 Grafana,在多个团队之间重用仪表盘和数据源。
在本教程中,您将
- 配置仪表盘。
- 配置数据源。
先决条件
- Grafana 7.0
- 您正在进行教程的系统上的管理员权限
代码配置
代码配置是指将系统配置存储为一组版本控制的、人类可读的配置文件,而不是存储在数据库中。这些配置文件可以在不同环境中重复使用,以避免重复资源。
随着组织内仪表盘和数据源数量的增长,手动管理更改可能会变得乏味且容易出错。鼓励重复使用变得很重要,以避免多个团队重新设计相同的仪表盘。
Grafana 通过 *配置* 支持代码配置。当前支持配置的资源为
设置配置目录
在开始配置资源之前,Grafana 需要知道在哪里找到 *配置目录*。配置目录包含在 Grafana 启动时应用并在运行时持续更新的配置文件。
默认情况下,Grafana 在 Grafana 安装的系统上的配置目录 (grafana > conf) 中查找配置目录。但是,如果您是 Grafana 管理员,则可能希望将配置文件放在共享资源(如网络文件夹)中,因此您需要更改配置目录的路径。
您可以通过在主配置文件中设置 paths.provisioning
属性来设置不同的路径
[paths]
provisioning = <path to config files>
有关配置文件的更多信息,请参阅 配置 在 Grafana 文档 中。
配置目录假定以下结构
provisioning/
datasources/
<yaml files>
dashboards/
<yaml files>
接下来,我们将了解如何配置数据源。
配置数据源
每个数据源配置配置文件都包含一个 *清单*,该清单指定一组配置数据源的所需状态。
在启动时,Grafana 加载配置文件并配置清单中列出的数据源。
让我们配置一个 TestData 数据源,您可以将其用于仪表盘。
创建数据源清单
在
provisioning/datasources/
目录中,创建一个名为default.yaml
的文件,内容如下apiVersion: 1 datasources: - name: TestData type: testdata
重新启动 Grafana 以加载新的更改。
在侧边栏中,将光标悬停在 **配置** (齿轮)图标上,然后单击 **数据源**。TestData 将显示在数据源列表中。
配置选项可能因不同类型的数据源而异。有关如何配置特定数据源的更多信息,请参阅 数据源。
配置仪表盘
每个仪表盘配置文件都包含一个清单,该清单指定一组 *仪表盘提供程序* 的所需状态。
仪表盘提供程序告诉 Grafana 在哪里找到仪表盘定义以及在哪里放置它们。
Grafana 定期检查仪表盘定义的更改(默认情况下每 10 秒一次)。
让我们定义一个仪表盘提供程序,以便 Grafana 知道在哪里找到我们要配置的仪表盘。
定义仪表盘提供程序
在 provisioning/dashboards/
目录中,创建一个名为 default.yaml
的文件,内容如下
apiVersion: 1
providers:
- name: Default # A uniquely identifiable name for the provider
folder: Services # The folder where to place the dashboards
type: file
options:
path:
<path to dashboard definitions>
# Default path for Windows: C:/Program Files/GrafanaLabs/grafana/public/dashboards
# Default path for Linux is: /var/lib/grafana/dashboards
有关如何配置仪表盘提供程序的更多信息,请参阅仪表盘。
创建仪表盘定义
在您在仪表盘提供程序中指定的仪表盘定义目录中,即
options.path
,创建一个名为cluster.json
的文件,内容如下:{ "__inputs": [], "__requires": [], "annotations": { "list": [] }, "editable": false, "gnetId": null, "graphTooltip": 0, "hideControls": false, "id": null, "links": [], "panels": [ { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "TestData", "fill": 1, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 0 }, "id": 2, "legend": { "alignAsTable": false, "avg": false, "current": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "repeat": null, "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "CPU Usage", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] } ], "refresh": "", "rows": [], "schemaVersion": 16, "tags": ["kubernetes"], "templating": { "list": [] }, "time": { "from": "now-6h", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "Cluster", "version": 0 }
重启 Grafana 以配置新的仪表盘,或者等待 10 秒钟让 Grafana 自动创建仪表盘。
在侧边栏中,将鼠标悬停在仪表盘(方块)图标上,然后单击管理。仪表盘将显示在服务文件夹中。
如果您未在仪表盘定义中指定
id
,则 Grafana 会在配置过程中分配一个。如果您想从其他仪表盘引用该仪表盘,则可以自己设置id
。请注意,不要对多个仪表盘使用相同的id
,因为这会导致冲突。
总结
在本教程中,您学习了如何通过从版本控制的配置文件配置 Grafana,跨多个团队重用仪表盘和数据源。
随着仪表盘中添加更多面板和配置,仪表盘定义可能会变得难以管理。有一些开源工具可用于简化仪表盘定义的管理
- grafana-dash-gen (Javascript)
- grafanalib (Python)
- grafonnet-lib (Jsonnet)
- grafyaml (YAML)