这是存档文档v9.0.去最新版本

;设置;升级Grafana

升级Grafana

我们建议您经常升级Grafana,以跟上最新的修复和增强。为了实现这一点,Grafana升级是向后兼容的,升级过程简单而快速。

升级通常是安全的(在许多次要版本和一个主要版本之间),仪表板和图表看起来是一样的。在一些边缘情况下可能会有轻微的破坏性变化,这些变化在发布说明而且更新日志

备份

我们建议您备份一些东西,以防不得不回滚升级。

  • 已安装的插件——在升级之前备份它们,以防您想要回滚Grafana版本,并希望获得升级前运行的完全相同的版本。
  • 配置文件不需要备份。但是,您可能需要这样做,以防在升级和回滚之后添加新的配置选项。

数据库备份

在升级之前,备份你的Grafana数据库是一个好主意。这将确保您始终可以回滚到以前的版本。在启动期间,Grafana将自动迁移数据库模式(如果有更改或新表)。如果稍后想降级,有时这会导致问题。

sqlite

如果你使用sqlite,你只需要备份你的grafana.db文件。这通常位于/var/lib/grafana/grafana.dbUnix系统。如果您不确定使用什么数据库以及它存储在哪里,请检查您的grafana配置文件。如果您使用tar/zip二进制文件将grafana安装到自定义位置,则通常在< grafana_install_dir > /数据

mysql

Backup: > mysqldump -u root -p[root_password] [grafana] > grafana_backup。SQL restore: > mysql -u root -p grafana < grafana_backup.sql

postgres

Backup: > pg_dump grafana > grafana_backup restore: > PSQL grafana < grafana_backup

Ubuntu或Debian

您可以按照与安装时相同的步骤升级Grafana。

升级Debian软件包

如果您通过下载Debian软件包安装Grafana (. deb),然后执行相同的操作dpkg -我命令,但与新的包。它将升级您的Grafana安装。

下载页面有关最新的下载连结。

Wget  sudo apt-get install -y adduser sudo DPKG -i grafana__amd64.deb . zip

从APT存储库升级

如果您从我们的APT存储库安装了Grafana,那么当您运行APT -get upgrade来升级所有系统包时,Grafana将自动更新。

Sudo apt-get update Sudo apt-get upgrade

从二进制.tar文件升级

如果你下载了二进制文件gz包,然后您可以下载并解压缩新包并覆盖所有现有文件。但是,这可能会覆盖您的配置更改。

我们建议您将自定义配置更改保存在一个名为< grafana_install_dir > / conf / custom.ini.这允许您升级Grafana,而不必冒丢失配置更改的风险。

Centos / RHEL

如果您是通过下载RPM包来安装Grafana的,那么您只需按照相同的安装指南执行即可yum安装rpm -我命令,但与新的包。它将升级您的Grafana安装。

如果您使用我们的YUM存储库:

须藤yum更新grafana

码头工人

这只是一个例子,细节取决于你如何配置你的grafana容器。

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二进制包,您可以下载一个更新的包并解压缩到相同的位置(并覆盖现有文件)。这可能会覆盖您的配置更改。我们建议您将配置更改保存在一个名为< grafana_install_dir > / conf / custom.ini因为这将使升级更容易,而不会有丢失配置更改的风险。

更新插件

升级后,我们强烈建议您更新所有的插件,因为新版本的Grafana会使旧的插件无法正常工作。

你可以使用

Grafana-cli插件更新全部

升级到v5.0

仪表板网格布局引擎已经改变。在v5中加载所有仪表板时,将自动升级到新的定位系统。保存在v5中的仪表板将无法在较旧版本的Grafana中工作。一些外部面板插件可能需要更新才能正常工作。

有关新的面板定位系统的更多详细信息,请参见面板尺寸位置

升级到v5.2

此版本中包含的数据库迁移之一将更新所有注释时间戳,精度从秒级到毫秒级。如果您有大量的注释,数据库迁移可能需要很长时间才能完成,这可能会导致使用systemd运行Grafana的问题。

我们有一个报告,使用systemd, PostgreSQL和大量的注释(表大小1645mb)花了8-20分钟完成数据库迁移。然而,grafana-server进程在90秒后被systemd杀死。当systemd终止grafana-server进程时,正在进行的任何数据库迁移查询将继续在数据库中执行,直到完成。

如果您正在使用systemd,并且有大量注释,请考虑暂时调整systemdTimeoutStartSec调到高点,比如30米在升级之前。

升级到v6.0

如果你有带有脚本标签的文本面板,它们将不再工作,因为新的设置默认不允许未消毒的HTML。有关新设置的更多信息,请参见禁用消毒HTML

身份验证和安全性

如果您正在使用Grafana的内置,LDAP(没有Auth代理)或OAuth身份验证,所有用户将被要求在升级后的下一次访问时登录。

