配置仪表板和数据源
介绍
了解如何通过从版本控制的配置文件配置 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)