关于 Grafana Mimir 配置
您可以通过一个 (YAML 格式的) 配置文件或 CLI(命令行接口)参数来配置 Grafana Mimir。最好通过配置文件而不是 CLI 参数来指定配置。配置文件中设置的每个参数也可以通过相应的 CLI 参数来设置。如果您同时指定 CLI 参数和配置文件参数,CLI 参数优先于配置文件中的对应值。您可以使用 -config.file
CLI 参数指定配置文件。
要查看开始使用 Grafana Mimir 所需的最常见 CLI 参数,请运行 mimir -help
命令。要查看所有可用的 CLI 参数,请运行 mimir -help-all
命令。
给定的配置在启动时加载,不能在运行时修改。然而,Grafana Mimir 确实有第二个配置文件,称为运行时配置,它会动态重新加载。有关更多信息,请参阅关于运行时配置。
要查看任何组件的当前配置状态,请使用 /config
或 /runtime_config
HTTP API 端点。
通用配置
某些配置,例如对象存储后端,会在多个组件中重复。为了避免配置文件中的重复,请使用 common
配置部分或 -common.*
CLI 参数。通用配置首先应用于所有特定配置,这允许特定值随后覆盖通用配置。
例如,以下配置使用名为 mimir
的同一个 Amazon S3 对象存储桶。通用存储位于 us-east
区域,用于 ruler 和 alertmanager 存储,而块存储使用同一区域的 mimir-blocks
桶
common:
storage:
backend: s3
s3:
region: us-east
bucket_name: mimir
blocks_storage:
s3:
bucket_name: mimir-blocks
有关此配置的参考,请参阅配置 Grafana Mimir 对象存储后端。
通用配置的优先级如下,每个配置覆盖前一个配置
- YAML 通用值
- YAML 特定值
- CLI 通用参数
- CLI 特定参数
运维注意事项
使用单个配置文件,并将其传递给所有 Grafana Mimir 副本(如果您运行多个单进程 Mimir 副本)或 Grafana Mimir 的所有组件(如果您将 Grafana Mimir 作为微服务运行)。如果您在 Kubernetes 上运行 Grafana Mimir,可以通过将配置文件存储在 ConfigMap 中并将其挂载到每个 Grafana Mimir 容器来实现这一点。
此建议有助于避免常见的配置错误陷阱:某些配置参数看起来好像只需要某个类型的组件,但实际上它们可能被多个组件使用。例如,-ingester.ring.replication-factor
CLI 参数不仅 Ingster 需要,Distributor、Querier 和 Ruler(在内部运维模式下)也需要。
通过使用单个配置文件,可以确保每个组件都能获得所需的全部配置,而无需跟踪哪个参数属于哪个组件。将特定于一个组件(如 Ingster)的配置传递给另一个组件(如 Querier)是没有害处的。在这种情况下,该配置将被简单地忽略。
如果需要,您可以使用高级 CLI 参数来覆盖特定 Grafana Mimir 组件或副本上的特定值。如果您想更改特定于某个组件的参数,而无需完全重启所有其他组件,这将很有帮助。
CLI 参数最常见的用例是使用 -target
参数将 Grafana Mimir 作为微服务运行。通过设置 -target
CLI 参数,所有 Grafana Mimir 组件共享同一个配置文件,但您可以通过指定 -target
命令行值(例如 -target=ingester
或 -target=querier
)使其作为给定组件运行。
验证配置
要验证您的配置,请运行命令 mimir -modules -config.file <配置文件的路径>
。这对于在部署配置之前进行验证很有用。您可以在本地或 CI 环境中使用此命令。
- 如果配置文件有效,命令将以零退出码退出并打印可用模块。
- 如果配置文件无效,命令将以非零退出码退出并打印错误消息到标准输出。