如果你有cookie_secure设置为真正的会话部分,您可能需要更改cookie_secure真正的安全还有部分。最终得到这样的配置:

[session] cookie_secure = true [security] cookie_secure = true

login_remember_dayslogin_maximum_inactive_lifetime_dayslogin_maximum_lifetime_dayscookie_username而且cookie_remember_name设置安全部分不再被使用,所以他们是安全的删除。

如果你有login_maximum_lifetime_dayslogin_maximum_inactive_lifetime_days配置后,需要将其更改为login_maximum_lifetime_durationlogin_maximum_inactive_lifetime_duration和附加d配置值以保留以前的行为。

如果你有login_remember_days配置为0(零),您应该将您的配置更改为此,以实现类似的行为,即登录用户将最多登录1天,直到被强制再次登录:

[auth] login_maximum_inactive_lifetime_duration = 1d login_maximum_lifetime_duration = 1d

用于存储认证令牌的默认cookie名称为grafana_session.您可以使用login_cookie_name(认证)设置。

升级到v6.2

确保对数据源机密进行加密

数据源默认将密码和基本认证密码存储在加密的secureJsonData中(CFB模式为AES-256)。现有数据源将继续使用未加密的密码。如果您想将现有数据源迁移到加密存储,您可以通过以下方式实现:

  • 通过UI创建的数据源,需要进入数据源配置,重新输入密码或基本认证密码后保存数据源。
  • 对于通过配置创建的数据源,您需要更新配置文件并使用secureJsonData。密码或secureJsonData。basicAuthPassword字段。看到配置文档例如当前配置。

嵌入Grafana

如果你把Grafana嵌入< >帧< iframe ><嵌入><对象>在不同的网站上,它将不再工作,因为新的设置默认指示浏览器不允许嵌入Grafana。有关嵌入Grafana的更多信息,请参阅配置嵌入关于这个新设定。

会话存储不再使用

在6.2中,我们完全删除了后端会话存储,因为我们用一个认证令牌替换了之前的登录会话实现。如果你在LDAP中使用认证代理,在Grafana中使用共享缓存,所以你可能想要配置[remote_cache]。否则,Grafana将退回到使用数据库作为共享缓存。

升级Elasticsearch到v7.0+

的语义最大并发分片请求在Elasticsearch v7.0中更改,请参见发布说明供参考。

如果您将Elasticsearch升级到v7.0+,您应该确保在Grafana中更新数据源配置,以便该版本7.0 +而且最大并发分片请求正确配置。256是v7.0之前版本的默认值。在v7.0及以上版本中,5是默认值。

升级到v6.4

注释数据库迁移

此版本中包含的一个数据库迁移将把用于表示注释范围的多行合并为一行。如果有大量的区域注释,数据库迁移可能需要很长时间才能完成。看到升级到v5.2有关如何管理此过程的提示。

码头工人

Grafana的码头工人形象现在是基于高山而不是Ubuntu

需要更新的插件

升级到v6.5

在Grafana 6.5.0之前,CloudWatch数据源使用GetMetricStatistics API来处理所有在查询编辑器中没有“id”和“表达式”定义的查询。GetMetricStatistics API限制为每秒400个事务(TPS)。在这个版本中,所有查询都使用GetMetricData API,每个事务限制为50 TPS和100个度量。我们希望这种过渡对我们的大多数用户来说是平稳的,但如果您确实面临节流问题,我们建议您增加TPS配额。为此,请访问AWS服务配额控制台.有关CloudWatch API限制的详细信息,查看CloudWatch文档

对GetMetricData API的每个请求可以包括100个查询。这意味着Grafana中的每个面板只会发出一个GetMetricData请求,而不管面板中存在多少查询行。因此,由于它不再可能设置HighRes在每个查询级别上,这个开关现在从查询编辑器中删除了。通过在查询编辑器中选择较小的最小周期,仍然可以实现高分辨率。

在Grafana 6.5中,维度值中多值模板变量的处理已经改变。当使用多个模板变量时,Grafana将生成一个搜索表达式。在GetMetricData API中,表达式被限制为1024个字符,因此当使用具有很多值的多值模板变量时,可能会达到这个限制。如果是这种情况,我们建议您开始使用通配符作为维度值,而不是多值模板变量。

升级到v6.6

Generic OAuth设置send_client_credentials_via_post,用于支持不合规的提供者,已被删除。从现在开始,Grafana将自动检测凭证是否应该作为特定提供者的URL或请求正文的一部分发送。结果将被记住,并用于该提供者的其他OAuth请求。

Chrome 80将cookie视为SameSite =松懈默认为否SameSite属性已指定,请参见https://www.chromestatus.com/feature/5088147346030592

