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

;设置;升级Grafana

升级Grafana

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

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

备份

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

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

数据库备份

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

sqlite

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

mysql

备份:> mysqldump -u root -p[root_password] [grafana] > grafana_backup. shSQL restore: > mysql -u root -p grafana < grafana_backup.sql

postgres

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

Ubuntu或Debian

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

升级Debian软件包

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

下载页面有关最新的下载链接。

Wget  sudo apt-get install -y adduser sudo DPKG -i grafan_ _amd64.deb

从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存储库:

Sudo yum update grafana

码头工人

这只是一个示例,具体细节取决于您如何配置grafana容器。

运行-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插件update-all

升级到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(没有认证代理)或OAuth认证,所有用户将需要在升级后的下次访问时登录。

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

[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(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

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

不再使用会话存储

在6.2中,我们完全删除了后端会话存储,因为我们用认证令牌替换了之前的登录会话实现。如果您正在使用LDAP的Auth代理,那么在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有关如何管理此过程的提示。

码头工人

格拉芙娜的码头工人形象现在是基于高山而不是Ubuntu

需要更新的插件

升级到v6.5

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

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

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

升级到v6.6

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

Chrome 80处理cookiesSameSite =松懈默认情况下,如果没有SameSite属性已指定,请参见https://www.chromestatus.com/feature/5088147346030592

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

注意:目前有一个bug影响Mac OSX和iOS,导致SameSite =没有cookie将被视为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,或者管理员可以通过更改login_cookie_name,所以老饼干会被忽略。

升级到v7.2

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

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

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

  • Slack (URL和令牌)
  • 寻呼机值班(整合键)
  • Webhook(密码)
  • Prometheus Alertmanager(基本认证密码)
  • Opsgenie (API密钥)
  • 美国标准(密码)
  • 电讯(BOT API令牌)
  • 线(令牌)
  • Pushover (API令牌,用户键)
  • Threema网关(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实例上,IAM角色为Amazon EC2。

其他的认证方法,访问和密钥而且证书文件,在后备方案方面有所改变。如果这些方法失败,它们将不再回退到其他方法。例如环境变量。如果你想要备胎,你应该用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_urlserver选项),那么对于来自公共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数据源。结果,a时间序列查询结果将以宽格式.为了使可视化像以前一样工作,您可能必须进行一些手动迁移。

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

添加到系列名称的前缀

当您有一个查询,其中选择了一个时间值和一个数值,以及一个没有命名的字符串值度规时,图形面板将系列名称呈现为值<主机名>而不仅仅是<主机名>这是在Grafana 8之前的情况。

选择$__timeGroup("createdAt",'10m'), avg(value)作为"value",主机名FROM grafana_metric WHERE $__timeFilter("createdAt") GROUP BY time,主机名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仪表板现在使用对象引用数据源uid而且类型属性,而不是数据源名称属性。当现有仪表板打开时应用模式迁移。如果您为多个Grafana实例提供仪表板,那么我们建议您也提供数据源。您可以指定uid对于跨实例的数据源也是一样的。如果你需要找到uid对于在UI中创建的数据源,检查数据源设置页面的URL。URL遵循这个模式/数据源/编辑/ $ {uid},意思是最后一部分是uid

升级到8.5

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

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