运行时更新设置
注意
此功能已弃用,并将在未来版本中移除。要配置 SAML 身份验证,请使用新的 SSO settings API。
通过在运行时更新设置,您无需重启 Grafana 服务器即可更新 Grafana 设置。
在运行时发生的更新会存储在数据库中,并覆盖来自其他来源的设置(命令行参数、环境变量、配置文件等)。因此,每次在运行时移除特定的设置键时,该键使用的值将是按优先级逆序继承自其他来源的值(命令行参数 > 环境变量 > 配置文件
)。如果没有通过任何这些选项提供值,则使用的值将是应用程序的默认值。
目前,它仅支持更新 auth.saml
部分。
通过 API 更新设置
您可以通过 Admin API 更新设置。
当您通过 API 提交设置更新时,Grafana 会验证给定的设置更新是否被允许和有效。如果有效,Grafana 会将设置存储到数据库中,并重新加载 Grafana 服务,而无需重启实例。
因此,发送到更新设置端点 (/api/admin/settings
) 的 PUT
请求的载荷应包含(两者之一或全部)
- 一个
updates
映射,包含您要设置的每个部分的键和值。 - 一个
removals
列表,包含您要取消设置的每个部分的键。
例如,如果您提供以下 updates
{
"updates": {
"auth.saml": {
"enabled": "true",
"single_logout": "false"
}
}
}
这将启用 SAML 并禁用单点注销。并且,如果您提供以下 removals
{
"removals": {
"auth.saml": ["allow_idp_initiated"]
}
}
这将移除 auth.saml
部分中由 allow_idp_initiated
标识的键/值设置。因此,SAML 服务将被重新加载,并且该值将继承自(设置 .ini
文件、环境变量、命令行参数或任何其他接受的配置提供机制)。
因此,完整的 HTTP 载荷看起来像这样
{
"updates": {
"auth.saml": {
"enabled": "true",
"single_logout": "false"
}
},
"removals": {
"auth.saml": ["allow_idp_initiated"]
}
}
如果这些设置中的任何一个无法被覆盖或无效,将返回错误,并且这些设置不会被持久化到数据库中。
后台作业(高可用性设置)
Grafana Enterprise 内置了一个计划后台作业,每分钟检查数据库中的设置更新。如果存在更新,它将重新加载受检测到的更改影响的 Grafana 服务。
后台作业在配置了高可用性的实例之间同步设置。因此,在您通过 HTTP API 执行一些更改后,其他实例会通过数据库和后台作业进行同步。