由于Chrome的这一变化,(安全)设置cookie_samesite配置为没有一个现在使用SameSite =没有属性与之前相比没有SameSite属性已添加到cookie。要得到旧的行为,就用价值禁用而不是没有一个,请参阅“配置”中的cookie_samesite获取更多信息。

注意:目前有一个影响Mac OSX和iOS的错误,导致SameSite =没有Cookies被当作SameSite =严格因此不与跨站点请求一起发送,参见https://bugs.webkit.org/show_bug.cgi?id=198181获取详细信息。在这个问题解决之前,SameSite =没有可能无法在Safari上正常工作。

这个版本的Chrome也拒绝不安全的SameSite =没有饼干。看到https://www.chromestatus.com/feature/5633521622188032获取更多信息。确保你改变了(安全)设置cookie_secure真正的在以下情况下使用HTTPScookie_samesite配置为没有一个,否则在Grafana中的身份验证将无法正常工作。

升级到v7.0

PhantomJS删除

PhantomJS在Grafana v6.4中已弃用,从Grafana v7.0.0开始,所有对PhantomJS的支持都已被移除。这意味着Grafana不再附带内置图像渲染器,我们建议您安装Grafana图像渲染插件

仪表板最小刷新间隔强制执行

现在强制执行全局最小仪表板刷新间隔,默认为5秒。有关此设置的详细信息,请参见最小刷新间隔

后端插件

Grafana现在需要对后端插件进行签名。如果一个后端插件没有签名,Grafana将不会加载/启动它。这是一个额外的安全措施,以确保后端插件二进制文件和文件没有被篡改。所有Grbob电竞频道afana Labs编写的后端插件,包括企业插件,现在都是签名的。使用配置设置允许无签名插件是可能的,但我们强烈建议不要这样做。有关此设置的详细信息,请参见允许加载未签名的插件

从Grafana v7.0.0开始,如果Grafana是从子路径提供的,那么cookie路径不包括后面的斜杠RFC 6265.但是,过期的会话cookie(升级前设置的)可能会导致登录失败,因为在标准登录阶段,由于更改了cookie路径,无法删除这些cookie。因此,遇到登录问题的用户建议手动删除旧的会话cookie,或者管理员可以通过修改login_cookie_name,所以老饼干就会被忽略。

升级到v7.2

确保对现有警报通知通道秘密进行加密

在Grafana v7.2之前,警报通知通道不存储敏感设置/机密,如API令牌和密码加密在数据库中。在Grafana v7.2中,创建一个新的警报通知通道将在数据库中存储加密的敏感设置。

以下警报通知器已更新,以支持加密存储其敏感设置:

  • Slack (URL和Token)
  • Pagerduty(集成键)
  • Webhook(密码)
  • Prometheus Alertmanager(基本认证密码)
  • Opsgenie (API密钥)
  • 美国标准(密码)
  • Telegram (BOT API令牌)
  • 线(令牌)
  • Pushover (API令牌,用户密钥)
  • Threema Gateway (API秘密)

对于现有的警报通知通道,不会自动迁移加密存储敏感设置,它们将继续像以前一样工作。迁移必须手动完成。在UI中打开已配置的警报通知通道并保存它将存储加密的敏感设置,同时在数据库中重置警报通知通道的历史未加密设置。

请注意,当迁移通知通道并随后将Grafana降级到较早版本时,通知通道将无法读取存储的敏感设置,因此无法正常工作。

有关告警通知通道的配置,请参见警报通知渠道

升级到v7.3

AWS CloudWatch数据源

AWS CloudWatch数据源的身份验证方案在Grafana 7.3中发生了变化。最重要的是身份验证方法在攻击已删除,并添加了一个新的:AWS SDK默认.使用前者的现有数据源配置将回退到后者。假设IAM角色仍然可以工作,而旧的在攻击方法将在底层使用默认的AWS SDK身份验证方法。

在攻击作为一种身份验证方法,我们已经将其作为一个选项,用于提供IAM角色的ARN。这与您选择的身份验证方法无关。

新的认证方法,AWS SDK默认,使用默认的AWS Go SDK凭据链,在编写时按以下顺序查找凭据:

  1. 环境变量。
  2. 共享凭证文件。
  3. 如果您的应用程序使用ECS任务定义或RunTask API操作,则任务的IAM角色。
  4. 如果您的应用程序运行在Amazon EC2实例上,则为Amazon EC2指定IAM角色。

其他的认证方法,访问和密钥而且证书文件在后备措施方面,美国已经发生了变化。如果这些方法失败,它们不再回退到其他方法。例如,环境变量。如果你想要后援,你应该用AWS SDK默认代替。

详情请参阅在Grafana中使用AWS CloudWatch

用户请求数据库迁移

数据库表temp_user对象的数据类型将更改数据库迁移创建而且更新列:

数据库 旧的数据类型 新的数据类型
Sqlite DATETIME 整数
MySQL DATETIME INT
Postgres 时间戳 整数

