菜单
Enterprise 开源

升级到 Grafana v8.0

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

除了所有 Grafana 版本通用的升级任务外,特定版本可能还需要完成额外的升级任务。

注意

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

最新功能 文档中概述了这些变更,或者在包含许多重大变更的版本中提供了单独的

重大变更 文档中说明。

对于 v9.2 之前的 Grafana 版本,我们在发行说明中发布了附加信息。

如果可用,我们会在更新日志中列出所有变更,并附带指向 pull request 或 issue 的链接。

注意

如果可能,我们建议您在测试或开发环境中测试 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 相关的技术更改。

插件

Grafana 现在要求所有插件都必须签名。如果插件未签名,Grafana 将不会加载/启动它。这是一项附加安全措施,用于确保插件文件和二进制文件未被篡改。所有由 Grafana Labs 编写的插件,包括 Enterprise 插件,现都已签名。可以使用配置设置允许未签名的插件,但我们强烈建议不要这样做。有关此设置的更多信息,请参阅允许加载未签名插件

Grafana Live

Grafana 现在维护持久的 WebSocket 连接以满足实时消息传递需求。

建立 WebSocket 连接时,出于安全原因(例如,防止劫持 WebSocket 连接),Grafana 会检查请求的 Origin 标头。如果您正确定义了公共 URL(root_url 服务器选项),则源自公共 URL 页面的 WebSocket 请求应成功通过源检查。如果源检查失败,Grafana 会返回 403 错误。还可以为源检查添加其他源模式列表。

为了处理大量并发 WebSocket 连接,您可能需要调整操作系统设置或基础设施。Grafana Live 默认启用,最多支持 100 个并发 WebSocket 连接,以避免可能出现的操作系统文件描述符限制问题。一旦您的设置满足扩展持久连接数量的要求,可以增加此限制。您还可以选择禁用 Grafana Live。

有关详细信息,请参阅Grafana Live 配置文档。

Postgres、MySQL、Microsoft SQL Server 数据源

Grafana v8.0 更改了 Postgres、MySQL、Microsoft SQL Server 数据源的底层数据结构为数据帧(data frames)。因此,时间序列查询结果以宽格式(wide format)返回。为了使可视化像以前一样工作,您可能需要进行一些手动迁移。

对于任何使用时间序列查询的现有面板/可视化,如果时间列仅用于过滤时间范围(例如,使用条形仪表盘或饼图面板),我们建议您改用表格查询并排除时间列作为响应中的字段。有关详细说明和解决方法,请参阅此问题评论

系列名称添加前缀

当您有一个查询,其中同时选择了时间值和数值,以及一个非 metric 命名的字符串值时,图表面板会将系列名称渲染为 value <hostname>,而不是像 Grafana 8 之前那样只显示 <hostname>

sql
SELECT
  $__timeGroup("createdAt",'10m'),
  avg(value) as "value",
  hostname
FROM grafana_metric
WHERE $__timeFilter("createdAt")
GROUP BY time, hostname
ORDER BY time

有两种可能的解决方法可以解决此问题

  1. 在 Grafana v8.0.3 中,使用选作 metric 的字符串列的别名,例如 hostname as metric
  2. 使用标准字段定义的显示名称来格式化别名。对于前面的示例查询,您可以使用 ${__field.labels.hostname} 选项。

有关更多信息,请参阅我们的关系数据库文档:PostgresMySQLMicrosoft SQL Server