Grafana Mimir 身份验证与授权
Grafana Mimir 是一个多租户系统,租户可以查询包含其租户 ID 的指标和告警。查询从每个请求的 HTTP 头中的 X-Scope-OrgID
参数(例如 X-Scope-OrgID: <租户 ID>
)获取租户 ID。您可以通过将 -tenant-federation.enabled
设置为 true
来跨多个租户联合查询。指定多个租户 ID 时,请在 X-Scope-OrgID
头中使用管道符 (|
) 分隔,例如 X-Scope-OrgID: tenant-1|tenant-2|tenant-3
。
为了保护 Grafana Mimir 免受意外或恶意调用,您必须添加一个保护层,例如一个反向代理,用于对请求进行身份验证并将相应的租户 ID 注入 X-Scope-OrgID
头中。
配置 Prometheus 远程写入
有关 Prometheus 远程写入配置的更多信息,请参阅 remote write。
使用身份验证反向代理
要使用文件存储的 Token 进行 Bearer 身份验证,远程写入配置块包含以下参数:
authorization:
type: Bearer
credentials_file: <PATH TO BEARER TOKEN FILE>
要使用文件存储的用户名和密码进行 Basic 身份验证,远程写入配置块包含以下参数:
basic_auth:
username: <AUTHENTICATION PROXY USERNAME>
password_file: <PATH TO AUTHENTICATION PROXY PASSWORD FILE>
不使用身份验证反向代理
要直接配置 X-Scope-OrgID
头,远程写入配置块包含以下参数:
headers:
"X-Scope-OrgID": <TENANT ID>
从 Prometheus 标签提取租户 ID
在受信任的环境中,如果您想根据 Prometheus 标签拆分时间序列,可以在 Prometheus Server 和 Grafana Mimir 之间运行 cortex-tenant。
注意
cortex-tenant 是一个第三方社区项目,不由 Grafana Labs 维护。
在将时间序列代理到 Grafana Mimir 时,您可以配置 cortex-tenant 使用指定的标签作为 X-Scope-OrgID
头。
要配置 cortex-tenant,请参阅配置。
禁用多租户
要禁用多租户功能,请向每个 Grafana Mimir 组件传递以下参数:
-auth.multitenancy-enabled=false
禁用多租户后,Grafana Mimir 组件将在内部将每个请求的租户 ID 设置为字符串 anonymous
。
要设置其他租户 ID,请使用 -auth.no-auth-tenant
标志。
注意
并非所有租户 ID 都有效。有关租户 ID 限制的更多信息,请参阅关于租户 ID。