菜单
Enterprise 开源

升级到 Grafana v12.0

我们建议您经常升级 Grafana,以便及时获取最新的修复和增强功能。由于 Grafana 升级向后兼容,升级过程非常简单,仪表盘和图表不会发生变化。

除了适用于所有 Grafana 版本应完成的常见任务外,某些版本可能还需要完成额外的升级任务。

注意

某些版本可能存在重大变更。我们会在

新增功能 文档中概述所有这些变更。

对于早于 v9.2 的 Grafana 版本,我们在 发布说明 中发布了更多信息。

如有更改,我们会在 变更日志 中列出所有更改并附带指向拉取请求或问题的链接。

注意

如果可能,建议您在测试或开发环境中测试 Grafana 升级过程。

备份 Grafana

本主题解释了如何备份本地 Grafana 部署,包括配置、插件数据和 Grafana 数据库。

备份 Grafana 配置文件

将您在 Grafana 部署中可能修改过的 Grafana 配置文件复制到备份目录。

Grafana 配置文件位于以下目录

  • 默认配置:$WORKING_DIR/defaults.ini (请勿更改此文件)
  • 自定义配置:$WORKING_DIR/custom.ini

有关查找配置文件的更多信息,请参阅 配置文件位置

注意

如果您使用 debrpm 包安装了 Grafana,则您的配置文件位于 /etc/grafana/grafana.ini。此路径在 Grafana 的 init.d 脚本中使用 --config 文件参数指定。

备份插件数据

在 Grafana 中安装插件会为每个插件创建一个文件夹,其中包含相关的文件和数据。将此位置的所有文件和文件夹递归复制到您的备份仓库。

Grafana 插件文件位于以下目录

  • 二进制或源代码安装中插件的默认位置:$WORKING_DIR/data/plugins
  • debrpm 包中插件的默认位置:/var/lib/grafana/plugins。此路径在 Grafana init.d 脚本中使用 --config 文件参数指定。

备份 Grafana 数据库

建议您备份 Grafana 数据库,以便在需要时可以回滚到先前版本。

SQLite

默认的 Grafana 数据库是 SQLite,它将数据存储在磁盘上的一个文件中。要备份此文件,请将其复制到您的备份仓库。

注意

为确保数据完整性,在备份 SQLite 数据库之前请关闭 Grafana 服务。

SQLite 数据库文件位于以下目录之一

  • 二进制或源代码安装中 SQLite 数据的默认位置:$WORKING_DIR/data/grafana.db
  • debrpm 包中 SQLite 数据的默认位置:/var/lib/grafana/grafana.db。此路径在 Grafana init.d 脚本中使用 --config 文件参数指定。

MySQL

要备份或恢复 MySQL Grafana 数据库,请运行以下命令

bash
backup:
> mysqldump -u root -p[root_password] [grafana] > grafana_backup.sql

restore:
> mysql -u root -p grafana < grafana_backup.sql

Postgres

要备份或恢复 Postgres Grafana 数据库,请运行以下命令

bash
backup:
> pg_dump grafana > grafana_backup

restore:
> psql grafana < grafana_backup

升级 Grafana

以下部分提供了根据您的安装方法升级 Grafana 的说明。有关查找配置文件的更多信息,请参阅 配置文件位置

Debian

要升级从 Debian 包(.deb)安装的 Grafana,请完成以下步骤

  1. 在您当前的 Grafana 安装中,将您的自定义配置更改保存到名为 <grafana_install_dir>/grafana.ini 的文件中。

    这使您能够在升级 Grafana 时不会丢失配置更改。

  2. 下载 最新版本的 Grafana。

  3. 运行以下 dpkg -i 命令。

    bash
    wget <debian package url>
    sudo apt-get install -y adduser
    sudo dpkg -i grafana_<version>_amd64.deb

APT 仓库

要升级从 Grafana Labs APT 仓库安装的 Grafana,请完成以下步骤

  1. 在您当前的 Grafana 安装中,将您的自定义配置更改保存到名为 <grafana_install_dir>/grafana.ini 的文件中。

    这使您能够在升级 Grafana 时不会丢失配置更改。

  2. 运行以下命令

    bash
    sudo apt-get update
    sudo apt-get upgrade

当您运行 apt-get upgrade 时,Grafana 会自动更新。

二进制 .tar 文件

要升级从二进制 .tar.gz 包安装的 Grafana,请完成以下步骤

  1. 在您当前的 Grafana 安装中,将您的自定义配置更改保存到自定义配置文件 custom.inigrafana.ini

    这使您能够在升级 Grafana 时不会丢失配置更改。

  2. 下载 二进制 .tar.gz 包。

  3. 提取下载的包并覆盖现有文件。

RPM 或 YUM

