菜单
企业版 开源

运行时更新设置

注意

此功能已弃用,并将在未来版本中移除。要配置 SAML 身份验证,请使用新的 SSO settings API

通过在运行时更新设置,您无需重启 Grafana 服务器即可更新 Grafana 设置。

在运行时发生的更新会存储在数据库中,并覆盖来自其他来源的设置(命令行参数、环境变量、配置文件等)。因此,每次在运行时移除特定的设置键时,该键使用的值将是按优先级逆序继承自其他来源的值(命令行参数 > 环境变量 > 配置文件)。如果没有通过任何这些选项提供值,则使用的值将是应用程序的默认值。

目前,它仅支持更新 auth.saml 部分。

通过 API 更新设置

您可以通过 Admin API 更新设置。

当您通过 API 提交设置更新时,Grafana 会验证给定的设置更新是否被允许和有效。如果有效,Grafana 会将设置存储到数据库中,并重新加载 Grafana 服务,而无需重启实例。

因此,发送到更新设置端点 (/api/admin/settings) 的 PUT 请求的载荷应包含(两者之一或全部)

  • 一个 updates 映射,包含您要设置的每个部分的键和值。
  • 一个 removals 列表,包含您要取消设置的每个部分的键。

例如,如果您提供以下 updates

json
{
  "updates": {
    "auth.saml": {
      "enabled": "true",
      "single_logout": "false"
    }
  }
}

这将启用 SAML 并禁用单点注销。并且,如果您提供以下 removals

json
{
  "removals": {
    "auth.saml": ["allow_idp_initiated"]
  }
}

这将移除 auth.saml 部分中由 allow_idp_initiated 标识的键/值设置。因此,SAML 服务将被重新加载,并且该值将继承自(设置 .ini 文件、环境变量、命令行参数或任何其他接受的配置提供机制)。

因此,完整的 HTTP 载荷看起来像这样

json
{
  "updates": {
    "auth.saml": {
      "enabled": "true",
      "single_logout": "false"
    }
  },
  "removals": {
    "auth.saml": ["allow_idp_initiated"]
  }
}

如果这些设置中的任何一个无法被覆盖或无效,将返回错误,并且这些设置不会被持久化到数据库中。

后台作业(高可用性设置)

Grafana Enterprise 内置了一个计划后台作业,每分钟检查数据库中的设置更新。如果存在更新,它将重新加载受检测到的更改影响的 Grafana 服务。

后台作业在配置了高可用性的实例之间同步设置。因此,在您通过 HTTP API 执行一些更改后,其他实例会通过数据库和后台作业进行同步。

使用基于角色的访问控制管理访问

如果您启用了基于角色的访问控制,您可以控制谁可以读取或更新设置。有关更多信息,请参阅 Admin API