请注意,如果将Grafana降级到较早的版本,则必须手动更改的数据类型创建而且更新列返回到旧的数据类型,否则用户邀请功能将无法正常工作。

快照数据库迁移

数据库表dashboard_snapshot,用于存储仪表盘快照,并添加一个新列dashboard_encrypted用于存储加密快照。注意:只有在Grafana 7.3或更高版本上创建的快照才会使用此列加密存储快照数据。在此版本之前创建的快照将不受影响,并保持未加密。

在Docker映像中使用根组

Grafana Docker图像使用组而不是grafana组。对于扩展了Grafana Docker映像的用户,此更改可能会导致构建中断。了解更多关于这一变化Docker迁移说明

升级到v7.5

VictorOps警报通知器

VictorOps警报通知器现在接受一个严重程度标签,与PagerDuty警报通知器类似。方法中列出了可能的值VictorOps文档

例如,如果您想要一个警报信息-level在VictorOps中,创建一个标签严重程度=信息(不区分大小写)。

升级到v8.0

插件

Grafana现在要求所有的插件都要签名。如果一个插件没有签名,Grafana将不会加载/启动它。这是一个额外的安全措施,以确保插件文件和二进制文件没有被篡改。所有Grbob电竞频道afana Labs编写的插件,包括企业版插件,现在都已签名。使用配置设置允许无签名插件是可能的,但我们强烈建议不要这样做。有关此设置的详细信息,请参见允许加载未签名的插件

Grafana生活

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

当WebSocket连接建立时,出于安全原因(例如,防止劫持WebSocket连接),Grafana会检查请求Origin报头。如果您有一个正确定义的公共URL (root_url服务器选项),那么对于来自公共URL页面的WebSocket请求,原点检查应该成功通过。如果原点检查不成功,Grafana将返回403错误。还可以为起源检查添加其他起源模式的列表。

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

Grafana活配置文档获取更多信息。

Postgres, MySQL, Microsoft SQL Server数据源

Grafana v8.0将底层数据结构更改为数据帧Postgres, MySQL, Microsoft SQL Server数据源。结果,a时间序列查询结果以宽格式.为了使可视化像以前一样工作,您可能必须进行一些手动迁移。

对于任何现有的面板/可视化使用时间序列查询,其中时间列仅用于筛选时间范围,例如,使用条形规或饼图面板,我们建议您使用表查询并将时间列作为响应中的字段排除。参考这个问题的评论有关详细说明和变通方法。

添加到系列名称的前缀

当你有一个查询,其中有一个时间值和一个数值,以及一个没有命名的字符串值度规时,图形面板显示系列名称为值<主机名>而不仅仅是<主机名>在《Grafana 8》之前就是这样。

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

有两种方法可以解决这个问题:

  1. 在Grafana v8.0.3中,使用选择为的字符串列的别名度规.例如,主机名作为度量
  2. 使用标准字段定义的显示名称格式化别名。对于前面的示例查询,您将使用$ {__field.labels.hostname}选择。

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

升级到v8.1

不再支持对数据源使用未加密的密码

从Grafana v8.1开始,我们不再支持密码和基本身份验证密码的不加密存储。

注意:从Grafana v6.2开始,新的或更新的数据源存储加密的密码和基本身份验证密码。看到升级注意获取更多信息。但是,也允许使用未加密的密码和基本的认证密码。

要迁移到加密存储,请遵循V6.2升级说明.你也可以用agrafana-cli命令将所有数据源迁移到使用秘密的加密存储。看到数据迁移和密码加密进一步指示。

升级到8.3

在8.3中,Grafana仪表板现在使用对象with引用数据源uid而且类型属性,而不是数据源名称属性。在现有仪表板打开时应用模式迁移。如果您为多个Grafana实例提供仪表板,那么我们建议您也提供数据源。您可以指定uid对于跨实例的数据源来说是相同的。如果你需要找到uid对于在UI中创建的数据源,检查数据源设置页面的URL。URL遵循这个模式/数据源/编辑/ $ {uid},意思是最后一部分是uid

升级到8.5

一个概念默认的数据源从一开始就存在于Grafana中。然而,其含义和行为并不清楚。默认数据源不仅是新面板的起始数据源,而且还使用一个特殊值(null)保存它。这使得将默认数据源更改为另一个数据源成为可能,并使该更改影响使用默认数据源的所有仪表板。

这种行为不是很直观,给那些希望在不影响现有仪表板的情况下更改默认值的用户带来了问题。这就是我们在8.5中改变行为的原因。从现在开始默认的数据源将不是持久属性,而只是新面板和查询的起始数据源。现有的仪表盘仍然有带有数据源设置为null将在仪表板打开时进行迁移。迁移将数据源属性设置为当前的默认数据源。