要使用 RPM 或 YUM 升级安装的 Grafana,请完成以下步骤

  1. 在您当前的 Grafana 安装中,将您的自定义配置更改保存到名为 <grafana_install_dir>/grafana.ini 的文件中。

    这使您能够在升级 Grafana 时不会丢失配置更改。

  2. 根据您的安装执行以下步骤之一。

Docker

要升级在 Docker 容器中运行的 Grafana,请完成以下步骤

  1. 使用 Grafana 环境变量 保存您的自定义配置;这是推荐的方法。此外,您也可以通过访问已部署的容器手动查看配置文件。

    这使您能够在升级 Grafana 时不会丢失配置更改。

  2. 运行类似于以下命令的命令。

    注意

    这是一个示例。您输入的参数取决于您如何配置 Grafana 容器。

    bash
    docker pull grafana/grafana
    docker stop my-grafana-container
    docker rm my-grafana-container
    docker run -d --name=my-grafana-container --restart=always -v /var/lib/grafana:/var/lib/grafana grafana/grafana

Windows

要升级在 Windows 上安装的 Grafana,请完成以下步骤

  1. 在您当前的 Grafana 安装中,将您的自定义配置更改保存到名为 <grafana_install_dir>/conf/custom.ini 的文件中。

    这使您能够在升级 Grafana 时不会丢失配置更改。

  2. 下载 Windows 二进制包。

  3. 将包的内容提取到您安装 Grafana 的位置。

    提示时,您可以覆盖现有文件和文件夹。

Mac

要升级在 Mac 上安装的 Grafana,请完成以下步骤

  1. 在您当前的 Grafana 安装中,将您的自定义配置更改保存到自定义配置文件 custom.ini

    这使您能够在升级 Grafana 时不会丢失配置更改。

  2. 下载 Mac 二进制包。

  3. 将包的内容提取到您安装 Grafana 的位置。

    提示时,您可以覆盖现有文件和文件夹。

更新 Grafana 插件

升级 Grafana 后,建议您更新所有插件,因为新版本的 Grafana 可能会导致旧版本插件无法正常工作。

运行以下命令更新插件

bash
grafana cli plugins update-all

技术说明

Grafana 数据源 UID 格式强制执行

确保您的数据源 UID 遵循正确的标准

多年来(至少从 Grafana v5 开始),我们对 Grafana 对象的 UID 定义方式都有标准。虽然我们所有的内部代码都符合此格式,但我们尚未在允许创建和更新数据源的 REST API 和配置路径中严格强制执行此格式。

在 Grafana v11.1 中,我们引入了一个警告,每次使用无效的 UID 格式创建或更新数据源实例时,都会发送到 Grafana 服务器日志。

在 Grafana v11.2 中,我们添加了一个名为 failWrongDSUID 的新功能开关,默认关闭。启用后,REST API 和配置将拒绝任何创建或更新 UID 不正确的数据源实例的请求。

在 Grafana v12.0 中,我们将默认开启功能开关 failWrongDSUID

正确的 UID 格式

您可以在 grafana/grafana 仓库中找到确切的正则表达式定义。

数据源 UID 只能包含

  • 拉丁字符(a-Z
  • 数字(0-9
  • 破折号(-

我如何知道我是否受到影响?

curl https://:3000/api/datasources | jq '.[] | select((.uid | test("^[a-zA-Z0-9\\-_]+$") | not) or (.uid | length > 40)) | {id, uid, name, type}'
  • 或者,您可以检查服务器日志中是否有 Invalid datasource uid 错误

如果我受到影响怎么办?

您需要创建一个具有正确 UID 的新数据源,并更新您的仪表盘和告警规则以使用它。

如何更新我的仪表盘以使用新的或已更新的数据源?

  • 转到使用该数据源的仪表盘,并通过在面板下方的选择器中选择新的或已更新的数据源来进行更新。

  • 直接使用查找和替换更新仪表盘的 JSON 模型。

    导航到仪表盘 JSON 模型 并仔细替换所有旧的 uid 为新创建的 uid

    Updating JSON Model of a Dashboard

如何更新我的告警规则以使用新的或已更新的数据源?

打开您要调整的告警规则,并查找用于查询/告警条件的数据源。然后,从下拉列表中选择新的数据源并保存告警规则。

在插件 CLI 安装命令中强制执行更严格的版本兼容性检查

自 Grafana 10.2 起,使用 grafana cli plugins install 安装插件时检查兼容版本的端点发生了变化,导致不再考虑 Grafana 依赖版本。这可能导致 CLI 安装的插件未能完全兼容,尽管其通过 grafanaDependency 属性在 plugin.json 文件声明了兼容性。

如果我想忽略兼容性检查怎么办?

我们建议安装声明为不兼容的插件。但是,如果您需要在插件被声明为不兼容的情况下强制安装,请参阅从 ZIP 文件安装插件 指南。